如何确定我的GPU确实16/32/64位算术运算?(How to determine if my G

2019-09-27 23:24发布

我试图找到我的Nvidia显卡的吞吐量本土算术运算。 在此页面上,Nvidia公司已经证明了各种运算的吞吐值。 问题是我如何确定我的卡做16次或32或64位运算,因为值对每个不同? 此外,我也想算这些指令的延迟值,我的名片。 有没有一些方法来做到这一点? 至于我的研究去,他们不喜欢记录吞吐量。 有一些基准测试套件用于这一目的?

谢谢!

Answer 1:

我怎么确定我的卡做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的延迟微基准数据单一的标准基准,也没有为基准程序做一个单一的标准基准。 这是一个相当艰巨的任务。

有一些基准测试套件用于这一目的?

这类问题是明确题外话这么久。 请仔细阅读在这里它指出:

“的问题,要求我们建议还是找一本书,工具,软件库,教程或其他异地资源是题外话堆栈溢出......”



文章来源: How to determine if my GPU does 16/32/64 bit arithmetic operations?