By Ian Lumb | April 22, 2014 |
Bright Cluster Manager 7 now has integrated support for NVIDIA’a latest release -- CUDA 6. If you’ve already configured your cluster for GPU use, CUDA 6 becomes available automatically through Bright’s routine updates. These updates include a recommended CUDA driver (version 331.67) and the nvidia_uvm kernel module, in addition to the toolkit itself.
The nvidia_uvm kernel module is particularly noteworthy. Why? It’s through this module that unified memory is realized in CUDA 6. Yes, unified memory -- that was not a typo. Prior to CUDA 6, developers had to work with a memory hierarchy in mind when programming GPUs. This made CUDA somewhat of a challenge for developers to work with -- especially when first learning CUDA. With unified memory, CUDA 6 simplifies the developer’s task and promises to enhance performance through improved data locality. (To delve deeper into this topic, I recommend you start with Unified Memory in CUDA 6 over in the NVIDIA Developer Zone.)
If performance matters to you, then there are a number of other reasons that CUDA 6 will be of interest:
Drop-in libraries - With this capability, you can expect up to an 8X performance improvement when CPU libraries for BLAS (linear algebra) and FFTW (Fast Fourier Transform) are replaced by GPU-accelerated equivalents.
Multi-GPU scaling - With this capability, certain GPU-accelerated libraries (e.g., cublasXT) can scale up to make use of multiple GPUs within a single node. Thus a single node can deliver multiple TFLOPS of performance while allowing for access of to up to 512 GB of memory. In-memory, performance-hungry applications are already a sweet spot for GPUs; with multi-GPU scaling, this’ll become an even sweeter combination.
Clearly libraries are a significant component of the CUDA 6 toolkit. Of course, developers require environments that also include editors, debuggers and profilers. Bright Cluster Manager bundles and integrates all the CUDA 6 tools and libraries. Bright makes it easy to add on software development tools from its partners.
Still not sure if you’re ready for CUDA 6? With Bright Cluster Manager, that’s not a problem. You can have multiple versions of the CUDA toolkit available. Using Environment Modules, you can choose which version of the toolkit you work with. Behind the scenes, Bright takes care of all the heavy lifting - e.g., ensuring you have the right version of gcc (the GNU C Compiler) that is known to work best with the nvcc (NVIDIA’s CUDA C compiler) specific to the CUDA toolkit version you use.
CUDA 6 represents another significant milestone in the ongoing adoption of GPUs for HPC. Bright Cluster Manager makes CUDA 6 available seamlessly. Because Bright makes managing CUDA a breeze, you can focus your full attention on writing CUDA code and running CUDA applications.
Shameless self-plug: Please join me for a webinar on Environment Modules and Bright Cluster Manager. Please register here.Theophilus Photography via photopin cc