opencl内存模型:
OpenCL定义了一种多级内存模型,涉及从仅单独计算单元可见的私有内存到设备上的所有计算单元均可见的全局内存这一范围内的各种内存。不同内存空间可重叠在一起,具体取决于实际的内存子系统。
OpenCL 1.0定义了4种内存空间:私有、局部、常数和全局。表2,下表显示了OpenCL定义的内存层次结构图。
私有内存是仅供单一计算单元使用的内存。这与单一计算单元或单一CPU核心中的寄存器相似。
局部内存是供工作组中的工作项使用的内存。这与当前一代的AMD GPU上提供的局部数据共享相似。
常数内存是指在内核执行过程中可用来存储常数数据,供设备中的所有计算单元进行只读访问的内存。主机处理器负责分配和初始化驻留在此内存空间内的存储对象。这与AMD GPU上提供的常数缓存相似。
最后,全局内存是一种可供设备上的所有计算单元使用的内存。这与AMD GPU上提供的片外GPU内存相似。
OpenCL定义了一种多级内存模型,涉及从仅单独计算单元可见的私有内存到设备上的所有计算单元均可见的全局内存这一范围内的各种内存。不同内存空间可重叠在一起,具体取决于实际的内存子系统。
OpenCL 1.0定义了4种内存空间:私有、局部、常数和全局。表2,下表显示了OpenCL定义的内存层次结构图。
私有内存是仅供单一计算单元使用的内存。这与单一计算单元或单一CPU核心中的寄存器相似。
局部内存是供工作组中的工作项使用的内存。这与当前一代的AMD GPU上提供的局部数据共享相似。
常数内存是指在内核执行过程中可用来存储常数数据,供设备中的所有计算单元进行只读访问的内存。主机处理器负责分配和初始化驻留在此内存空间内的存储对象。这与AMD GPU上提供的常数缓存相似。
最后,全局内存是一种可供设备上的所有计算单元使用的内存。这与AMD GPU上提供的片外GPU内存相似。