3 ms·
NVIDIA gets a lot of flak (and rightfully so) but CUDA is a really approachable API. Considering how much complexity it encapsulates, it could be a lot worse. T
by halotrope 4y ago
NVIDIA gets a lot of flak (and rightfully so) but CUDA is a really approachable API. Considering how much complexity it encapsulates, it could be a lot worse. The concurrency primitives, C(++) integration and memory management are quite good. The profiling and debugging toolkits that come with they CUDA stack are also world-class.
I really wish the could become a better citizen in Linux and OSS at some point.
- pjmlp 4y agoNVidia saw what Khronos has decided to ignore for so long. Programming models beyond plain C, good IDE and graphical debugging experience, library ecosystem for GPGPU code. Proprietary APIs from Apple, Sony, Nintendo and Microsoft are similar in this regard. Khronos has waken up with SPIR, SPIR-V and C++ for OpenCL, how much it will matter remains to be seen. It is no wonder that SYCL is adopting a backend agnostic approach instead.
- einpoklum 4y agoFor writing kernels and profiling, yes, it's pretty nice. But the host-side API is rather unapproachable. There are, like, 20 API calls just for different variants of memory allocation, all inconsistently named. Also, the APIs are almost entirely (but not 100%) C'ish. In the API wrappers I've written: https://github.com/eyalroz/cuda-api-wrappers https://github.com/eyalroz/cuda-api-wrappers I try to address these and some other issues. We should also remember that NVIDIA artificially prevents its profiling tools from supporting OpenCL kernels - with no good reason.
- dahart 4y ago> I really wish the could become a better citizen in Linux and OSS at some point. Did you miss the good news a month ago? https://www.makeuseof.com/nvidia-open-sources-gpu-driver-for-linux/ https://www.makeuseof.com/nvidia-open-sources-gpu-driver-for...