Vcc – the Vulkan Clang Compiler, is a proof-of-concept C and C++ compiler for Vulkan leveraging Clang as a front-end, and Shady our own research IR and compiler. Unlike other shading languages, Vcc aims to stick closely to standard C/C++ languages and merely adds a few new intrinsics to cover GPU features. Vcc is similar to CUDA or Metal in this regard, and aims to bring the advantages of standard host languages to Vulkan shaders.
The Vcc website
Note that this project is a work in progress, and has several limitations the project’s open about.
I haven’t tried vcc but something like it would be nice to replace proprietary toolchains including cuda.
I actually like cuda technology and nvidia hardware is very powerful, which is a plus, but it’s proprietary nature of this stack is definitely at odds with my philosophy.
Also, I have some very specific gripes with nvidia refusing to listen to the needs of linux customers and devs. I use nvidia cards to run cuda. They run well but they run very hot and many of us on linux would like to keep an eye on hotspot temps for obvious reasons, but nvidia hasn’t listened to requests to expose them on linux despite many of us asking for years.
https://forums.developer.nvidia.com/t/request-gpu-memory-junction-temperature-via-nvidia-smi-or-nvml-api/168346
The core temps are the only temperatures that linux cuda software can react to (such as increasing case fans), and I program my system accordingly, However the core temps are known to be much cooler than hotspot temps because of heat pipes and fans cooling the GPU. Hotspot/junction temps (measured on windows) is sometimes found to exceed 110C. It would make sense to react by lowering cuda load and/or increasing fan speeds, even replacing the thermal pads, but nvidia officially keeps linux customers in the dark as to how hot the card is running. Many of us are furious over it because excessive temps risk damaging and shortening the life of the hardware over the long term. At $1-2k we want to run them responsibly, but there’s little we can do because nvidia won’t give us a way to check those temps like windows users can.
Obviously vcc can’t fix any of this, but it would be good to diversify away from nvidia control.