Feeds

Nvidia ditches homegrown C/C++ compiler for LLVM

Revs CUDA tools to 4.1

3 Big data security analytics techniques

Graphics processor and SoC chip maker Nvidia is hosting its GTC Asia conference in Beijing this week, and with the next-generation Kepler GPUs being pushed out to early next year, there isn't any new chippery to salivate over. But Nvidia has some new compilers and a revved up CUDA development kit to make things interesting just the same.

The big news coming out of GTC is that Nvidia is replacing its own C and C++ compilers for its GPU coprocessors and moving to the open source Low Level Virtual Machine (LLVM) toolchain.

Sumit Gupta, senior product manager of the Tesla line at Nvidia, tells El Reg that coders working with the CUDA CPU and GPU development kit and kicking out C and C++ programs will see about a 10 per cent performance boost compared to the homegrown compilers Nvidia cooked up for its GPUs. "Most users won't even know that the compilers have changed excepting this," says Gupta.

The CUDA development environment takes high-level languages like C, C++ or Fortran and compiles it into an intermediate language called Parallel Thread Execution, or PTX for short, an assembly language that gets turned into binary code for specific Nvidia GPUs so it can be executed on them.

A number of people have been experimenting with making C, C++ and Fortran CUDA programs more amenable to the LLVM toolchain: Helge Rhodin of Saaland University in Germany did a thesis on creating a PTX code generator for LLVM.

There is an interesting project called Ocelot that takes programs compiled using CUDA tools to the PTX layer for Nvidia GPUs and then allows it to be run in emulation mode or through LLVM translation on x86 processors or on either Nvidia Fermi or Advanced Micro Devices Cypress GPUs – and to be run without recompilation. Georgia Tech, with backing from IBM, Intel, Nvidia, the National Science Foundation, and LogicBlox, has done a lot of the work on Ocelot.

Nvidia has not gone that far with its changes to its compilers. Rather, says Gupta, Nvidia has embraced the C and C++ compilers in the LLVM framework – presumably he means the Clang C and C++ compilers, but he didn't say – and has put hooks into it for the CUDA parallel development environment.

Nvidia is not open sourcing the new C and C++ compiler, which is simply branded CUDA C and CUDA C++, but will offer the source code on a free but restricted basis to academic researchers and application development tool vendors.

Nvidia CUDA LLVM

Nvidia adds CUDA to LLVM

While the change in compilers is interesting and useful, the real important part, said Gupta, is that by merging CUDA and LLVM, Nvidia was positioning itself to be able to snap in support for new programming languages atop the combined LLVM-CUDA and new processors underneath it.

It's not a coincidence that Apple has loads of experience using LLVM tools on its ARM-based devices. Nvidia, of course, sells ARM-based Tegra processors for smartphones and tablets and is working on ARM processors for PCs and servers under its Project Denver

The new LLVM compilers will be bundled in the CUDA 4.1 development kit, which is being announced at the GTC event this week. Along with the new compilers, CUDA 4.1 sports over 1,000 new functions for image processing and includes an "expert system" to help programmers parallelize their code.

"Nobody wants to read the manual," says Gupta with a laugh. And so this expert system has a redesigned visual code profiler that shows bottlenecks in the code, offers hints on how to fix them, and automagically finds the right portions of the CUDA manual to help fix the problem. For instance, the code profiler can show coders how to better use the memory hierarchy in CPU-GPU hybrids, which is a tricky bit of programming. ®

Top three mobile application threats

More from The Register

next story
This time it's 'Personal': new Office 365 sub covers just two devices
Redmond also brings Office into Google's back yard
Inside the Hekaton: SQL Server 2014's database engine deconstructed
Nadella's database sqares the circle of cheap memory vs speed
Oh no, Joe: WinPhone users already griping over 8.1 mega-update
Hang on. Which bit of Developer Preview don't you understand?
Microsoft lobs pre-release Windows Phone 8.1 at devs who dare
App makers can load it before anyone else, but if they do they're stuck with it
Half of Twitter's 'active users' are SILENT STALKERS
Nearly 50% have NEVER tweeted a word
Internet-of-stuff startup dumps NoSQL for ... SQL?
NoSQL taste great at first but lacks proper nutrients, says startup cloud whiz
IRS boss on XP migration: 'Classic fix the airplane while you're flying it attempt'
Plus: Condoleezza Rice at Dropbox 'maybe she can find ... weapons of mass destruction'
Ditch the sync, paddle in the Streem: Upstart offers syncless sharing
Upload, delete and carry on sharing afterwards?
New Facebook phone app allows you to stalk your mates
Nearby Friends feature goes live in a few weeks
prev story

Whitepapers

Top three mobile application threats
Learn about three of the top mobile application security threats facing businesses today and recommendations on how to mitigate the risk.
Combat fraud and increase customer satisfaction
Based on their experience using HP ArcSight Enterprise Security Manager for IT security operations, Finansbank moved to HP ArcSight ESM for fraud management.
The benefits of software based PBX
Why you should break free from your proprietary PBX and how to leverage your existing server hardware.
Five 3D headsets to be won!
We were so impressed by the Durovis Dive headset we’ve asked the company to give some away to Reg readers.
SANS - Survey on application security programs
In this whitepaper learn about the state of application security programs and practices of 488 surveyed respondents, and discover how mature and effective these programs are.