Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. size_t global_work_size = size;
  2. size_t cb;
  3.  
  4. cl_platform_id cpPlatform;
  5. clGetPlatformIDs(1, &cpPlatform, NULL);
  6. cl_device_id cdDevice;
  7. clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_GPU, 1, &cdDevice, NULL);
  8. cl_context context = clCreateContext(0, 1, &cdDevice, NULL, NULL, NULL);
  9. cl_command_queue cmd_queue = clCreateCommandQueue(context,cdDevice,0,0);
  10. cl_program program = clCreateProgramWithSource(context,1,&ker,0,0);
  11. clBuildProgram(program,0,0,0,0,0);
  12. cl_kernel kernel = clCreateKernel(program,"vecadd",0);
  13.  
  14. cl_mem DeviceMemA,DeviceMemB,DeviceMemC;
  15. DeviceMemA = clCreateBuffer(context,CL_MEM_READ_ONLY|CL_MEM_COPY_HOST_PTR,size*sizeof(cl_float),A,0);
  16. DeviceMemB = clCreateBuffer(context,CL_MEM_READ_ONLY|CL_MEM_COPY_HOST_PTR,size*sizeof(cl_float),B,0);
  17. DeviceMemC = clCreateBuffer(context,CL_MEM_WRITE_ONLY,size*sizeof(cl_float),0,0);
  18.  
  19. clSetKernelArg(kernel,0,sizeof(cl_mem),(void*)&DeviceMemA);
  20. clSetKernelArg(kernel,1,sizeof(cl_mem),(void*)&DeviceMemB);
  21. clSetKernelArg(kernel,2,sizeof(cl_mem),(void*)&DeviceMemC);
  22.  
  23. clEnqueueNDRangeKernel(cmd_queue,kernel,1,0,&global_work_size,0,0,0,0);
  24.  
  25. 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