【发布时间】:2012-10-11 15:22:00
【问题描述】:
现代高性能计算使用向量指令,例如 NVIDIA GPU 上的 SIMT 指令(是的,我知道 SIMT 并不完全是 SIMD,但我认为差异不会影响这个问题)。我想知道为什么对向量进行操作比拥有更多内核更好。
具体来说,为什么 GPU 在 32 字向量上运行比使用 32 倍的内核更好?我自己做了一些猜测,但我想听听那些真正知道他们在说什么的人。
以下是我的猜测:
如果每个核都有一些控制硬件和一些 ALU 硬件,那么一个向量核将在 32 个 ALU 之间共享一个控制硬件块,这增加了用于计算的晶体管总预算的比例。
如果您无论如何都在进行自然矢量化操作,那么多核只会引入矢量指令不会出现的同步问题。
向量中的不同单词彼此相邻,这与不同的内核不同,因此您最终会以 32 个单词块的形式加载和操作内存,这对于缓存来说非常好.
真正的答案是什么?
【问题讨论】:
-
This 答案可能有用且有些相关....