4 ms·
I mean there's OpenCL which has widespread support and is pretty much about as pleasant to write as OpenGL. It has existed for a very, very long time but people
by CuriousCosmic 3y ago
I mean there's OpenCL which has widespread support and is pretty much about as pleasant to write as OpenGL. It has existed for a very, very long time but people hate writing in it so they just defaulted to CUDA and ignored everyone but NVIDIA.
- thrtythreeforty 3y agoDoesn't it take, like, 100 lines of code to call a kernel in OpenCL? Compared to Nvidia's 1? Developer friction is huge. Don't discount the amount of boilerplate it takes to get started with something.
- throwaway0665 3y agoJust like OpenGL
- dotnet00 3y agoBigger than it taking a lot of boilerplate is the issue that there was never sufficiently widespread and bug free support for mixing CPU and GPU code in OpenCL in the way CUDA allows. So you end up having to do a lot more work to port stuff over. When porting stuff to CUDA, you can share a lot of code. Simplifies the task so much.
- CuriousCosmic 3y agoYep. That was the point I was making. Much like OpenGL, writing OpenCL is absolutely miserable so people just stuck with less portable alternatives that didn't write like pulling teeth.
- pjmlp 3y agoAdditionally OpenCL was stuck in C99, Khronos ignored C++ for a long time, ignored Fortran to this day, and never cared about other languages. CUDA is C, C++ and Fortran for at least a decade, and with PTX created a third party ecosystem that SPIR still doesn't have to this day.
- Kon-Peki 3y ago> Doesn't it take, like, 100 lines of code to call a kernel in OpenCL? Compared to Nvidia's 1? If you are using a single line of code to execute a CUDA kernel then you are accepting a huge amount of default behavior. I mean, this is really, really nice and you get some pretty good performance. You're going to outgrow that single line of code very quickly. I think you're beyond it by the time you get done with Nvidia tutorial #2.