天天看點

《CUDA C程式設計權威指南》——3.6節動态并行

本節書摘來自華章社群《cuda c程式設計權威指南》一書中的第3章,第3.6節動态并行,作者[美] 馬克斯·格羅斯曼(max grossman) ,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視

3.6 動态并行

在本書中,到目前為止,所有核函數都是從主機線程中被調用的。gpu的工作負載完全在cpu的控制下。cuda的動态并行允許在gpu端直接建立和同步新的gpu核心。在一個核函數中在任意點動态增加gpu應用程式的并行性,是一個令人興奮的新功能。

到目前為止,我們需要把算法設計為單獨的、大規模資料并行的核心啟動。動态并行提供了一個更有層次結構的方法,在這個方法中,并發性可以在一個gpu核心的多個級别中表現出來。使用動态并行可以讓遞歸算法更加清晰易懂,也更容易了解。

有了動态并行,可以推遲到運作時決定需要在gpu上建立多少個塊和網格,可以動态地利用gpu硬體排程器和加載平衡器,并進行調整以适應資料驅動或工作負載。

在gpu端直接建立工作的能力可以減少在主機和裝置之間傳輸執行控制和資料的需求,因為在裝置上執行的線程可以在運作時決定啟動配置。

在本節中,将通過使用動态并行實作遞歸歸約核函數的例子,對如何利用動态并行有一個基本的了解。

繼續閱讀