我使用推力与cuda 5.5进行整数向量排序。 。 排序100 * 1024 * 1024 INT的应分配400MB存储器,但NVIDIA-SMI节目总是 “存储器使用的105MB/1023MB”(我的测试GPU是GTX260M)如何获得最大的数组大小适合gpu内存?
排序150 * 1024 * 1024给出分配错误:
GPU memory usage: used = 105.273682, free = 918.038818 MB, total = 1023.312500 MB
我可以查看可用最大内存为我整型数组GPU开始分析之前:
terminate called after throwing an instance of 'thrust::system::detail::bad_alloc'
what(): std::bad_alloc: out of memory
Aborted (core dumped)
数组分配之前,我使用cudaMemGetInfo它返回检查内存?
编辑:
好吧,之前我的排序内存使用量大约是这个。 GPU内存使用情况:used = 545.273682,free = 478.038818 MB,total = 1023.312500 MB
对我来说排序算法需要一些额外的内存。
我想你的GetInfo有问题。正如你所说的,你先分配了400MB,然后再分配另一个600MB,这对你的略小于1000MB的设备来说非常重要。 – LumpN
好的,我检查了nvidia-smi没有显示正确的用法。 – Arman