根据Kepler architecture whitepaper,SMX拥有192
个CUDA核心和64
双精度单位(DPU)。对于K20Xm,14
核心总共有2688
个SMX,这意味着只计算CUDA核心。那么DPU的用途到底是什么以及它们与核心的使用有何关系?
我的想法:
a)CUDA核心不能进行双精度操作,只能使用DPU。因此,当DPU忙时,CUDA核心可以免费用于其他内容。
b)CUDA内核在某种程度上需要双精度单元才能进行双精度操作,因此只有128
个CUDA内核的192
可用于其他内容。
干杯 岸堤
答案 0 :(得分:2)
双精度单元实际上是单独的硬件浮点单元,可进行双精度算术运算。它们独立于“cuda核心”,粗略地说,它可以被认为是单精度单位。
因此,对于单精度算术,可以基于“cuda核心”或单精度单位计算吞吐量。对于双精度算术,必须根据双精度单位计算吞吐量。
在Kepler K20 SMX中,ratio of double-precision units to single precision units为1:3。因此,每种算术的吞吐量遵循相同的比率。 “算术”我指的是浮点乘法或浮点数。