Lets say I have a device which, while it has the capability to support, does not currently support OpenCL. I have the ISA, the hardware design documents and a lot of other documentation. My system which the device is located on currently has C and C++ compilers and has support for many linux distributions.
Now I want to add OpenCL (lets say the latest version, 2.2) support to my device. What do I actually need to do in order to have my device supported? I see documentation for SPIR-V on their site, ie: SPIR-V registry page, opencl extended instruction set overview, normal spir-V overview.
Now lets say I do implement a SPIR-V-to-my-device-ISA compiler, do I now support OpenCL 2.2? I see another registry for OpenCL but I don't see a thing that says "if you implement these functions, write code that does this etc.. you now have implemented the OpenCL 2.2 specification on your system".
What are the actual steps I need to take in order to implement OpenCL for my device?