Not sure if you even need a full SDK.
Did not work with OCL for years, but looking up my project i see it only links to OpenCL.lib and uses the headers from Khronos. I have not installed any SDK on my system.
So you only need to get that lib, maybe this would work:
https://github.com/intel/clGPU/blob/mas ... OpenCL.libThough, you probably want it only for your (AMD?) GPU, so maybe from here:
https://github.com/GPUOpen-LibrariesAnd ... K/releasesI can not find this on AMD dev websites, so the above is all that remained, it seems.
Also, in my application the (Ryzen)CPU is no longer available as an OCL device. It only works on GPU.
AFAIK, AMD dropped support on OpneCL. Also the great profiling tool CodeXL is no longer maintained (be sure to grab the latest version anyway).
In short: NV and AMD give a * on OCL, only Intel is still interested as it's OneAPI is based on SYCL and so OpenCL.
Plus: OpenCL 3.0 is a step back from 2.0, probably to have wider compatibility. IDK.
Although there is no alternative, it does not look good for OpenCL.
I think it's still a good choice for you, for those reasons:
* Much easier to use than compute shaders from any gfx API.
* But very easy to port to one of them (if you stick at OCL1.2, which you will becasue NV still boycotts CL2.0 in consumer GPU drivers.)
Limitations, in comparison to Vulkan compute:
* No indirect dispatch on 1.2. Meaning any kernel launch becomes a cycle of: Wait on GPU to sync dependencies and download the work size for the next kernel, then dispatch next kernel of that work size from CPU. (This totally *, but can be easily fixed when moving to gfx API)
* Not sure about subgroup intrinsics. I think they are there in form of extensions, but if you want to go there, then maybe just move to VK/DX12 anyway.
Maybe the better choice, considering OCL seems no longer that future proof, is OpenGL compute shaders. Here you have indirect dispatch, subgroup stuff, and using them with Vulkan probably needs changes only on API side. There is no real difference between OpenCL 1.2 kernels and compute shaders.
Have you tried this?