Stephen Jones – NVIDIA 技術博客
http://www.open-lab.net/zh-cn/blog
閱讀開發者創建的最新技術信息、頭條新聞 和內容。Thu, 16 May 2024 07:44:34 +0000zh-CN
hourly
1 196178272具有條件節點的 CUDA 圖的動態控制流
http://www.open-lab.net/zh-cn/blog/dynamic-control-flow-in-cuda-graphs-with-conditional-nodes/
Fri, 10 May 2024 07:40:58 +0000http://www.open-lab.net/zh-cn/blog/?p=10046Continued]]>CUDA 圖 可以顯著提高性能,因為驅動程序能夠使用任務和依賴關系的完整描述來優化執行。特別是在靜態工作流中,圖形可以提供難以置信的好處,其創建的開銷可以在多次連續啟動中分攤,從而提高整體性能。 然而,幾乎所有的問題都涉及某種形式的決策,這可能需要分解圖并將控制權返回給 CPU,以決定下一步要啟動哪些工作。像這樣分解工作會損害 CUDA 進行優化的能力,占用 CPU 資源,并增加每次圖形啟動的開銷。 從 CUDA 12.4 開始,CUDA Graphs 支持 條件節點,這使得圖形的部分能夠有條件地或重復地執行,而不需要將控制返回到 CPU。這釋放了 CPU 資源,使得更多的工作流能夠在單個圖形中表示,從而提高了計算效率。 條件節點有兩種風格: 條件節點是容器節點,類似于子圖節點,但節點中包含的圖的執行取決于條件變量的值。
]]>10046通過設備圖啟動啟用 CUDA 圖中的動態控制流
http://www.open-lab.net/zh-cn/blog/enabling-dynamic-control-flow-in-cuda-graphs-with-device-graph-launch/
Mon, 12 Dec 2022 06:43:00 +0000http://www.open-lab.net/zh-cn/blog/?p=5949Continued]]>CUDA 圖形通過將用戶操作定義為任務圖(可以在單個操作中啟動),顯著減少了啟動大量用戶操作的開銷。提前了解工作流使 CUDA 驅動程序能夠應用各種優化,這在通過流模型啟動時無法執行。 然而,這種性能是以靈活性為代價的:如果事先不知道整個工作流,則 GPU 執行必須中斷,才能返回 CPU 做出決定。 CUDA 設備圖啟動通過基于在運行時確定的數據使任務圖能夠從正在運行的 GPU 內核高效地啟動來解決這個問題。 CUDA 設備圖形發射提供了兩種不同的發射模式:發射和忘記,以及尾部發射,以實現廣泛的應用和使用。 這篇文章演示了如何使用設備圖形啟動和兩種啟動模式。它以設備端工作調度程序為例,它解壓縮文件以進行數據處理。 執行任務圖涉及以下四個步驟: 通過將啟動步驟與其他步驟分離, CUDA 能夠優化工作流,并使圖形啟動盡可能輕。為了方便起見,如果沒有明確調用上傳步驟,