Yes, I know what you're thinking reading the title: " Why Nvidia?!". Great question with an interesting answer, I don't have anything against Nvidia, I used to be an avid gamer, I still have fond memories of the Nvidia startup on the original Company of Heroes' game.
However, the safety-critical industry (avionics, automotive, medical) can't certify CUDA code because NVCC is closed-source.
DO-178C tool qualification requires traceability from source to binary, which you can't do with a proprietary
compiler. The industry has routed around CUDA entirely, using AMD + CoreAVI + OpenGL SC instead.
There is no open-source, auditable CUDA compiler that could fill this gap. A PTX backend (nvidia_isel.c +
nvidia_emit.c) would make BarraCUDA the first. The goal isn't to compete with NVCC on performance, it's to provide a
readable, inspectable compilation pipeline that certification engineers can actually trace and qualify.
PTX, I believe, is the right target here as it's well documented and the Nvidia driver handles final assembly to native code.
Yes, I know what you're thinking reading the title: " Why Nvidia?!". Great question with an interesting answer, I don't have anything against Nvidia, I used to be an avid gamer, I still have fond memories of the Nvidia startup on the original Company of Heroes' game.
However, the safety-critical industry (avionics, automotive, medical) can't certify CUDA code because NVCC is closed-source.
DO-178C tool qualification requires traceability from source to binary, which you can't do with a proprietary
compiler. The industry has routed around CUDA entirely, using AMD + CoreAVI + OpenGL SC instead.
There is no open-source, auditable CUDA compiler that could fill this gap. A PTX backend (nvidia_isel.c +
nvidia_emit.c) would make BarraCUDA the first. The goal isn't to compete with NVCC on performance, it's to provide a
readable, inspectable compilation pipeline that certification engineers can actually trace and qualify.
PTX, I believe, is the right target here as it's well documented and the Nvidia driver handles final assembly to native code.