Plíz ne legyen már olyan bonyolult használni!!
Nvidia: nem debuggolja
Amd APP Sdk: csak ati kártyán lehet debuggolni
Intel: Opencl sdk-ja egy nagy no comment
Meg amúgy is miért kell on the fly fordítani az opencl kódot? Miért nem lehet több platformot együtt használni ha már olyan nagy mellszélességgel terjesztik az heterogenizmust? Miért kell ilyeneket látnom benne?
/* Create OpenCL context */
context = clCreateContext(NULL, 1, device_id, NULL, NULL, &ret);
checkError(ret, "clCreateContext");
/* Create Command Queue */
command_queue = clCreateCommandQueue(context, device_id[0], 0, &ret);
checkError(ret, "clCreateCommandQueue");
/* Create Memory Buffer */
memobj = clCreateBuffer(context, CL_MEM_READ_WRITE, MEM_SIZE * sizeof(float), NULL, &ret);
checkError(ret, "clCreateBuffer");
/* Create Kernel Program from the source */
program = clCreateProgramWithSource(context, 1, (const char **)&source_str,
(const size_t *)&source_size, &ret);
checkError(ret, "clCreateProgramWithSource");
/* Build Kernel Program */
ret = clBuildProgram(program, 1, device_id,
//"-g -s \"C:\\Users\\Laci\\documents\\visual studio 2013\\Projects\\OpenCLProject1\\OpenCLProject1\\OpenCLFile.cl\""
NULL
,NULL, NULL);
checkError(ret, "clBuildProgram");
/* Create OpenCL Kernel */
kernel = clCreateKernel(program, "PrimeTestKernel", &ret);
checkError(ret, "clCreateKernel");
Miért nem lehet úgy mint a CUDA-ban:
cudaStatus = cudaSetDevice(0);
addKernel<<<1, size>>>(dev_c, dev_a, dev_b);
Oszt csókolom.. Miért kell ennyire túlbonyolítani?
I'm gangsta!