bandwidthTest以二进制MB / s给出结果?

时间:2013-08-24 15:55:06

标签: cuda bandwidth

我对内存带宽的理解是使用SI unitskilo=10^3mega=10^6 etc进行报告(尽管内存大小明显以2 ^ n格式报告)。

CUDA bandwidthTest示例似乎标榜了这一点。下面的示例直接来自SDK示例,其中memSize是一个描述数组大小的整数,默认情况下为32 * 2 ^ 20,MEMCOPY_ITERATIONS是一个整数。

假设经过的时间是1000毫秒而MEMCOPY_ITERATIONS = 1,结果将是64MB / s,但MB的形式为2 ^ 20。我的假设是否正确,如果是,接受的带宽二进制表示法是否正确?

我以为不是。

//calculate bandwidth in MB/s
bandwidthInMBs = 2.0f * (1e3f * memSize * (float)MEMCOPY_ITERATIONS) /
                 (elapsedTimeInMs * (float)(1 << 20));

编辑:如果有人再次搜索此内容,则以SI MB / s报告的更改的bandwidthTest为here,改编自CUDA 5.5 SDK并包含Visual Studio项目。

1 个答案:

答案 0 :(得分:1)

  

bandwidthTest以二进制MB / s?

给出结果

  

是接受带宽的二进制表示法吗?

也许不是。

(那是我能找到的唯一两个问题。)

由于二进制兆字节大于SI兆字节,如果您根据SI单位解释结果,则bandwidthTest 示例代码似乎报告不足。作为示例代码,它的主要目的是教育和指导,而不是符合某些定义。

您拥有源代码 - 您可以按照自己的方式报告自己的版本。