GPU Glossary
Host Software·2 min read

CUDA Software Platform

The collection of software, including compilers, APIs and libraries, used to build and run CUDA programs.

The CUDA software platform is the set of software for developing CUDA programs: the compilers that build them, the APIs they call at runtime, and the libraries built on top of those APIs.

What "CUDA" means#

CUDA stands for Compute Unified Device Architecture. The name covers three distinct things, depending on context:

This article is about the third: the software platform. CUDA platforms exist for other languages, including FORTRAN, Python and BASIC, but the dominant one is CUDA C++, which is the focus here.

The vision for CUDA is set out in the Lindholm et al., 2008 white paper. It is well worth reading: it is the original source of many claims, diagrams and even exact phrases in NVIDIA's documentation.

Components#

The platform splits roughly into two groups:

The CUDA Toolkit. Adapted from the Professional CUDA C Programming Guide.
The CUDA Toolkit. Adapted from the Professional CUDA C Programming Guide.

On top of these APIs sit libraries of high-performance kernels, both general and domain-specific, such as cuBLAS for linear algebra and cuDNN for deep neural networks. There are also tools for writing such kernels yourself, like CUTLASS and CuTe DSL.