了解opencl的GPGPU同仁们都必须关注的问题之一就是内存。OCL使用ocl memory object 来存储各种输入或输出数据。ocl memory object 是global memory/constant memory的存储实体。
ocl memory object可以分为两大类:buffer和image。
如OCL spec 中所说,buffer具有以下特点:
(1).可视为随机访问的线性数组(可读可写),与数组的访问方式相同(Array[idx] = **)
(2).可以存储用户自定义的数据结构(自然也支持OCL内建数据类型)
(3).在kernel中需要提供buffer的字节参数来确定其大小
image是一个模式化定制的数据容器,是支持矩阵运算和图像操作的利器。它的结构也与名称一致,具有图像数据的通道个数,通道类型等特征。image具有以下特点:
&nbs