gpt4 book ai didi

cuda - Surface 引用比 Surface 对象更快

转载 作者:行者123 更新时间:2023-12-02 17:20:07 26 4
gpt4 key购买 nike

我最近更改了表面对象算法的表面引用。然后,我注意到程序运行速度变慢了。

这是一个简单示例的比较,其中我用常量值填充 3D float 数组 [400*400*400]。

表面引用API

时间:9.068928 毫秒

surface<void, cudaSurfaceType3D> s_volumeSurf;
...
surf3Dwrite(value, s_volumeSurf, px*sizeof(float), py, pz, cudaBoundaryModeTrap);

表面对象API

时间:14.960256 毫秒

cudaSurfaceObject_t l_volSurfObj;
...
surf3Dwrite(value, l_volSurfObj, px*sizeof(float), py, pz, cudaBoundaryModeTrap);

这是在具有计算能力 3.0 和 CUDA 5.0 的 GTX 680 上进行测试的。

有人能解释一下这种差异吗?

最佳答案

在表面对象情况下,表面描述符是从全局内存中获取的。在表面引用情况下,这些描述符被编译到常量内存中。获取这些描述符可能比全局内存访问快得多。如果您的内核足够小或禁用 L1 缓存,您可能会观察到显着的性能损失。

您可以比较 SASS 代码以查看差异。

关于cuda - Surface 引用比 Surface 对象更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com