正如this question的答案所示,当SM包含8个CUDA内核(Compute Capability 1.3)时,32个线程的单个warp需要4个时钟周期来执行整个warp的单个指令。
这是在8个核心上同时运行的经线的第1道到第8道,然后是第9道到第16道,在第17道到第24道之后,最后是第25道到第32道。
我能理解这一点吗?
所以我的问题是,在新设备上,每个SM有32个(Compute Capability 2.0)或48个(2.1个)或192个(3.0个,Kepler)CUDA核心,但是warp大小仍然是32个。
答案 0 :(得分:12)
CUDA核心是SM中单精度浮点单元的数量。 SM还有其他执行单元,包括特殊功能单元(RSQRT,COS,SIN,...),双精度单元,加载存储单元,纹理单元,分支单元等。
Fermi,Kepler-gk10x,Kepler-gk110和Maxwell白皮书包含有关SM中执行单元类型和数量的其他信息。
算术指令的指令吞吐量可以在Table of Throughput of Arithmetic Instructions的CUDA编程指南中找到。
作为开发人员,您希望了解SM可以发布吞吐量表中记录的指令的速率。速率取决于warp调度程序的吞吐量以及执行单元的吞吐量(同样,不仅仅是CUDA核心)。
CC1.x特斯拉
CC2.x Fermi
CC3。*开普勒 CC5.0 Maxwell