让我们拿 nVidia Fermi Compute Architecture .它说:
The first Fermi based GPU, implemented with 3.0 billion transistors, features up to 512 CUDA cores. A CUDA core executes a floating point or integer instruction per clock for a thread. The 512 CUDA cores are organized in 16 SMs of 32 cores each.
[...]
Each CUDA processor has a fully pipelined integer arithmetic logic unit (ALU) and floating point unit (FPU).
[...]
In Fermi, the newly designed integer ALU supports full 32-bit precision for all instructions, consistent with standard programming language requirements. The integer ALU is also optimized to efficiently support 64-bit and extended precision operations. V
据我所知,我不清楚的是,GPU 在所谓的扭曲中执行线程,每个扭曲由大约 32 个线程组成。每个扭曲仅分配给一个核心(这是真的吗?)。那么这是否意味着,单个 SM 的 32 个内核中的每一个都是 SIMD 处理器,其中 单条指令 Handlebars 32 个数据部分 ?如果是这样,那么为什么我们说一个经线中有 32 个线程,而不是单个 SIMD 线程?为什么内核有时被称为标量处理器,而不是向量处理器?
最佳答案
Each warp is assigned to only one core (is that true?).
不,这不是真的。扭曲是 32 个执行线程的逻辑组合。要从单个 warp 执行单个指令,warp 调度程序通常必须调度 32 个执行单元(或“核心”,尽管“核心”的定义有些松散)。
内核实际上是标量处理器,而不是矢量处理器。 32 个内核(或执行单元)由 warp 调度程序编码以执行单个指令,跨 32 个线程,这就是“SIMT”绰号的来源。
关于cuda - GPU/CUDA 核心是 SIMD 核心吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28283970/