Hardware design companies aren’t always at the forefront of the free and open source software movement, but in the last few years NVIDIA has been making an effort to give back to the software community. Their latest bit of geeky chivalry is making their CUDA software architecture compatible with the popular LLVM compiler with the contribution of open source code. This will allow LLVM to take advantage of CUDA in the same way that games and professional graphics applications already do.
For the uninitiated, CUDA (Compute Unified Device Architecture) is NVIDIA’s parallel computing system that allows heavy processes to be side-loaded to a computer’s GPU, rather than being handled solely by the CPU. Gamers know CUDA from its ability to load separate processes from a PC game, like the physics engine, into a second NVIDIA graphics card, thereby allowing the primary card to focus on keeping graphics and framerates high. Other applications include accelerated encryption, decryption and compression, video processing and distributed processing as in the Folding@Home project.
The open source code will allow the LLVA compiler to accelerate its operations, no matter which of its supported programming languages it’s working in. The adjustments to LLVA’s core code will enable programmers to more easily accommodate GPU acceleration in their projects, and use a wider array of programming languages to do so. The latest version of LLVA with support for NVIDIA GPU acceleration can be downloaded from the project website.