首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCL中的Buffer对象和image buffer对象

OpenCL中的Buffer对象和image buffer对象
EN

Stack Overflow用户
提问于 2012-03-28 16:34:53
回答 1查看 8.4K关注 0票数 9

opencl中的Buffer对象和图像buffer对象有什么区别?很明显,图像缓冲区更快,但在多大程度上呢?在哪些地方必须使用它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-28 21:29:57

OpenCL缓冲区是全局内存中的一维、二维或三维数组。它是一个可以通过指针寻址的抽象对象。缓冲区可以是只读的,也可以是Write_only或读写的。图像缓冲区表示GPU纹理内存。它表示可以通过指定像素x,y,z坐标的函数访问的像素数组。GPU上没有指向图像像素的指针访问。

硬件以不同的方式对待这两种类型的缓冲区。OpenCL缓冲区位于主机RAM或GPU RAM中,并在两者之间传输。OpenCL图像缓冲区具有与OpenCL缓冲区类似的特性。但区别在于图像缓冲区要么是只读的,要么是只写的。对于只读图像缓冲区,GPU可以在每个计算单元中缓存图像像素的副本(= 32或64 ALU )。典型的高速缓存大小为8K (字节或像素?)。此外,由于无法通过GPU上的指针访问图像像素。它们从x,y,z坐标到物理地址的映射可以以多种方式映射。一种方法是Z排序。这使得x,y方向上的相邻像素被线性地存储。这有助于加快图像滤镜中相邻像素的访问速度。

OpenCL缓冲区用于一般数组,尤其是读写或双精度的数组。OpenCL图像缓冲区用于图像处理或其他信号处理算法,其中输入图像/信号可以被视为只读。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9903855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档