1
3
这是一个CW为任何有兴趣从他们的机器发布基准测试。我们鼓励投稿人留下他们的详细信息,以防将来对他们的结果产生疑问。
贡献者:Dev iL
贡献者:Dev iL |
2
1
我不熟悉MatlabGPU工具箱,但我怀疑第二次传输(从GPU获取数据)在第一次传输结束之前开始。
这里发布了一个C程序的类似问题: copy from GPU to CPU is slower than copying CPU to GPU 在这种情况下,在GPU上启动线程并从GPU获取结果数据后,没有显式同步。 因此,在C cudaMemcpy()中,获取数据的函数必须等待GPU结束之前启动的线程,然后再传输数据,从而增加了数据传输的测量时间。 使用Cuda C API,可以强制CPU等待GPU结束之前启动的线程,方法如下: cudaDeviceSynchronize(); 然后才开始测量返回数据的时间。 也许在Matlab中也有一些同步原语。 同样在同一答案中,建议使用(Cuda)事件测量时间。 在这篇关于优化数据传输的文章中,同样在C抱歉中,事件用于测量数据传输时间: https://devblogs.nvidia.com/how-optimize-data-transfers-cuda-cc/ 在两个方向传输数据的时间相同。 |
user8483278 · GPGPU的高级库 6 年前 |
yuanyesjtu · CUDA gpu矢量[重复] 6 年前 |
syeh_106 · Numpy是否自动检测并使用GPU? 6 年前 |
Farzad · 序列化CUfunction对象 6 年前 |
Vandana · 在以下矩阵副本内核中合并访问 6 年前 |
Marek · opencv:裁剪GPU侧的图像 6 年前 |
Yasin Kumar · 在caffe安装中安装python包时出错 6 年前 |