gpt4 book ai didi

opencl - 如何处理内核中可变数量的算法?

转载 作者:行者123 更新时间:2023-12-04 05:58:35 25 4
gpt4 key购买 nike

我正在捕获视频帧。每一帧都作为 Image2D 传递到内核中。我有大约五种简单的图像处理算法(模糊、锐化等),用户可以选择(也可以组合不同的算法)。我在这里看到三种可能性:

  • 一个内核:在运行时构造内核的字符串
    选择的算法和编译(并采取一次性的开销
    编译延迟)
  • 一个内核:用标志处理选择的算法(虽然我理解条件分支是不可取的)
  • 许多内核(每个算法一个):似乎是问题所在,一个 Image2D可以是 read_onlywrite_only并且我需要重复地将图像从 GPU 复制到 GPU,因为内核的一个输出图像是下一个内核的输入图像。

  • 是否有建议遵循的经验法则?

    最佳答案

    只读/只写问题的一种解决方法是在中间步骤中使用缓冲区。

    Image2D -> buffer0 -> buffer1 -> ... bufferN -> Image2D

    或者,如果您不需要中间结果,则使用两个缓冲区并交替使用它们。 (I2d, B0, B1, B0, ..., I2D)

    您可能需要提前知道您正在应用多少过滤器,但这应该不是什么大问题。

    关于opencl - 如何处理内核中可变数量的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9208535/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com