我使用推力與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