开普勒的CUDA 32位整数运算速度比Maxwell快?

时间:2015-11-18 10:44:54

标签: optimization cuda

我正在优化我编写的CUDA程序,并希望找到运行它的最快硬件。该程序的核心是进行32位整数运算:AND,OR,XOR,ADD,SUB。

根据nvidia编程指南http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#arithmetic-instructions,开普勒(3.x)每个时钟能够进行160次此类操作。麦克斯韦(5.x)只能处理128个。

给定相同数量的多处理器和相同的频率。这是否意味着开普勒比麦克斯韦快20%?

1 个答案:

答案 0 :(得分:4)

没有

Kepler和Maxwell是不同的架构,这意味着性能不仅仅是throughput * SMs * frequency。可能存在许多不同的架构差异,这些差异允许一个或另一个在实际问题上实现更高百分比的峰值性能。有趣的是,在计算绑定的代码上,我看到麦克斯韦的峰值百分比高于开普勒。

在您的情况下,另一个可能很重要的区别是LOP3指令。引自NVIDIA's blog

  

新的LOP3指令被添加到PTX程序集中,支持一系列   3操作数逻辑运算,例如A& B& C,A& B& ~C,A& B | C,   此功能,在Compute Capability 5.0和   更高的GPU,可以在执行复杂逻辑时保存指令   对多个输入的操作。请参阅PTX ISA的第8.7.7.6节   CUDA Toolkit 7.5版附带的规范。

因此,对于LOP3,您可以在Maxwell上每个SM每个时钟实现256个逻辑运算,而不是128个。