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