Nvidia CUDA Compiler
DeveloperNvidia
ReleaseJune 2007; 19 years ago (2007-06)
Stable release
12.6.0 / August 2024; 1 year ago (2024-08)
Available inEnglish
TypeCompiler
LicenseProprietary
Websitedocs.nvidia.com/cuda/cuda-compiler-driver-nvcc

Nvidia CUDA Compiler (NVCC) is a compiler by Nvidia intended for use with CUDA. It is proprietary software.

Compiler

edit

CUDA code runs on both the central processing unit (CPU) and graphics processing unit (GPU). NVCC separates these two parts and sends host code (the part of code which will be run on the CPU) to a C compiler like GNU Compiler Collection (GCC) or Intel C++ Compiler (ICC) or Microsoft Visual C++ Compiler (MVCC), and sends device code called "kernels" (the part which will run on the GPU) to the GPU. The device code is further compiled by NVCC. NVCC is based on LLVM.[1] According to Nvidia provided documentation, nvcc in version 7.0 supports many language constructs that are defined by the C++11 standard, and a few from C99. In version 9.0, several more constructs from the C++14 standard are added.[2]

Any source file containing CUDA language extensions (.cu) must be compiled with nvcc. NVCC is a compiler driver which works by invoking all the necessary tools and compilers like cudacc, g++, cl, etc. NVCC can output either C code (CPU Code) that must then be compiled with the rest of the application using another tool or Parallel Thread Execution (PTX) or object code directly. An executable with CUDA code requires: the CUDA core library (cuda) and the CUDA runtime library (cudart).

Other widely used libraries:

  • CUBLAS: BLAS implementation
  • CUFFT: FFT implementation
  • CUDPP (Data Parallel Primitives): Reduction, Scan, Sort.
  • Thrust: Reduction, Scan, Sort.

See also

edit

References

edit
  1. ^ "CUDA LLVM Compiler". Nvidia Developer. Retrieved Apr 6, 2016.
  2. ^ "CUDA C++ Programming Guide". NVIDIA Documentation Hub. Retrieved 2019-06-28.

General

edit
  1. David B. Kirk, and Wen-mei W. Hwu. Programming massively parallel processors: a hands-on approach. Morgan Kaufmann, 2010.
  2. "Nvidia CUDA Compiler Driver NVCC". Nvidia Documentation Hub. Archived from the original on Oct 13, 2023.
  3. "CUDPP". GPGPU. Archived from the original on Nov 17, 2018.
edit

📚 Artikel Terkait di Wikipedia

NVCC (disambiguation)

Connecticut NVIDIA CUDA Compiler, a compiler for parallel CUDA codes This disambiguation page lists articles associated with the title NVCC. If an internal link

Mozilla

sccache supports caching for C/C++ code, Rust, and NVIDIA's CUDA using NVCC (compiler). Shumway is a free software replacement for Adobe Flash Player developed

Parallel Thread Execution

CUDA Compiler (NVCC) translates code written in OpenCL C and CUDA C/C++ into PTX instructions (an IL), and the graphics driver contains a compiler which

CUDA

C/C++', compiled to PTX with nvcc (Nvidia's LLVM-based C/C++ compiler) or by clang itself. Fortran programmers can use 'CUDA Fortran', compiled with the

ROCm

HIP builds a HIPCC compiler that either wraps Clang and compiles with LLVM open AMDGPU backend, or redirects to the NVIDIA compiler. HIPIFY is a source-to-source

GPUOpen

CUDA source-code to portable (HIP) source-code which can be compiled on both HCC and NVCC. Radeon Open Compute Kernel (ROCK) driver Radeon Open Compute

Fat binary

to enable general-purpose computing on GPUs (GPGPU). Its LLVM-based compiler NVCC can create ELF-based fat binaries containing so called PTX virtual assembly

History of virtual learning environments

Allaire Forums (1999ff.) for its engineering degree program and other courses; NVCC also used WebBoard (1999) and Web Course in a Box (1998), prior to beginning