我目前正在使用cudaMallocPitch()
来加载图像,但由于没有足够的可用内存,因此无法处理非常大的图像。由于我正在使用高光谱图像,因此我需要处理非常非常大的图像。如何部分加载图像,处理它然后将结果放在磁盘上?
答案 0 :(得分:10)
有CUDA板具有足够的内存以容纳2G图像 - 特斯拉M2050和M2070分别具有3GB和6GB内存。如果您不能以每小时2.10美元的价格为这些硬件付钱,那么您可以使用cg1.4xlarge实例类型在Amazon EC2上“租用”带有两台Tesla M2050的服务器。
对于大于可用视频内存量的图像,您必须使用显式memcpy手动将图像数据与视频内存循环,并以块为单位进行处理。如果处理时间与向/从板传输数据所需的时间量相当,则还应考虑使用异步memcpy和CUDA流来重叠传输和计算。