cuda Array 拷贝问题

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...

今天作者在使用cudaMemcpyArrayToArray函数时发现其效率极低,如果使用如下代码,需要77ms

cudaMemcpyArrayToArray(d_Array_A, 0, 0, d_Array_B, 0, 0, nFrameSize*sizeof(float));

如果开辟一块显存中转一下,效率会大幅提高,到20ms

cudaMemcpyFromArray(d_pfData, d_Array_B, 0,0,nFrameSize*sizeof(float),cudaMemcpyDeviceToDevice);
cudaMemcpyToArray(d_Array_A, 0, 0, d_pfData, nFrameSize*sizeof(float), cudaMemcpyDeviceToDevice);

纹理内存与全局内存之间有缓存,所以数据交换较快可以理解,但纹理内存之间拷贝速度反而更慢则不能理解。估计是cuda内部实现时没有做好优化。

标签: | Print Print | 140 views

留下回复