使用enqueueWriteBuffer和enqueueReadBuffer在GPU和CPU之间(双向)复制内存时,我的性能非常低下。因此,我编写了一个测试以确保问题出在这两个功能上,而我仍然得到非常低的性能。
我的测试正在执行几份副本,包括1GB副本,但最佳结果仍然是3GB / s。相比之下,CUDA测试“ bandwidthTest.exe”可达到约12GB / s,复制大小为30MB。我正在使用NVIDIA 1050 GTX和CUDA 10.0的笔记本电脑中运行所有测试。
有什么想法为什么性能可能会这么低?
这是我用于测试的代码,我正在使用Qt构建它。因此,有一些依赖项(QTime,QDebug):
const mySpecialInstance: MySpecialClass =
Math.random()<0.5 ? new MySpecialClass() : new MySpecialClass("Fred");