nvidia gpu内部硬件单元有很多种,单独某一种的数量与显卡性能并不成严格的正相关。
实际上每一代架构都在调整各种单元之间的比例,目的是为了
让程序提高并行度,使有效吞吐接近理论极限
。如果设计gpu的过程中没有权衡各种硬件资源的比例,会造成某一种硬件资源的缺乏成为限制整个cuda程序运行效率的瓶颈。
问题里的cuda core,或者称为sp,是主要的运算单元,内部有分别处理int和单精度float的部分,用于执行一些常用的运算指令。除了sp之外还有双精度单元用于科学计算以及特殊运算单元sfu来执行比较复杂的运算指令比如三角函数。
而gpu中除了这些运算单元之外还有很重要很稀缺的储存器结构。现代计算机,无论CPU还是GPU,主要的性能瓶颈都来自储存器。
gpu运算单元的总峰值吞吐能力远远超过访存的峰值带宽。
在硬件上比SP更大的运算单位称为SM,一个SM是由多个SP加上其他的资源组成的,实际上
SM才更像是一个具有完整功能的CORE。
因为SM可以调度并发射指令到运算单元内。