OpenCL内存模型与实际存储器体系结构无关,它定义了被内核所用的抽象内存体系,无需考虑实际的底层内存架构。内存模型分为四种类型:全局内存、常量内存、局部内存和私有内存;
- 全局内存(global memory):工作空间中所有的工作节点都可以读写此类内存中的任意元素。对全局内存进行读写可能会被缓存,这取决于设备的能力。
- 常量内存(constant memory):全局内存中的一块区域,在内核执行过程中保持不变。工作空间中的所有工作节点都可以进行读操作,不能进行写操作。主机负责此中的内存对象进行分配和初始化。
- 局部内存(local memory):从属于一个工作组的内存区域,它可以用来分配一些变量,这些变量由此工作组中所有的工作节点所共享。在实现时,既可以用 OpenCL 设备上的专用内存实现,也可以将其映射到一块全局内存中。
- 私有内存(private memory):只从属于一个工作节点的内存区域,一个工作节点的私有内存中所定义的变量对另外一个工作节点来说是不可见的。

下一讲 我们介绍Opencl 四模型的 编程模型。

无
浙公网安备 33010602011771号