天天看點

CUDA學習(二十四)

共享記憶體的影響:

共享記憶體在多​​種情況下可能會有所幫助,例如幫助合并或消除對全局記憶體的備援通路。但是,它也可以作為占用限制。在許多情況下,核心所需的共享記憶體量與所選塊的大小有關,但線程與共享記憶體元素的映射不需要是一對一的。例如,可能需要在核心中使用32x32元素共享記憶體陣列,但由于每塊最大線程數為512,是以無法啟動每塊32x32線程的核心。在這種情況下,可以啟動32x16或32x8線程的核心,每個線程分别處理共享記憶體陣列的兩個或四個元素。使用單個線程來處理共享記憶體陣列的多個元素的方法可能是有益的,即使每個塊的線程限制不是問題。這是因為每個元素的一些操作可以由線程執行一次,将成本分攤到線程處理的共享記憶體元素的數量上。

确定性能對占用情況的敏感度的一項有用技術是通過試驗動态配置設定的共享記憶體量,如執行配置的第三個參數中指定的那樣。 通過簡單地增加這個參數(不修改核心),可以有效地減少核心的占用率并測量它對性能的影響。

如前一節所述,一旦達到50%以上的占有率,通常不會優化參數以獲得更高的入住率。 先前的技術可以用來确定是否已經達到這樣的平台。

繼續閱讀