1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

NVIDIA's LLVM CUDA Compiler: Open-Source, 10% Faster

NVIDIA

Published on 26 January 2012 01:58 PM EST
Written by Michael Larabel in NVIDIA
10 Comments

Back in December there was an announcement from NVIDIA that they would open-source their CUDA compiler based upon the LLVM back-end. NVIDIA today released their new CUDA implementation that's based upon LLVM. Besides being open-source, which will allow it to be ported to new (non-NVIDIA) architectures/hardware, there's also a measurable speed boost in the switch over to LLVM.

NVIDIA announced its "major new NVIDIA CUDA release" this morning with promotingthat that this release makes it faster and easier to accelerate scientific research with GPUs. The three highlights of this major release is a re-designed visual profiler, a new compiler based upon LLVM, and hundreds of new imaging / signal processing functions.

NVIDIA's new visual profiler for CUDA allows for automated performance analysis and other benefits to those wanting to profile their CUDA applications. The new imaging / signal processing functions results in the size of the NVIDIA Performance Primitives library being doubled. But what's really exciting is the switch to the LLVM compiler infrastructure and NVIDIA open-sourcing the resulting compiler (they aren't required to per the LLVM BSD-style license).

The NVIDIA press release announcing this new work mentions that the new LLVM-based compiler for CUDA can offer immediate performance improvements by simply recompiling the Compute Unified Device Architecture code under this new compiler. Without any code/tuning changes, the new CUDA compiler can offer up performance improvements in some cases by around 10%. "New compiler, based on the widely-used LLVM open-source compiler infrastructure, delivering up to 10 percent speed up in application performance."

Within the NVIDIA press release from today, they also make it quite clear they are happy seeing the open-source CUDA ported to other architectures/devices. "LLVM's modular design allows third-party software tool developers to provide a custom LLVM solution for non-NVIDIA processor architectures, enabling CUDA applications to run across NVIDIA GPUs, as well as those from other vendors."

With optimizations toward the new compiler, it's possible to see an even greater impact from this Low-Level Virtual Machine compiler. The earlier code compiler used by NVIDIA within CUDA was Open64.

Besides the performance improvements and the new CUDA compiler being open-source (and it being allowed to port this NVIDIA compute architecture to new platforms), it's nice to see all the major vendors centering their GPU compute efforts on LLVM. AMD is using LLVM for its OpenCL support within the binary Catalyst graphics driver; they also open-sourced their IL code generator for LLVM. AMD is also working on a Gallium3D driver back-end for their open-source Radeon graphics driver as an intermediate representation. All of the Linux graphics drivers will be using LLVM in providing open-source OpenCL compute support. There's also the LLVM-using LunarGLASS implementation for Mesa that uses LLVM IR rather than TGSI.

Besides the DragonEgg plug-in that pairs the LLVM optimizers with the GCC compiler front-end, and the Clang compiler as a native C/Objective-C/C++ compiler front-end to LLVM, there continues to be a number of other growing uses for this open-source compiler infrastructure outside of OpenCL. LLVM is being used by the Mono project as part of it's JIT (Just-In-Time) engine, various scripting languages, an extension to the IcedTea-OpenJDK that enables the open-source Java implementation to run on any architecture where LLVM is supported, a D language compiler, Adobe is using LLVM for various projects, and various other uses. One of the more unique projects as of late is the LLVM-based EmScripten, which can turn LLVM bitcode into JavaScript. This allows translating most C/C++ code (or anything else that can be translated down into LLVM's bit-code) to be converted into JavaScript and executed within the web browser.

The latest CUDA (v4.1) release can be downloaded from NVIDIA's CUDA web-site for Linux, Mac OS X, and Windows platforms. Under Linux, NVIDIA offers up easy 32/64-bit packages for Fedora, Red Hat Enterprise Linux (RHEL5/RHEL6), Ubuntu, openSUSE, and SUSE Linux Enterprise Server. This is quite an exciting release with the switch to LLVM, the speed improvements, and open-source base just being part of the release highlights. Nice job, NVIDIA.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Intel Pentium G3258 On Linux
  2. SilverStone Precision PS10
  3. ASRock Z97 Extreme6
  4. Nouveau Re-Clocking Is Way Faster, Shows Much Progress For Open-Source NVIDIA
Latest Linux Articles
  1. KVM Benchmarks On Ubuntu 14.10
  2. X.Org Server 1.16 Officially Released With Terrific Features
  3. Ubuntu With Linux 3.16 Smashes OS X 10.9.4 On The MacBook Air
  4. Preview: Benchmarking CentOS 7.0 & Scientific Linux 7.0
Latest Linux News
  1. The Linux Kernel Bang-Bang Thermal Governor Is Banging
  2. NVIDIA Releases K1-Powered Shield Tablet & Controller
  3. Xen Project Announces Mirage OS 2.0
  4. Canonical Community Team Changes Announced For Ubuntu
  5. Raspberry Pi B+ ARM Debian Benchmarks
  6. Mozilla Unleashes Firefox 31 Web Browser
  7. GCC 5.0 Is Expected Next Year
  8. PHP5's Successor Might Be PHP7
  9. AMD "Hawaii" Open-Source GPU Acceleration Still Not Working Right
  10. AMDKFD Driver Still Evolving For Open-Source HSA On Linux
Latest Forum Discussions
  1. In Road To Qt, Audacious Switches From GTK3 Back To GTK2
  2. Debian + Steam + r600
  3. AMD "Hawaii" Open-Source GPU Acceleration Still Not Working Right
  4. Next-Gen OpenGL To Be Announced Next Month
  5. Ubuntu With Linux 3.16 Smashes OS X 10.9.4 On The MacBook Air
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. AMD Publishes Open-Source Linux HSA Kernel Driver
  8. KDE Plasma 5 Officially Released