我试图找到我的Nvidia显卡的吞吐量本土算术运算。 在此页面上,Nvidia公司已经证明了各种运算的吞吐值。 问题是我如何确定我的卡做16次或32或64位运算,因为值对每个不同? 此外,我也想算这些指令的延迟值,我的名片。 有没有一些方法来做到这一点? 至于我的研究去,他们不喜欢记录吞吐量。 有一些基准测试套件用于这一目的?
谢谢!
我试图找到我的Nvidia显卡的吞吐量本土算术运算。 在此页面上,Nvidia公司已经证明了各种运算的吞吐值。 问题是我如何确定我的卡做16次或32或64位运算,因为值对每个不同? 此外,我也想算这些指令的延迟值,我的名片。 有没有一些方法来做到这一点? 至于我的研究去,他们不喜欢记录吞吐量。 有一些基准测试套件用于这一目的?
谢谢!
我怎么确定我的卡做16次或32或64位运算,因为值对每个不同?
在页面上您链接 ,被列为桌子对面(每列)的顶部计算能力。 你的GPU具有计算能力。 您可以使用deviceQuery
CUDA示例应用来弄清楚它是什么,或者看它这里 。
例如,假设我有一个GTX GPU 1060。 如果您运行deviceQuery
它,会报告第6和计算能力的主要版本的1次要版本,所以它是一种计算能力6.1的GPU。 您还可以看到, 在这里 。
现在,回到你链接的表格,这意味着标6.1列是感兴趣的一个。 它看起来像这样:
Compute Capability
6.1
16-bit floating-point add, multiply, multiply-add 2 ops/SM/clock
32-bit floating-point add, multiply, multiply-add 128 ops/SM/clock
64-bit floating-point add, multiply, multiply-add 4 ops/SM/clock
...
这意味着一个GTX 1060以不同的速率或吞吐量对每个能够所有3种类型的操作(浮点乘法,或乘 - 加,或添加)在3级不同精度(16位,32位,64位)的精确。 对于表中,这些数字是每时钟和每个SM。
为了确定整个GPU的总理论峰值吞吐量,我们必须由GPU的时钟速率,并通过短信(流多处理器)在GPU的数量乘以上面的数字。 在CUDA deviceQuery
应用程序还可以告诉你这些信息,或者你可以看看它上线。
此外,我也想算这些指令的延迟值,我的名片。 有没有一些方法来做到这一点? 至于我的研究去,他们不喜欢记录吞吐量。
正如我对你已经提到前面的问题 ,这些延迟值未公布或指定的,而事实上,他们可以(做)从GPU到GPU的变化,从一个指令到另一种(如浮点乘法和浮点加法可能不同的等待时间),并且可以甚至从CUDA版本更改为CUDA版本,其通过多个SASS指令序列仿真特定操作的类型。
为了发现这种延迟的数据,那么,有必要做一些形式的微标杆。 早期和经常被引用的论文,演示如何这可能对CUDA的GPU做的是在这里 。 没有针对GPU的延迟微基准数据单一的标准基准,也没有为基准程序做一个单一的标准基准。 这是一个相当艰巨的任务。
有一些基准测试套件用于这一目的?
这类问题是明确题外话这么久。 请仔细阅读在这里它指出:
“的问题,要求我们建议还是找一本书,工具,软件库,教程或其他异地资源是题外话堆栈溢出......”