在1d缓冲区上使用1d图像有什么好处?

时间:2014-07-26 22:28:55

标签: opencl

据我所知,在2D中,图像在x和y方向缓存。

但是在1d中,你为什么要使用图像?是否使用了内存 对于比缓冲区使用的内存更快的图像?

1 个答案:

答案 0 :(得分:3)

1D图像保留图像,因此它具有Image对抗Buffer的所有优点。那就是:

  1. 图像IO操作通常可以很好地缓存。
  2. 可以使用采样器,这样可以获得计算上便宜的插值,硬件解析的超出限制访问等优点。
  3. 但是,您应该记住,与常规Buffer相比,Image有一些限制:

    1. 单个图像既可用于读取,也可用于在一个内核中进行写入。
    2. 您无法使用vloadN / vstoreN次操作,每次调用最多可处理16个值。您最好的选择是read_imageX& write_imageX个函数,每次调用最多可以加载/存储4个值。这可能是GPU上的严重问题,使用矢量架构。
    3. 如果您不使用4分量格式,通常情况下,由于许多函数同时处理来自颜色平面的样本,因此您将失去部分性能。因此,有效载荷正在减少。
    4. 如果我们谈论GPU,那么硬件的不同部分将涉及图像处理和图像处理。缓冲,因此难以制定,一个人比另一个好。仔细的基准测试&需要进行算法优化。