NVIDIA NVPTX Port Added To GCC
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.
As of today, NVPTX is in mainline GCC. GCC 5 is shaping up to be a very exciting release.
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.
4 Comments