image - 如何在 CUDA 中处理非常大的图像处理?图片 > 2GB

标签 image cuda gpu

我目前正在使用 cudaMallocPitch() 来加载图像,但是对于非常大的图像它会失败,因为没有足够的可用内存。因为我在处理高光谱图像,所以我有非常非常大的图像要处理。我怎样才能部分加载图像,处理它然后将结果放在磁盘上?

最佳答案

有内存足以容纳 2G 图像的 CUDA 板 - Tesla M2050 和 M2070 分别有 3GB 和 6GB 内存。如果您无法证明为此类硬件预付费用,您可以以 2.10 美元/小时的价格在 Amazon EC2 上使用 cg1.4xlarge 实例类型“租用”一台配备两台 Tesla M2050 的服务器。

对于大于可用视频内存量的图像,您将不得不使用显式 memcpy 手动将图像数据循环进出视频内存,并以 block 的形式进行处理。如果处理时间与将数据传入/传出板所需的时间相当,您还应该考虑使用异步 memcpy 和 CUDA 流,以重叠传输和计算。

关于image - 如何在 CUDA 中处理非常大的图像处理?图片 > 2GB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9264933/

相关文章:

matrix - CUDA - 简单的矩阵加法/求和运算

cuda - 将实值函数与 CUDA 集成的辛普森方法

python - 如何修复空的 tensorflow 安装?

.net - 我可以利用 GPU 从 .NET 进行 AES 加密吗?如果是这样,如何?

javascript - 纯 JavaScript 图像抓取缩放?

python - 识别文档中的图像并自动将其删除的算法

android - 在线图片加载哪个Android图片库

c - 在 GPU 显存不够时使用 RAM

c - 在 Tesla K80 集群中使用点对点获取 nan 结果

c++ - 使用 ofstream 创建一个位图文件有一个奇怪的输出