btw Congrats on the rapid inclussion of Vulkan in LWJGL!
So I'm looking at some NVidia graphics cards, and I cant find mention of OpenCL support. Looking at OpenCL we are now at 2.1 and I see LWJGL already supports that!
I found something mentioning that NVidia only supports OpenCL 1.2, since they push CUDA hard. So then I noticed Vulkan support in the latest NVidia drivers (that goes back to older cards as well). But now I'm confused, it doesnt take much these days
OpenCL 2.1 seems to 'compile down' to SPIR-V which is then 'run' on Vulkan? So isn't OpenCL2.1 support implicit if a driver supports Vulkan? or would some kind of more complex tool chain be required?
ie. I found something that converts from java .class bytecode to LLVM, and a tool that goes from LLVM to SPIR-V
The reason for my ramblings is that I was looking at a CPU based grid compute architecture, and started wondering how it could be replicated within GPU without using vendor specific options like CUDA. For example the new Nvidia P100 or the crazy powerful Nvidia DGX-1. (and No, they are not on my shopping list!). So I started to wonder how you could make use of such powerful GPUs as a grid compute platform via Java. Although the NVLink seems like another proprietry trap in this solution.
Anyway I guess my main question is how usable is OpenCL 2.1 if the GPU manufacturers are no longer supporting it publicly? and can it be somehow compiled down to Vulkan behind the scenes to keep development at a higher level? Or would an intermediate binding to SPIR-V be an option?