3

我所知。CUDA 上的常量内存是一个特定的内存。它比全局内存更快。但在 OpenCL 的规范中。我得到以下的话。

__constant常量地址空间名称用于描述分配在全局内存中并且在内核内部作为只读变量访问的变量

所以__constant记忆来自__global记忆。这是否意味着它与__global内存具有相同的访问性能?

4

2 回答 2

7

这取决于您使用的 OpenCL 平台的硬件和软件架构。例如,可以设想一种具有不需要参与缓存一致性的只读缓存的体系结构。这些缓存可用于常量内存,但不能用于全局内存。因此,您可能会看到对常量内存的更快访问。

话虽如此,我熟悉的架构都不是以这种方式运行的。所以这只是假设。

于 2012-08-28T06:23:53.157 回答
1

OpenCL 标准没有指定如何实现常量内存,但在 NVIDIA GPU 中缓存常量内存。我不知道AMD是做什么的。

于 2012-08-28T09:05:13.363 回答