
NVIDIA CUDA Toolkit
NVIDIA's parallel computing development toolkit
Description
A modern graphics card holds thousands of compute units, but it will not run your code on its own — without a compiler and runtime to target it, that capacity does not exist as far as your program is concerned. The CUDA Toolkit is NVIDIA's official kit for bridging that: the nvcc compiler plus a full set of GPU-accelerated libraries and profiling tools, so C, C++ and Fortran programs can hand their compute-heavy sections to the GPU.
It is more than a compiler. The libraries are what save the work — cuBLAS for linear algebra, cuFFT for transforms, cuDNN (downloaded separately) underpinning deep learning, cuSPARSE for sparse matrices, and Thrust for STL-like parallel algorithms. Most people never write a kernel from scratch and call these instead; frameworks like PyTorch and TensorFlow sit on the same foundation.
Debugging and tuning are covered too: Nsight Systems shows a whole-program timeline for finding whether the bottleneck is CPU or GPU side, Nsight Compute drills into a single kernel's occupancy and memory throughput, and cuda-gdb and compute-sanitizer handle crashes and out-of-bounds access.
Free to download for Windows and the major Linux distributions, requiring an NVIDIA GPU and a matching driver. The installer is large (on the order of 3.6 GB), so pick the build for your system and CUDA version from the official download page.
The nvcc compiler: compiles CUDA C/C++ into GPU code linked alongside host code, targeting specific architectures or embedding PTX for forward compatibility.
Math and algorithm libraries: cuBLAS, cuFFT, cuSPARSE, cuSOLVER and cuRAND cover linear algebra, transforms, sparse matrices, solvers and random number generation, with Thrust providing STL-like parallel algorithms.
Nsight Systems: whole-system timeline profiling showing what CPU and GPU are each doing and how transfers overlap with kernel execution, which is how the bottleneck gets located.
Nsight Compute: fine-grained per-kernel analysis reporting occupancy, memory throughput and instruction issue alongside optimization guidance.
Debugging and checking: cuda-gdb sets breakpoints and steps through GPU code, while compute-sanitizer catches out-of-bounds access, races and uninitialized memory.
Unified memory: unified virtual addressing and unified memory let CPU and GPU share pointers, removing part of the manual device-memory copying.
Multiple languages: C and C++ are first-class, Fortran is supported through CUDA Fortran, and languages such as Python reach the runtime through their own bindings.
Samples and documentation: extensive sample code ships alongside a full programming guide and best-practices manual covering everything from a first kernel to memory-access tuning.
Free and cross-platform: available at no cost for Windows and major Linux distributions with a matching NVIDIA driver.
It is more than a compiler. The libraries are what save the work — cuBLAS for linear algebra, cuFFT for transforms, cuDNN (downloaded separately) underpinning deep learning, cuSPARSE for sparse matrices, and Thrust for STL-like parallel algorithms. Most people never write a kernel from scratch and call these instead; frameworks like PyTorch and TensorFlow sit on the same foundation.
Debugging and tuning are covered too: Nsight Systems shows a whole-program timeline for finding whether the bottleneck is CPU or GPU side, Nsight Compute drills into a single kernel's occupancy and memory throughput, and cuda-gdb and compute-sanitizer handle crashes and out-of-bounds access.
Free to download for Windows and the major Linux distributions, requiring an NVIDIA GPU and a matching driver. The installer is large (on the order of 3.6 GB), so pick the build for your system and CUDA version from the official download page.
Features
The nvcc compiler: compiles CUDA C/C++ into GPU code linked alongside host code, targeting specific architectures or embedding PTX for forward compatibility.
Math and algorithm libraries: cuBLAS, cuFFT, cuSPARSE, cuSOLVER and cuRAND cover linear algebra, transforms, sparse matrices, solvers and random number generation, with Thrust providing STL-like parallel algorithms.
Nsight Systems: whole-system timeline profiling showing what CPU and GPU are each doing and how transfers overlap with kernel execution, which is how the bottleneck gets located.
Nsight Compute: fine-grained per-kernel analysis reporting occupancy, memory throughput and instruction issue alongside optimization guidance.
Debugging and checking: cuda-gdb sets breakpoints and steps through GPU code, while compute-sanitizer catches out-of-bounds access, races and uninitialized memory.
Unified memory: unified virtual addressing and unified memory let CPU and GPU share pointers, removing part of the manual device-memory copying.
Multiple languages: C and C++ are first-class, Fortran is supported through CUDA Fortran, and languages such as Python reach the runtime through their own bindings.
Samples and documentation: extensive sample code ships alongside a full programming guide and best-practices manual covering everything from a first kernel to memory-access tuning.
Free and cross-platform: available at no cost for Windows and major Linux distributions with a matching NVIDIA driver.
