NCA Foundations study materials
NCA Foundations study resources

NCA Foundations key terms

NCA Foundations · Get comfortable with the vocabulary.

GPU (Graphics Processing Unit)

A processor built from many small cores that run thousands of threads at once, designed for parallel arithmetic. It works alongside a CPU, which handles control flow and orchestration.

Related: CUDA Core, Host and Device, SIMT Execution
CUDA Core

One of the many scalar arithmetic units inside an NVIDIA streaming multiprocessor. Each core executes a thread's instruction, and large groups of cores deliver the platform's parallel throughput.

Related: Streaming Multiprocessor (SM), SIMT Execution
Streaming Multiprocessor (SM)

A self-contained scheduling and execution block within an NVIDIA GPU that contains CUDA cores, tensor cores, registers, shared memory, and warp schedulers. A GPU contains many SMs operating concurrently.

Related: CUDA Core, Warp, Shared Memory
Tensor Core

A specialized execution unit that performs small matrix multiply-accumulate operations in a single instruction, greatly accelerating deep learning math. Tensor cores support reduced precision such as FP16, BF16, and FP8.

Related: Mixed Precision, GPU (Graphics Processing Unit)
SIMT Execution

Single Instruction, Multiple Threads: the GPU execution model in which one instruction is issued for a group of threads, each with its own data and register state. Divergent branches within a group serialize.

Related: Warp, Thread Divergence, CUDA Core
Warp

A fixed group of 32 threads that a GPU schedules together as a unit. Warps are the granularity for scheduling, and each thread in a warp has a unique lane identifier.

Related: SIMT Execution, Thread Divergence, Occupancy
Thread Divergence

A condition where threads in a warp take different branch paths, forcing the paths to execute one after another and reducing efficiency. It is often avoided by restructuring conditionals or data layout.

Related: Warp, SIMT Execution
Kernel

A function written for the GPU that is launched to run across many threads in parallel. Kernels are the basic unit of work submitted to a device.

Related: Grid, Block, Host and Device
Grid

The complete set of thread blocks created by one kernel launch. Its size and shape are chosen by the programmer to cover the data being processed.

Related: Block, Kernel
Block

A group of threads that execute together on one streaming multiprocessor and can cooperate through shared memory and synchronization. Block size strongly affects occupancy and performance.

Related: Grid, Shared Memory, Occupancy
Shared Memory

A small, fast, programmer-managed memory space on each streaming multiprocessor shared by the threads of a block. It is used to reuse data and reduce traffic to global memory.

Related: Block, Memory Coalescing
Memory Coalescing

The hardware combining of memory requests from threads in a warp into fewer, larger transactions when the threads access adjacent addresses. Poor coalescing wastes bandwidth and slows kernels.

Related: Warp, Shared Memory
Occupancy

The ratio of active warps on a streaming multiprocessor to the maximum it supports. Higher occupancy can hide memory latency, but it is limited by registers, shared memory, and block size.

Related: Warp, Block, Streaming Multiprocessor (SM)
Host and Device

The host is the CPU and its memory that runs the operating system and launches work; the device is the GPU and its memory that executes kernels. Data moves between them over a bus such as PCIe.

Related: Kernel, Unified Memory
CUDA

NVIDIA's parallel computing platform and programming model that lets developers write GPU-accelerated code in languages such as C++, Python, and Fortran. It includes compilers, libraries, and runtime APIs.

Related: CUDA Toolkit, cuDNN, Kernel
CUDA Toolkit

The collection of compilers, libraries, debuggers, and profiling tools used to build and tune GPU applications. It includes the nvcc compiler, the CUDA runtime, and developer utilities.

Related: CUDA, Nsight Systems, cuBLAS
cuBLAS

NVIDIA's GPU-accelerated implementation of the Basic Linear Algebra Subprograms, providing optimized routines such as matrix multiplication. Many deep learning frameworks rely on it for dense linear algebra.

Related: CUDA Toolkit, Tensor Core
cuDNN

NVIDIA's library of tuned primitives for deep neural networks, covering convolution, pooling, normalization, and activation operations. Frameworks call it to obtain fast, hardware-specific implementations.

Related: CUDA, TensorRT
NCCL

NVIDIA's library for collective communication across multiple GPUs and nodes, supporting operations such as all-reduce and broadcast. It underpins efficient multi-GPU and distributed training.

Related: Distributed Training, NVLink
TensorRT

An inference optimizer and runtime that fuses layers, selects precision, and picks fast kernels for a trained model. It produces an optimized engine targeted to specific GPU hardware.

Related: Inference, Quantization, Model Pruning
Inference

Running a trained model on new inputs to produce predictions, as opposed to training it. Inference workloads emphasize low latency, high throughput, and efficient memory use.

Related: TensorRT, Batching, Quantization
Quantization

Reducing the numerical precision of model weights or activations, for example from FP32 to FP16 or INT8, to shrink memory use and speed up computation with limited accuracy loss.

Related: Mixed Precision, TensorRT, Model Pruning
Mixed Precision

Training or inference that combines lower-precision arithmetic, such as FP16 or BF16, with FP32 where numerical stability matters. It speeds up math on tensor cores while preserving accuracy.

Related: Tensor Core, Quantization
Model Pruning

Removing weights, neurons, or structures from a trained network that contribute little to output quality. The result is a smaller, faster model that uses less memory.

Related: Quantization, TensorRT
Batching

Grouping multiple input samples into one forward pass so the GPU can process them together. Larger batches raise throughput but also raise latency and memory use.

Related: Inference, Throughput and Latency
Throughput and Latency

Throughput is how much work completes per unit time, such as inferences per second; latency is the time one request takes. Optimizing one often trades against the other.

Related: Batching, Inference
Supervised Learning

A training approach that learns a mapping from inputs to labels using a dataset of labeled examples. The model is optimized to minimize error on those examples and generalize to new data.

Related: Training and Inference, Epoch and Batch Size
Training and Inference

Training adjusts model parameters by repeatedly computing gradients and updating weights; inference uses the frozen trained model to make predictions. They have different compute and memory profiles.

Related: Inference, Backpropagation
Backpropagation

The algorithm that computes gradients of a loss with respect to each model parameter by applying the chain rule backward through the network. Optimizers then use these gradients to update weights.

Related: Training and Inference, Epoch and Batch Size
Epoch and Batch Size

An epoch is one full pass over the training dataset; batch size is the number of samples processed before one weight update. Together they set how many updates occur and how much memory is used.

Related: Backpropagation, Batching
Distributed Training

Splitting model training across multiple GPUs or nodes to reduce wall-clock time or fit larger models. Common strategies are data parallelism, tensor parallelism, and pipeline parallelism.

Related: NCCL, NVLink
RAPIDS

NVIDIA's suite of open-source GPU-accelerated data science libraries, including cuDF for dataframes and cuML for machine learning. It lets familiar Python workflows run on GPUs with minimal code change.

Related: cuDF, Apache Arrow
cuDF

A GPU dataframe library in the RAPIDS suite that provides pandas-like APIs for loading, filtering, joining, and aggregating tabular data on the GPU. It accelerates data preparation for analytics and ML.

Related: RAPIDS, Apache Arrow
Apache Arrow

A language-independent columnar memory format for flat and hierarchical data. It enables zero-copy data exchange between tools and is the in-memory foundation for many GPU dataframe libraries.

Related: cuDF, RAPIDS
NVLink

A high-bandwidth direct interconnect between GPUs, and in some systems between GPU and CPU, that is faster than PCIe. It speeds up multi-GPU communication for training and large-model inference.

Related: NCCL, Distributed Training
Unified Memory

A CUDA feature that provides a single address space shared by CPU and GPU, with the system migrating pages on demand. It simplifies programming but can incur migration overhead if access patterns are poor.

Related: Host and Device, CUDA
Nsight Systems

A system-wide performance analysis tool that traces CPU and GPU activity on a timeline. It helps identify bottlenecks such as idle GPUs, slow data transfers, and synchronization stalls.

Related: Nsight Compute, CUDA Toolkit
Nsight Compute

A kernel-level profiler that reports detailed metrics such as memory throughput, occupancy, and instruction mix for individual GPU kernels. It guides low-level optimization work.

Related: Nsight Systems, Occupancy
nvidia-smi

A command-line utility for querying and managing NVIDIA GPUs, reporting utilization, memory use, temperature, and running processes. It is a first tool for checking device health and load.

Related: GPU Memory (VRAM), Nsight Systems
GPU Memory (VRAM)

Dedicated high-bandwidth memory attached to the GPU that holds model weights, activations, and data during computation. Running out of it causes out-of-memory errors that stop jobs.

Related: nvidia-smi, Batching