]]>11498用于直線 CUDA 圖形和其他性能增強的恒定時間啟動
http://www.open-lab.net/zh-cn/blog/constant-time-launch-for-straight-line-cuda-graphs-and-other-performance-enhancements/
Wed, 11 Sep 2024 08:11:14 +0000http://www.open-lab.net/zh-cn/blog/?p=11288Continued]]>CUDA Graphs 是一種將 GPU 運算定義為圖形(而非一系列流啟動)并將其批量處理的方法。CUDA Graph 將一組 CUDA 內核和其他 CUDA 運算分組在一起,并使用指定的依賴關系樹執行這些運算。它將與 CUDA 內核啟動和 CUDA API 調用相關的驅動程序活動結合起來,從而加快工作流程。它還可以執行與硬件加速的依賴關系,而不是在可能的情況下僅依賴 CUDA 流和事件。 CUDA 圖形對于 AI 框架尤為重要,因為它們使您能夠捕獲和回放一系列 CUDA 操作,從而降低 CPU 開銷并提高性能。借助最新的改進,您現在可以更好地利用 CUDA 圖形來加速 AI 工作負載。 在 CUDA 工具包 11.8 和 CUDA 工具包 12.6 以及隨附的驅動程序版本之間,NVIDIA 在幾個方面提高了 CUDA 圖形的性能: 在本文中,
]]>10535具有條件節點的 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 資源,使得更多的工作流能夠在單個圖形中表示,從而提高了計算效率。 條件節點有兩種風格: 條件節點是容器節點,類似于子圖節點,但節點中包含的圖的執行取決于條件變量的值。