4

因为我希望我的 GPU 为我做一些计算,所以我对测量“纹理”上传和下载速度的主题很感兴趣——因为我的“纹理”是 GPU 应该处理的数据。

我知道从主内存到 GPU 内存的传输是首选的方式,所以我希望这样的应用程序只有在有大量数据要处理并且很少读回结果的情况下才会高效。

无论如何,任何这样的基准测试应用程序?我的意思是,用于测量主存<>GPU 传输吞吐量...

编辑(问题澄清):

一旦有一个应用程序,你启动它,它给出了 2 个数字:

  1. mb/s 主内存和显卡内存之间的传输速率,从主 TO 图,纹理上传

  2. mb/s 主内存和显卡内存之间的传输速率,从图形到主,纹理下载

我只想再次把手放在上面。

另一个编辑(发现了一些东西):

这里http://www.benchmarkhq.ru/english.html?/be_mm.html(搜索 TexBench)是一个测量吞吐量的应用程序 ONE WAY...

4

3 回答 3

2

要测量主机到设备的内存带宽,您可以使用bandwidthTestCUDA SDK 中的示例(从CUDA 站点下载)。

于 2010-03-10T21:26:44.420 回答
1

第一:全局(GPU)内存和纹理之间的区别是由缓存定义的。纹理有它,全局内存 - 没有。

第二:从主机到(GPU)设备的传输速率对于纹理和全局内存是相同的。

第三:从主机到(GPU)设备的传输速率随 GPU 代而变化,并由 PCI-express 总线和数据大小决定。

参见,例如:http ://www.accelereyes.com/wiki/index.php?title=GPU_Memory_Transfer

于 2010-03-10T20:21:17.073 回答
0

您可以使用 cuda 配置文件告诉您在 cuda 函数中花费的时间,包括内存传输时间。您可以编写非常简单的传输测试用例并对其进行测量。当你测量你的特定测试用例时,我认为这会更好。

查找 CUDA_PROFILE 以及如何使用它。http://www.drdobbs.com/cpp/209601096?pgno=2

你的问题有点难以理解,你想测量主机和 GPU 之间的传输(纹理缓存并不真正相关)还是从内核中读取纹理?

于 2010-03-10T18:20:40.137 回答