title: 什么是线程块网格?

线程块网格是 CUDA 编程模型 线程组层次结构的最高层级(左图)。它们映射到多个 流式多处理器 (Streaming Multiprocessor) 上(右图,底部)。改编自 NVIDIA 的 CUDA Refresher: The CUDA Programming Model 和 NVIDIA CUDA C++ Programming Guide 中的图表。

当 CUDA 内核 (kernel) 启动时,它会创建一个称为线程块网格的线程 (thread) 集合。网格可以是一维、二维或三维的。它们由线程块 (thread block) 组成。

内存层次结构 (memory hierarchy) 中对应的级别是全局内存 (global memory)

线程块 (thread block) 实际上是独立计算单元。它们并发执行,即执行顺序不确定,范围从在只有一个流式多处理器 (Streaming Multiprocessor) 的 GPU 上完全顺序执行,到在有足够资源同时运行所有线程块的 GPU 上完全并行执行。