簡體   English   中英

如何使用“盡可能多的動態共享內存”啟動內核?

[英]How can I launch a kernel with “as much dynamic shared mem as is possible”?

我們知道CUDA設備的共享內存容量非常有限,僅為幾十千字節。 而且我們還知道,如果您請求過多的共享內存,內核將無法啟動(通常? 而且我們知道,可用的共享內存被您使用的代碼中的靜態分配和動態分配的共享內存所使用。

現在, cudaGetDeviceProperties()為我們提供了整體空間。 但是,給定一個功能符號,是否可以確定它將使用多少靜態分配的共享內存,以便我可以在啟動時將共享內存“填滿”到滿容量? 如果沒有,CUDA是否有可能以某種方式為我解決這個問題?

運行時API具有cudaFuncGetAttributes函數,該函數可讓您檢索當前上下文中任何內核的屬性 ,包括內核將消耗的每個塊的靜態共享內存量。 您可以自己使用該信息進行數學運算。

您還可以使用nvcc編譯信息來獲取共享內存的靜態分配

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM