我最近更改了表面对象的算法表面参考.然后,我注意到程序运行速度较慢.
下面是一个简单示例的比较,其中我用常数值填充3D浮动数组[400*400*400].
时间:9.068928毫秒
surface<void, cudaSurfaceType3D> s_volumeSurf;
...
surf3Dwrite(value, s_volumeSurf, px*sizeof(float), py, pz, cudaBoundaryModeTrap);
Run Code Online (Sandbox Code Playgroud)
时间:14.960256毫秒
cudaSurfaceObject_t l_volSurfObj;
...
surf3Dwrite(value, l_volSurfObj, px*sizeof(float), py, pz, cudaBoundaryModeTrap);
Run Code Online (Sandbox Code Playgroud)
这是在具有Compute Capability 3.0和CUDA 5.0的GTX 680上测试的.
有没有人对这种差异有解释?
cuda ×1