gpt4 book ai didi

JavaCL - 管理非常大的图像处理

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

我正在从事一个处理大型图像处理(每张图像 50Mo)的工业项目,关键是性能。

JavaCL 的帮助下,我选择将图像处理委托(delegate)给 GPU。我编写了一些测试以确定该方法是否正确。结果一目了然!

超过 100 次图像着色 GPU 获胜:GPU=172ms 与 CPU=438ms

目前,对于这种计算,GPU 显然比 CPU 更强大但是!有问题,内存的问题。事实上,我的显卡有 256Mo 的 VRAM,无法分配大于 8Mo 的图像!

那么,我的问题是,处理大于 8Mo 的图像的最佳方法是什么?

  1. 拼贴图像并处理每个拼贴?会成为性能 killer 由于 RAM 和 VRAM 之间的延迟
  2. 将原始像素提取为 float4 vector 并将它们发送到 GPU?
  3. 更换我的显卡?
  4. 放弃项目?
  5. 多喝点咖啡吗?

提前感谢大家:-)

最佳答案

我不熟悉 JavaCL 绑定(bind) - 但在 OpenCL 中,有图像,然后有缓冲区。

您可以分配尽可能大的缓冲区,但是使用 clCreateImage2D 创建的 cl_mem 的大小有限制。 (CL_DEVICE_IMAGE2D_MAX_WIDTH 和 CL_DEVICE_IMAGE2D_MAX_HEIGHT)。图像比原始缓冲区有一些优势,比如提供硬件加速采样。如果您不需要采样或可以在内核中实现自己的采样 - 那么可以使用缓冲区。否则,您将不得不平铺输入图像并解决平铺处理将引入的任何过滤伪像。

希望这对您有所帮助!

关于JavaCL - 管理非常大的图像处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12114263/

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