OpenCL.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <map>
  4. #include <string>
  5. #include <cstring>
  6. // OpenCL header files
  7. #ifdef __APPLE__
  8. #include <OpenCL/cl.h>
  9. #include <OpenCL/cl_gl.h>
  10. #include <OpenCL/cl_gl_ext.h>
  11. #include <OpenCL/cl_ext.h>
  12. #else
  13. #include <CL/cl.h>
  14. #include <CL/cl_gl.h>
  15. #include <CL/cl_gl_ext.h>
  16. #include <CL/cl_ext.h>
  17. #endif
  18. using namespace std;
  19. class OpenCL
  20. {
  21. public:
  22. OpenCL(int displayOutput);
  23. ~OpenCL();
  24. void init(int isGPU);
  25. void createKernel(string kernelName);
  26. cl_kernel kernel(string kernelName);
  27. void gwSize(size_t theSize);
  28. cl_context ctxt();
  29. cl_command_queue q();
  30. void launch(string toLaunch);
  31. size_t localSize();
  32. private:
  33. int VERBOSE; // Display output text from various functions?
  34. size_t lwsize; // Local work size.
  35. size_t gwsize; // Global work size.
  36. cl_int ret; // Holds the error code returned by cl functions.
  37. cl_platform_id platform_id[100];
  38. cl_device_id device_id[100];
  39. map<string, cl_kernel> kernelArray;
  40. cl_context context;
  41. cl_command_queue command_queue;
  42. cl_program program;
  43. void getDevices(cl_device_type deviceType);
  44. void buildKernel();
  45. };