Julio Jerez wrote:After I just got few open cl kernel going, and not seeing it for a few weeks, it is absolutely horrifying.
I look at it and I do not understand it, and it is my own code.
Sounds familiar.
Often i have to look at my C++ implementation, which helps with understanding the compute shaders which i have ported from that.
I need to maintain both versions to keep these references, or can do some debugging, etc.
If i add or change things, i do so on the C++ side first, then port to CS.
I could not develop something of serious complexity just by using CS. Too low level, too cumbersome.
This, although i'm at heart still mostly a C programmer. Did adopt some modern C++ practices only in recent years.
I would hope things like SYCL or CUDA do better here. Compute Shader is ok if performance really has priority over anything, but for every day work? No thanks.
Still, it might be the only practical option. After accepting the discomfort and getting used to it, the performance we get is rewarding and compensates the losses.
It's just that increasing core count on CPU makes the burden harder to justify.
With ComputeCpp i'm worried AMD GPUs might not work with it:
Platform Requirements
Windows 7 or Windows 10 (with elevated privileges)
OpenCL Drivers
OpenCL driver that supports SPIR
There is experimental support for SPIR-V OpenCL drivers (your hardware vendor may be able to provide support information)
AFAIK, AMD GPU OpenCL dirvers dropped SPIR support and SPIR-V was never added.
Vulkan of course supports SPIR-V, but this my not help.
But not sure. Maybe there is luck.