gpt4 book ai didi

algorithm - 传播像素的大规模并行算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:54 26 4
gpt4 key购买 nike

我正在设计一个 CUDA 应用程序来处理一些视频。我使用的算法要求以一种与康威的生活游戏不同的方式填充空白像素:如果另一个像素周围的像素都被填充并且所有的值都相似,则特定像素将被周围的值填充。迭代直到所有要修复的像素数等于上次迭代中要修复的像素数(即,当没有其他事情可以做时)。

我的困惑是:处理流水线的前一部分和下一部分都是在 GPU 上的 CUDA 中实现的。将整个图像传输回 RAM,在 CPU 上处理它,然后再传输回 GPU 的成本很高。即使慢一点,我也想在 CUDA 中实现算法。

但是,这个问题的本质要求所有线程之间同步,以更新每次迭代之间的全局图像。我考虑过多次为每次迭代调用内核,但我无法确定该过程何时“完成”,除非我在每次迭代之间将数据传输回 CPU,这会由于内存传输延迟而导致效率低下PCI-e接口(interface)。

对并行算法有一定经验的人有什么建议吗?提前致谢。

最佳答案

听起来你需要一个额外的图像缓冲区,这样你就可以将未修改的输入图像保存在一个缓冲区中,并将处理后的输出图像写入第二个缓冲区。这样每个线程都可以处理单个输出像素(或小块输出像素),而不必担心同步等问题。

关于algorithm - 传播像素的大规模并行算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3113504/

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