I made following program to use opencl library supplied with Nvidia cuda 7.5. As result I obtained: Num of devices=1 Device name= quadro K600 Device vendor=NVIDIA Corporation Device Version=OPENCL 1.2 CUDA Driver Version= 353.90 DEVICE_MAX_COMPUTE_UNITS = 1 !!!!!!!!!!!!!!!!!!!!!!!!!! DEVICE_MAX_CLOCK_FREQUENCY = 875 MHZ DEVICE_GLOBAL_MEM_SIZE= 1073741824 Only 1 compute unit at 875 Mhz???? I read that K600 has 192
#include
#define __CL_ENABLE_EXCEPTIONS
#pragma warning(disable:4996)
#include
#include
#include
#include
#include
#define LOCAL_SIZE 512
#define WIDTH_A (4096*2)
#define HEIGHT_A (4096*2)
float *matrix_A;
float *vector_B;
float *result_vector;
float *result_vector_host;
#define MAX_SOURCE_SIZE (0x100000)
int main()
{
cl_platform_id platform_id = NULL;
cl_device_id device_id = NULL;
cl_context context = NULL;
cl_command_queue command_queue = NULL;
cl_mem Amobj = NULL;
cl_mem Bmobj = NULL;
cl_mem Cmobj = NULL;
cl_program program = NULL;
cl_kernel kernel = NULL;
cl_uint ret_num_devices;
cl_uint ret_num_platforms;
cl_int ret;
int i, j;
/\* Get Platform/Device Information\*/
ret = clGetPlatformIDs(1, &platform\_id, &ret\_num\_platforms);
ret = clGetDeviceIDs(platform\_id, CL\_DEVICE\_TYPE\_DEFAULT, 1, &device\_id, &ret\_num\_devices);
/\* Create OpenCL Context \*/
context = clCreateContext(NULL, 1, &device\_id, NULL, NULL, &ret);
char buffer\[10240\];
cl\_uint buf\_uint;
cl\_ulong buf\_ulong;
printf("Num of devices=%i", ret\_num\_devices);
for (i = 0; i < ret\_num\_devices; i++)
{
printf(" -- %d --\\n", i);
clGetDeviceInfo(device\_id, CL\_DEVICE\_NAME, sizeof(buffer), buffer, NULL);
printf(" DEVICE\_NAME = %s\\n", buffer);
clGetDeviceInfo(device\_id, CL\_DEVICE\_VENDOR, sizeof(buffer), buffer, NULL);
printf(" DEVICE\_VENDOR = %s\\n", buffer);
clGetDeviceInfo(device\_id, CL\_DEVICE\_VERSION, sizeof(buffer), buffer, NULL);
printf(" DEVICE\_VERSION = %s\\n", buffer);
clGetDeviceInfo(device\_id, CL\_DRIVER\_VERSION, sizeof(buffer), buffer, NULL);
printf(" DRIVER\_VERSION = %s\\n", buffer);
clGetDeviceInfo(device\_id, CL\_DEVICE\_MAX\_COMPUTE\_UNITS, sizeof(buf\_uint), &buf\_uint, NULL);
printf(" DEVICE\_MAX\_COMPUTE\_UNITS = %u\\n", (unsigned int)buf\_uint);
clGetDeviceInfo(device\_id, CL\_DEVICE\_MAX\_CLOCK\_FREQUENCY, sizeof(buf\_uint), &buf\_uint, NULL);
printf(" DEVICE\_MAX\_CLOCK\_FREQUENCY = %u\\n", (unsigned int)buf\_uint);
clGetDeviceIn