Rami Aqqad
Rami Aqqad

Reputation: 49

OpenCL clGetDeviceIDs returns -1 when GPU and 0 when CPU

I was running my OpenCL/C++ code on Ubuntu 14.04.2 LTS (NVIDIA Corporation GM204 [GeForce GTX 980]). It's working correctly on CPU but clGetDeviceIDs method returned -1 when I changed CL_DEVICE_TYPE_CPU to CL_DEVICE_TYPE_GPU.

The code in question:

ret = clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_GPU, 1, &device_id, &ret_num_devices);
cout << ret;
checkError(ret, "clGetDeviceIDs");

Outputs -1.

But the following:

ret = clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_CPU, 1, &device_id, &ret_num_devices);
cout << ret;
checkError(ret, "clGetDeviceIDs");

Outputs 0.

Why?

Upvotes: 0

Views: 3454

Answers (1)

Rami Aqqad
Rami Aqqad

Reputation: 49

I made some modifications depending on the code in this link:

cl_int ret = clGetPlatformIDs(2, platforms, &ret_num_platforms);
cout << ret;
//ret = clGetDeviceIDs( platforms[0], CL_DEVICE_TYPE_CPU, 1, &device_id, &ret_num_devices);  // Execute me on CPU
ret = clGetDeviceIDs(platforms[1], CL_DEVICE_TYPE_GPU, 1, &device_id, &ret_num_devices); // Execute me on GPU

Upvotes: 1

Related Questions