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