gpt4 book ai didi

OpenCL __constant 与#define

转载 作者:行者123 更新时间:2023-12-02 17:45:36 25 4
gpt4 key购买 nike

在我的 OpenCL 内核中,我有很多控制内存分配、循环迭代次数等的常量。使用全局 __constants 还是 #defines 更快?

最佳答案

与“普通”C 编译器相同的规则适用于 OpenCL 编译器:#define 在实际编译之前用值替换 ,因此它们被烘焙进入内核。

根据定义,__constant 变量分配在全局内存中,必须在使用前传输。这比使用 #defined 文字要慢。然而,NVIDIA 和 AMD 的 GPU 架构缓存了这些值,并且比普通的全局内存读取速度更快。

故事的结尾和我的个人建议:使用#defines 来获取常量值和“魔数(Magic Number)”,使用__constant 内存来获取更大的快速但只读的内存块(例如查找表)。

关于OpenCL __constant 与#define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15116521/

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