fork download
  1. // OpenCL tutorial 1
  2.  
  3. #include <iostream>
  4. #include <string>
  5. #include <vector>
  6.  
  7. #ifdef __APPLE__
  8. #include <OpenCL/opencl.h>
  9. #else
  10. #include <CL/cl.h>
  11. #endif
  12.  
  13.  
  14. int main()
  15. {
  16. cl_int err;
  17. cl_uint num;
  18. err = clGetPlatformIDs(0, 0, &num);
  19. if(err != CL_SUCCESS) {
  20. std::cerr << "Unable to get platforms\n";
  21. return 0;
  22. }
  23.  
  24. std::vector<cl_platform_id> platforms(num);
  25. err = clGetPlatformIDs(num, &platforms[0], &num);
  26. if(err != CL_SUCCESS) {
  27. std::cerr << "Unable to get platform ID\n";
  28. return 0;
  29. }
  30.  
  31. cl_context_properties prop[] = { CL_CONTEXT_PLATFORM, reinterpret_cast<cl_context_properties>(platforms[0]), 0 };
  32. cl_context context = clCreateContextFromType(prop, CL_DEVICE_TYPE_GPU, NULL, NULL, NULL);
  33. if(context == 0) {
  34. std::cerr << "Can't create OpenCL context\n";
  35. return 0;
  36. }
  37.  
  38. size_t cb;
  39. clGetContextInfo(context, CL_CONTEXT_DEVICES, 0, NULL, &cb);
  40. std::vector<cl_device_id> devices(cb / sizeof(cl_device_id));
  41. clGetContextInfo(context, CL_CONTEXT_DEVICES, cb, &devices[0], 0);
  42.  
  43. clGetDeviceInfo(devices[0], CL_DEVICE_NAME, 0, NULL, &cb);
  44. std::string devname;
  45. devname.resize(cb);
  46. clGetDeviceInfo(devices[0], CL_DEVICE_NAME, cb, &devname[0], 0);
  47. std::cout << "Device: " << devname.c_str() << "\n";
  48.  
  49. clReleaseContext(context);
  50. return 0;
  51. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:10:19: fatal error: CL/cl.h: No such file or directory
 #include <CL/cl.h>
                   ^
compilation terminated.
stdout
Standard output is empty