CUDA Graphs – NVIDIA 技術博客
http://www.open-lab.net/zh-cn/blog
閱讀開發者創建的最新技術信息、頭條新聞 和內容。Wed, 04 Jan 2023 06:45:47 +0000zh-CN
hourly
1 196178272通過設備圖啟動啟用 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 能夠優化工作流,并使圖形啟動盡可能輕。為了方便起見,如果沒有明確調用上傳步驟,
]]>5949構造具有動態參數的 CUDA 圖表
http://www.open-lab.net/blog/constructing-cuda-graphs-with-dynamic-parameters/
Tue, 23 Aug 2022 03:31:00 +0000http://www.open-lab.net/zh-cn/blog/?p=4945Continued]]>自 CUDA 10 引入以來, CUDA 圖表 已用于各種應用中。 A.圖表將一組 CUDA 內核和其他 CUDA 操作組合在一起,并使用指定的依賴樹執行它們。它通過結合與 CUDA 內核啟動和 CUDA API 調用相關的驅動程序活動來加速工作流。在可能的情況下,它還通過硬件加速來增強依賴性,而不是僅僅依賴 CUDA 流和事件。 構造 CUDA 圖表有兩種主要方法:顯式 API 調用和流捕獲。 通過這種構造圖的方法,通過調用 CUDA API ,將由 CUDA 內核和 CUDA 內存操作形成的圖的節點添加到圖表中,其中被節點類型替換。節點之間的依賴關系通過 API 顯式設置。 使用明確的 API 構造 CUDA 圖表的好處是 API 返回節點句柄(),這些句柄可以用作未來節點更新的參考。例如,
]]>4945在動態環境中使用 CUDA 圖
http://www.open-lab.net/zh-cn/blog/employing-cuda-graphs-in-a-dynamic-environment/
Wed, 03 Nov 2021 08:59:00 +0000http://www.open-lab.net/zh-cn/blog/?p=2176Continued]]>通過將計算密集型部件卸載到 GPU 上,可以大大加快許多工作負載。在 CUDA 術語中,這被稱為啟動內核。當這些內核很多且持續時間很短時,啟動開銷有時會成為一個問題。 CUDA Graphs提供了一種減少開銷的方法。圖形之所以有效,是因為它們將任意數量的異步 CUDA API 調用(包括內核啟動)組合到一個只需要一次啟動的操作中。它們在創建時確實會產生一些開銷,因此它們的最大好處來自多次重用。 在 ToolkitVersion10 中引入 CUDA 圖形時,可以對其進行更新,以反映其實例化中的一些細微變化。此后,此類更新操作的覆蓋范圍和效率顯著提高。在這篇文章中,我描述了一些通過使用 CUDA 圖來提高實際應用程序性能的場景,其中一些場景包括圖更新功能。 考慮一個應用程序,該函數具有啟動許多短運行內核的功能,例如: 如果每次遇到此函數時都以相同的方式執行,