Changeset: cc9c26044305 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cc9c26044305
Modified Files:
        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:

* including list of builtin kernels in the device info


Unterschiede (94 Zeilen):

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(platform int, device int, description string) external name 
bwd.deviceInfo;
+returns table(platform int, device int, description string, builtins 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,13 +33,15 @@ char* clDeviceString(cl_device_type devi
   return "unkown";
 }
 
-str deviceInfo(bat * resPlatform, bat * resDevice, bat * resDesc){
+str deviceInfo(bat * resPlatform, bat * resDevice, bat * resDesc, bat * 
resKernels){
        BAT* resultPlatform = BATnew(TYPE_void, TYPE_int, 2);
        BAT* resultDevice = BATnew(TYPE_void, TYPE_int, 2);
        BAT* resultDesc = BATnew(TYPE_void, TYPE_str, 2);
+       BAT* resultKernels = BATnew(TYPE_void, TYPE_str, 2);
        BATseqbase(resultPlatform, 0);
        BATseqbase(resultDevice, 0);
        BATseqbase(resultDesc, 0);
+       BATseqbase(resultKernels, 0);
        {
                cl_uint numPlatforms;
                int err;
@@ -57,15 +59,26 @@ str deviceInfo(bat * resPlatform, bat * 
                        int j;
                        for (j = 0; j < numberOfDevices; ++j){
                                cl_device_type device_type;
-                               
clGetDeviceInfo(devices[j],CL_DEVICE_TYPE,sizeof(cl_ulong),&device_type,NULL);
-                               char deviceName[1024];
-                               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, "%d: %s (%s)\n", j, 
deviceName, clDeviceString(device_type));
+                               char deviceNameBuffer[1024];
+                               {
+                                       
clGetDeviceInfo(devices[j],CL_DEVICE_TYPE,sizeof(cl_ulong),&device_type,NULL);
+                                       char deviceName[1024];
+                                       if((err = 
clGetDeviceInfo(devices[j],CL_DEVICE_NAME,sizeof(deviceName),&deviceName,NULL)))
 die ("clGetDeviceInfo error: %s\n",clError(err));
+                                       snprintf (deviceNameBuffer, 1024, "%d: 
%s (%s)\n", j, deviceName, clDeviceString(device_type));
+                               }
+                               char* kernelListBuffer;
+                               {
+                                       size_t kernelListBufferSize;
+                                       
clGetDeviceInfo(devices[j],CL_DEVICE_BUILT_IN_KERNELS, 0, NULL, 
&kernelListBufferSize);
+                                       kernelListBuffer = 
alloca(kernelListBufferSize);
+
+                                       
clGetDeviceInfo(devices[j],CL_DEVICE_BUILT_IN_KERNELS, kernelListBufferSize, 
kernelListBuffer, NULL);
+                               }
 
                                BUNappend(resultPlatform, &i, FALSE);
                                BUNappend(resultDevice, &j, FALSE);
-                               BUNappend(resultDesc, buffer, 0);
+                               BUNappend(resultDesc, deviceNameBuffer, 0);
+                               BUNappend(resultKernels, kernelListBuffer, 0);
                        }
                }
 
@@ -73,6 +86,7 @@ str deviceInfo(bat * resPlatform, bat * 
        BBPkeepref((*resPlatform = resultPlatform->batCacheid));
        BBPkeepref((*resDevice = resultDevice->batCacheid));
        BBPkeepref((*resDesc = resultDesc->batCacheid));
+       BBPkeepref((*resKernels = resultKernels->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 * resPlatform, bat * resDevice, bat * resDesc);
+str deviceInfo(bat * resPlatform, bat * resDevice, bat * resDesc, bat * 
resKernels);
 
 #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()(platformID:bat[:oid,:int], 
deviceID:bat[:oid,:int],description:bat[:oid,:str])
+command deviceinfo()(platformID:bat[:oid,:int], 
deviceID:bat[:oid,:int],description:bat[:oid,:str], 
builtinKernels:bat[:oid,:str])
 address deviceInfo;
 
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to