【发布时间】:2013-12-10 05:29:25
【问题描述】:
根据Kepler architecture whitepaper,SMX 具有192 CUDA 内核和64 双精度单元 (DPU)。对于 K20Xm,有14 SMX 总计为2688 核心,这意味着只计算 CUDA 核心。那么 DPU 的用途到底是什么,它们的用途与内核有何关系?
我的想法:
a) CUDA 内核不能进行双精度运算,只有 DPU 可以。因此,当 DPU 忙时,CUDA 内核可用于其他工作。
b) CUDA 内核不知何故需要一个双精度单元来执行双精度操作,因此只有 128 的 192 CUDA 内核可用于其他东西。
干杯 安迪
【问题讨论】:
-
我不确定为什么这个问题被标记为不清楚。我正在投票重新打开它。
-
@Talonmies 等人:我不明白如何使用双精度单位。它们与某些工作有何关系,即它们是否会阻止 CUDA 单精度内核?或者那些可以免费从事其他工作?为什么它们不包含在 K20Xm 规格中的内核总数中?或者用更粗暴的方式:如果我想以最有效的方式使用开普勒卡,我需要注意什么。
-
请仔细阅读 Robert Crovella 的回答。他明确表示 DPU 独立于“CUDA 内核”,因此我不希望它们阻塞 CUDA 单精度内核(单精度和双精度内核可以同时工作)。对于之前的
sm=2.0Fermi 架构,只有32单精度内核,每条双精度指令消耗2单精度内核。因此,双精度指令不支持任何其他操作的双重分派。现在,双问题也可以使用双精度操作。 -
啊,我刚刚找到了困惑的根源。 K20Xm 每个 DPU 有 3 个 CUDA 内核,这意味着它的单精度性能应该是双精度性能的三倍(根据他们的论文)但不知何故我以为我读到它只会提供 2 的加速. 很抱歉造成混乱...感谢您的回答