Written by Michael Larabel in NVIDIA on 10 November 2014 at 11:58 AM EST. 4 Comments
The NVPTX back-end has been committed to GCC 5 as part of the process for offloading support to NVIDIA graphics processors from the compiler.

NVIDIA's PTX is their virtual Assembly language used in CUDA. Parallel Thread Execution isn't executed on actual hardware but this virtual ISA is translated by their proprietary graphics driver into binary code for use by their actual hardware. LLVM has long had a NVPTX back-end for targeting this low-level language used just by NVIDIA hardware while now GCC finally has such a back-end.

This GCC NVPTX support was developed by Mentor Graphics / CodeSourcery for bringing OpenACC 2.0 to GCC with GPU support. The OpenACC support is almost in place but as part of that the NVPTX port is now in mainline GCC, which means it will be part of next year's GCC 5 release.

This NVPTX port has been controversial though since PTX isn't a bare metal ISA and this port is useless unless using NVIDIA's proprietary graphics driver. The NVPTX port is in GCC and thus under the GPLv3, but it's of no good unless you're willing to install NVIDIA's binary blob, which has some people up in arms for the Free Software Foundation backed compiler.

The Maxwell-based GeForce GTX 980 on Linux

As of today, NVPTX is in mainline GCC. GCC 5 is shaping up to be a very exciting release.
Related News
About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Popular News This Week