Streaming Multiprocessor Architecture
The versioned design of a GPU's Streaming Multiprocessors, which determines which compiled SASS code it can run.
Streaming Multiprocessors (SMs) are versioned with a particular "architecture". The version defines which Streaming Assembler (SASS) code an SM is compatible with.
Major and minor versions#
Most SM versions have a major and a minor version.
The major version is almost synonymous with the GPU architecture family. For example, all SM versions 6.x are Pascal, and some NVIDIA documentation states this directly. But there are exceptions: Ada GPUs have SM architecture version 8.9, the same major version as Ampere.
Compiling for a target#
You can specify target SM versions for SASS compilation when invoking nvcc, the NVIDIA CUDA Compiler Driver.
Key idea Compatibility across major versions is explicitly not guaranteed.
For compatibility across minor versions, see the nvcc documentation.
Related#
- Compute Capability: the related versioning of GPU features
- Streaming Assembler: the code whose compatibility the version defines
- nvcc: where you pick target versions