常量内存的访问性能是否与OpenCL上的全局内存相同

常量内存的访问性能是否与OpenCL上的全局内存相同,opencl,Opencl,我知道。CUDA上的常量内存是一种特定内存。而且它比全局内存更快。 但是在OpenCL的规范中,我得到了以下几个词 \u常量或常量地址空间名称用于描述在全局内存中分配的变量,这些变量在内核中作为只读变量访问 因此,\u常量内存来自\u全局内存。这是否意味着它与\uu global内存具有相同的访问性能?这取决于您使用的OpenCL平台的硬件和软件体系结构。例如,我们可以设想一个具有只读缓存的体系结构,它不需要参与缓存一致性。这些缓存可以用于恒定内存,但不能用于全局内存。因此,您可能会看到对常量内

我知道。CUDA上的常量内存是一种特定内存。而且它比全局内存更快。 但是在OpenCL的规范中,我得到了以下几个词

\u常量
或常量地址空间名称用于描述在全局内存中分配的变量,这些变量在内核中作为只读变量访问


因此,
\u常量
内存来自
\u全局
内存。这是否意味着它与
\uu global
内存具有相同的访问性能?

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


也就是说,我所熟悉的架构中没有一个是以这种方式运行的。这只是假设

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

CUDA模型中的常量内存是全局内存,它只是通过专用的统一缓存访问。OpenCl是否以同样的方式实现它?