Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- size_t global_work_size = size;
- size_t cb;
- cl_platform_id cpPlatform;
- clGetPlatformIDs(1, &cpPlatform, NULL);
- cl_device_id cdDevice;
- clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_GPU, 1, &cdDevice, NULL);
- cl_context context = clCreateContext(0, 1, &cdDevice, NULL, NULL, NULL);
- cl_command_queue cmd_queue = clCreateCommandQueue(context,cdDevice,0,0);
- cl_program program = clCreateProgramWithSource(context,1,&ker,0,0);
- clBuildProgram(program,0,0,0,0,0);
- cl_kernel kernel = clCreateKernel(program,"vecadd",0);
- cl_mem DeviceMemA,DeviceMemB,DeviceMemC;
- DeviceMemA = clCreateBuffer(context,CL_MEM_READ_ONLY|CL_MEM_COPY_HOST_PTR,size*sizeof(cl_float),A,0);
- DeviceMemB = clCreateBuffer(context,CL_MEM_READ_ONLY|CL_MEM_COPY_HOST_PTR,size*sizeof(cl_float),B,0);
- DeviceMemC = clCreateBuffer(context,CL_MEM_WRITE_ONLY,size*sizeof(cl_float),0,0);
- clSetKernelArg(kernel,0,sizeof(cl_mem),(void*)&DeviceMemA);
- clSetKernelArg(kernel,1,sizeof(cl_mem),(void*)&DeviceMemB);
- clSetKernelArg(kernel,2,sizeof(cl_mem),(void*)&DeviceMemC);
- clEnqueueNDRangeKernel(cmd_queue,kernel,1,0,&global_work_size,0,0,0,0);
- clEnqueueReadBuffer(cmd_queue,DeviceMemC,CL_TRUE,0,global_work_size*sizeof(cl_float),C,0,0,0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement