Changeset: 62a4af3aee33 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=62a4af3aee33
Modified Files:
        configure.ag
        monetdb5/extras/bwd/91_bwd.sql
        monetdb5/extras/bwd/bwd.c
        monetdb5/extras/bwd/bwd.h
        monetdb5/extras/bwd/opt_bwd.mal
Branch: bwd
Log Message:

* merge


Unterschiede (107 Zeilen):

diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2271,7 +2271,7 @@ if test "x$have_opencl" != xno; then
            ;;
        *)
            OPENCL_CFLAGS="-I$have_opencl/include"
-           OPENCL_LIBS="-L$have_opencl/lib -L$have_opencl/lib/x86_64 -lOpenCL"
+           OPENCL_LIBS="-L$have_opencl/lib -L$have_opencl/lib/x86_64 
-L$have_opencl -lOpenCL"
            ;;
        esac
 
diff --git a/monetdb5/extras/bwd/91_bwd.sql b/monetdb5/extras/bwd/91_bwd.sql
--- a/monetdb5/extras/bwd/91_bwd.sql
+++ b/monetdb5/extras/bwd/91_bwd.sql
@@ -3,4 +3,4 @@ returns integer external name bwd.decomp
 
 
 create function bwdevices()
-returns table(id int, description string) external name bwd.deviceInfo;
+returns table(platform int, device int, description string) external name 
bwd.deviceInfo;
diff --git a/monetdb5/extras/bwd/bwd.c b/monetdb5/extras/bwd/bwd.c
--- a/monetdb5/extras/bwd/bwd.c
+++ b/monetdb5/extras/bwd/bwd.c
@@ -33,39 +33,45 @@ char* clDeviceString(cl_device_type devi
   return "unkown";
 }
 
-str deviceInfo(bat * resID, bat * resDesc){
-       BAT* result = BATnew(TYPE_void, TYPE_int, 2);
+str deviceInfo(bat * resPlatform, bat * resDevice, bat * resDesc){
+       BAT* resultPlatform = BATnew(TYPE_void, TYPE_int, 2);
+       BAT* resultDevice = BATnew(TYPE_void, TYPE_int, 2);
        BAT* resultDesc = BATnew(TYPE_void, TYPE_str, 2);
-       BATsetcount(result, 0);
-       BATsetcount(resultDesc, 0);
+       BATseqbase(resultPlatform, 0);
+       BATseqbase(resultDevice, 0);
+       BATseqbase(resultDesc, 0);
        {
                cl_uint numPlatforms;
                int err;
                if((err = clGetPlatformIDs(0, NULL, &numPlatforms)))
-                       die ("clGetPlatformIDs error: %s\n", clError(err));
+                       die ("clGetPlatformIDs (getting platform count) error: 
%s\n", clError(err));
 
                cl_platform_id* platforms = 
malloc(sizeof(cl_platform_id)*numPlatforms);
                if((err = clGetPlatformIDs(numPlatforms, platforms, 
&numPlatforms)))
                        die ("clGetPlatformIDs error: %s\n",clError(err));
-
-               for(int i = 0; i<numPlatforms;i++){
+               int i;
+               for(i = 0; i<numPlatforms;i++){
                        cl_device_id devices[8];
                        cl_uint numberOfDevices = 0;
                        
clGetDeviceIDs(platforms[i],CL_DEVICE_TYPE_ALL,8,devices,&numberOfDevices);
-                       for (int i = 0; i < numberOfDevices; ++i){
+                       int j;
+                       for (j = 0; j < numberOfDevices; ++j){
                                cl_device_type device_type;
-                               
clGetDeviceInfo(devices[i],CL_DEVICE_TYPE,sizeof(cl_ulong),&device_type,NULL);
+                               
clGetDeviceInfo(devices[j],CL_DEVICE_TYPE,sizeof(cl_ulong),&device_type,NULL);
                                char deviceName[1024];
-                               if((err = 
clGetDeviceInfo(devices[i],CL_DEVICE_NAME,sizeof(deviceName),&deviceName,NULL)))
 die ("clGetDeviceInfo error: %s\n",clError(err));
+                               if((err = 
clGetDeviceInfo(devices[j],CL_DEVICE_NAME,sizeof(deviceName),&deviceName,NULL)))
 die ("clGetDeviceInfo error: %s\n",clError(err));
                                char buffer[1024];
-                               snprintf (buffer, 1024, "%s (%s)\n", 
deviceName, clDeviceString(device_type));
+                               snprintf (buffer, 1024, "%d: %s (%s)\n", j, 
deviceName, clDeviceString(device_type));
+
+                               BUNappend(resultPlatform, &i, FALSE);
+                               BUNappend(resultDevice, &j, FALSE);
                                BUNappend(resultDesc, buffer, 0);
-                               BUNappend(result, (int[]){i}, 0);
                        }
                }
 
        }
-       BBPkeepref((*resID = result->batCacheid));
+       BBPkeepref((*resPlatform = resultPlatform->batCacheid));
+       BBPkeepref((*resDevice = resultDevice->batCacheid));
        BBPkeepref((*resDesc = resultDesc->batCacheid));
        return MAL_SUCCEED;
 }
diff --git a/monetdb5/extras/bwd/bwd.h b/monetdb5/extras/bwd/bwd.h
--- a/monetdb5/extras/bwd/bwd.h
+++ b/monetdb5/extras/bwd/bwd.h
@@ -5,7 +5,7 @@
 
 
 extern str OPTBWD(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-extern str deviceInfo(bat * resID, bat * resDesc);
+extern str deviceInfo(bat * resPlatform, bat * resDevice, bat * resDesc);
 
 #endif /* _BWD_H_ */
 
diff --git a/monetdb5/extras/bwd/opt_bwd.mal b/monetdb5/extras/bwd/opt_bwd.mal
--- a/monetdb5/extras/bwd/opt_bwd.mal
+++ b/monetdb5/extras/bwd/opt_bwd.mal
@@ -25,7 +25,7 @@ address BWDThetauselectRefine
 comment "The refinement of an approximation of a theta (<=,<,=,>,>=) select() 
limited to head values";
 
 
-command deviceinfo()(deviceID:bat[:oid,:int],description:bat[:oid,:str])
+command deviceinfo()(platformID:bat[:oid,:int], 
deviceID:bat[:oid,:int],description:bat[:oid,:str])
 address deviceInfo;
 
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to