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