Support for OpenCL 1.2
queequac opened this issue · comments
Currently ILGPU seems to support only OpenCL 2.0 and above.
Windows on ARM has only support for OpenCL 1.2, as a result enumerating devices does not register the Snapdragon's Adreno GPU. (Because the OpenCL compatibility pack does only provice 1.2, even though the hardware would provide 2.0 full.)
I am not an expert, but seems the only difference between 1.2 and 2.0 is support of atomic operations.
Would it be an option to (optionally) enable support for 1.2 and throwing an exception in case of atomic operations? Or are these crucial for ILGPU so we could not make them optional?
Even though I realized this also won't help me on Windows on ARM/Snapdragon, since the OpenCL compatibility pack provides no GenericAddressSpace capability...
hi @queequac. Unfortunately, the key missing feature in OpenCL 1.2 is the Generic Address Space functionality. The same applies to OpenCL 3.0.
My understanding is that there is a non-trivial amount of work required to support OpenCL without Generic Address Space.
The current focus is to one day implement SPIR-V support, which will potentially supersede OpenCL.