2012-04-09 79 views
2

有沒有什麼辦法可以找出有多少內存佔用gpu(設備)內存中的內核代碼(執行)? 如果我有512 MB的設備內存,我怎麼知道有多少可用的分配? 可視化分析器顯示此類信息嗎?cuda程序內核代碼在設備內存空間

+0

內核_code_,據我所知,從來沒有存在於設備數據存儲器。 – leftaroundabout 2012-04-09 15:58:56

+0

當一個c程序執行時,這發生在內存中。我認爲可以安全地假設在gpu上執行的代碼的一部分駐留在那裏。我不是故意粗魯,但我想要一個更廣泛的答案。如果不在數據存儲器中那麼在哪裏? – amanda 2012-04-09 16:04:28

+1

實際上我不知道,但是與CPU不同,GPU顯然比馮諾依曼的哈佛架構要好。 – leftaroundabout 2012-04-09 16:19:40

回答

1

程序代碼佔用的內存很少。 CUDA上下文的其餘部分(本地內存,常量內存,printf緩衝區,堆棧和堆棧)使用更多。 CUDA運行時API包括cudeGetMemInfo調用,它將返回可用於您的代碼的可用內存量。請注意,由於碎片和頁面大小限制,您將無法分配內存的每個最後一個空閒字節。最好的策略是從最大和遞歸的嘗試開始分配連續較小的分配,直到獲得成功的分配。

你可以看到設備內存消耗的更全面的解釋在my answer沿着類似的路線前面一個問題,

相關問題