Adding support for a new hardware in OpenCL
As of my project, I have been assigned to add support for a new hardware device in OpenCL Software stack, which has two major components :
1. Host Runtime: to provide OpenCL host platform API and runtime API.
2. OpenCL Compiler: to translate OpenCL kernel c code into a hardware specific ISA.
Among these two components, i started with the first and explored how to do this.
I found that, in order to add a new hardware device in OpenCL stack,
i. first i need to build an OpenCL ICD loader which will load shared library (libOpenCL.so) whose name is on first line of .icd file. Is that enough to find new hardware device in OpenCL?
ii. secondly, i have to modify CL/cl.h file by adding a new device type say for example XYX such as
#define CL_DEVICE_TYPE_XYZ (1 << 5)
and then regenerate libOpenCL.so file. Since I did not found source code for libOpenCL.so library, so how should I get new build libOpenCL.so file?
Are these two requirements correct? What else I need to have in order to add support for a new Hardware device in OpenCL? Note: In this post, I am only concerned with my first component.
Any advise and helpful links will be appreciated.
Thanks and Regards,