GPU Glossary
Device Hardware·1 min read

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.

A streaming multiprocessor with the "Hopper" SM90 architecture. Modified from NVIDIA's H100 white paper.
A streaming multiprocessor with the "Hopper" SM90 architecture. Modified from NVIDIA's H100 white paper.
A streaming multiprocessor with the original "Tesla" SM architecture. Modified from Fabien Sanglard's blog.
A streaming multiprocessor with the original "Tesla" SM architecture. Modified from Fabien Sanglard's blog.

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.