What is a CUDA Thread Block?
A thread block sits in the middle of the CUDA programming model's thread hierarchy: below a kernel grid, above a single thread. It's the smallest unit of coordination a CUDA programmer directly controls, made up of one or more warps scheduled onto the same Streaming Multiprocessor.
Blocks must run independently of one another, in any order, serial or interleaved, since the GPU makes no promise about which block runs when or where. That independence is what lets one CUDA kernel launch scale from a few blocks on a small GPU to thousands on a large one, unchanged.
A block holds up to 1024 threads on current hardware, usually sized as a multiple of the 32-thread warp. Every thread in a block lands on the same SM, reaching the same pool of on-chip shared memory, whose size per block varies by GPU generation, worth checking on the Aquanode GPU pages before fixing a tile size.
Building on GPUs? Aquanode runs the workload.
Deploy on H100, H200, B200, A100 and MI300X across a multi-provider marketplace, without racking your own hardware or committing to one cloud's spec sheet.
See also
Warp
A warp is a group of 32 threads that a GPU schedules and executes together in lockstep. What warp divergence costs, how warps enable latency hiding, and why they sit outside the official CUDA thread hierarchy.
Kernel
A CUDA kernel is the function a GPU programmer writes and launches, executed once per thread across thousands of threads at once. How kernels map onto the thread and memory hierarchy, with two worked matrix-multiply examples.
Shared Memory
Shared memory is the fast, on-chip pool of memory a CUDA thread block uses to avoid repeatedly hitting slower global memory. The standard load-compute-store pattern it enables, and where bank conflicts come from.