Notes on https://modal.com/gpu-glossary/device-software

These terms and technologies are used for software that runs on GPU(or device)

CUDA Programming Model

a programming model for programming massively parallel processors.

Three key abstractions in the CUDA Programming model

image.png

  1. Hierarchy of thread groups (CUDA Thread Heirarchy for detailed explanation!)

    CUDA Thread Heirarchy

  2. Hierarchy of memories (→ GPU Memory Heirarchy for detailed explanation!)

  3. Barrier Synchronization

SASS(Streaming Assembler)

assembly format for programs running on NVIDIA GPUs.

this is the lowest level format in which human-readable code can be written.

Writing this GPU assembler by hand is very uncommon. Instead, we usually view compiler-generated SASS while editing CUDA C/C++ code or inline PTX.