NVIDIA Nsight Deep Learning Designer 是一款新工具,有助于簡化性能模型設計過程。 DL Designer 對模型的結構以及它在 NVIDIA 硬件上的性能提供了有價值的見解。可以使用用戶友好的拖放界面創建模型,該界面具有最流行的深度學習框架中所有常用操作符的節點。
性能分析
從一開始就必須了解模型的性能特征。設計模型后,可以對其進行性能分析。
要選擇并查看最新的分析報告,請選擇發射推斷,看法,推理運行記錄器.
這分為兩個主要部分。如前所示,第一個為您提供了一個運算符表、它們的超參數和執行時間。默認情況下,它們是按優化優先級順序列出的(類似于 nvprof
按優化優先級順序列出內核的方式)。
對于在 NVIDIA 硬件上運行的任何模型,無論是訓練還是推理,一個重要的問題是,“該模型是否使用張量核”?剖面報告的第二部分顯示了張量核的利用情況。
這里有兩組圖,第一組給出了整個網絡的 Tensor 核心利用率、內存吞吐量和 SM 占用率。第二個為從前面列表中單獨選擇的操作員提供這些相同的度量。在張量核心利用率沒有意義的情況下,例如在池運算符的情況下,張量核心利用率顯示為零。
內存利用率可以快速告訴您是否內存受限。在這種情況下,謹慎的做法是尋找機會,在適當的情況下融合運營商,以使用更快的內存。如果有效地使用 GPU 硬件,培訓時間可以大大縮短。在培訓大型模型或使用基于云的服務時,這可以迅速轉化為大大降低的生產成本。
訓練模型
在分析模型以提高性能后,可以將模型導出到 PyTorch 并執行培訓。當使用 NHWC 布局并且您的 conv2d 卷積至少有八個輸入/輸出通道的倍數時,改進領域可以包括確保 FP16
。
要導出到 PyTorch ,請選擇文件,出口,生成 PyTorch 文件(圖 3 )。
將模型導出到 PyTorch 可以為您提供一些選項,以檢查模型的名稱以及為您選擇的文件。但是,您必須為 PyTorch 文件指定一個輸出目錄,該目錄由一個可訓練模型和一些使用該模型的實用方法組成。
要導出到 PyTorch , PATH 環境變量和以下模塊中必須有 Python 3 環境:
- PyTorch
- Numpy
- 枕頭
- Matplotlib 。
- 快速進展
成功生成后,關閉代碼生成完成對話框。
分析模型
現在,您的代碼可以使用了!下一步是對其進行訓練,并將權重加載回 DL Designer ,以便您可以分析模型執行其設計任務的情況。
這里的模型是一個去噪器模型。你可以在樣品中自己試一試。首先要做的是將其加載到 DL 設計器中。接下來,獲取并應用 PyTorch 中訓練獲得的權重。
要配置經過訓練的模型,請選擇工具,網絡設置.
首先要看的是“權重”文件夾。選擇輸出訓練權重的目錄。 DL Designer 會選擇這些選項,并將其應用于適當的運算符。
另外,請確保已設置為 FP16
、 NHWC 布局和 CUDA 后端。要將快速張量核用于卷積和 GEMM (矩陣乘法)等運算,請使用 FP16
。要獲得最快的吞吐量,請使用 NHWC 。
現在,您可以開始對模型執行一些可視化分析。在此之前,請使用一些 DL Designer 分析功能,并向經過訓練的模型添加一些方便的節點,以幫助您評估其作為去噪器的性能。
分析層
從擴展分析部分層調色板要添加的第一個新層是噪音層這有助于向輸入圖像中注入一些噪聲,以便評估在沒有噪聲的情況下,去噪器重建圖像的效果。要執行此操作,請首先選擇并刪除之間的連接 input_image 以及它所連接的三個節點:conv _ enc _ b,conv _ enc _ 1和轉換預洗牌.
現在,選擇圖像輸入節點并將其向上移動一點,以便可以將噪波層放在中間。最后,連接 output_image 節點到新的噪音層,然后將新層連接到先前從圖像輸入連接的三個節點。運行此模型時,可以控制要添加到圖像中的噪波量。
在運行分析之前,您 MIG 發現還有一個節點很有用:混合節點。此節點使您能夠在添加噪聲之前,將最終去噪輸出與原始輸入進行比較。如您所見,您可以通過多種方式執行此比較,從而了解模型的性能。
刪除之間的連接Conv Out 0和 output_image 然后插入混合節點位于這兩個節點之間,很像通過替換連接對噪波節點所做的操作。我建議謹慎,因為 mix 節點實際上有兩個輸入。
您已經指定了Conv Out 0作為一個輸入。現在,在添加噪波之前,添加其他輸入以連接到原始圖像層的輸出,即模型頂部。
到目前為止,您已經添加了方便的實用程序來幫助分析模型。此時,將模型另存為denoiser _ analyze . xml(或類似的東西)然后選擇 Launch Analysis 查看模型的運行情況。下面是用戶界面的快速分解:
- 圖像輸入數據– 右鍵單擊并選擇開放式圖像輸入瀏覽用作原始輸入的 JPG 或 PNG 文件。當你選擇Ok,模型開始生效,模型的輸出顯示在中央面板中。
- 噪音和混合– 剛剛添加的兩個分析層的選項。
- 網絡概述– 由模型推理執行的節點圖。
定制設計檢查
要繼續,請雙擊噪音層,這是下面的第二層網絡概述. 通過航道檢查員在此選項卡下,您可以看到推理期間生成的張量的各個通道,即隱藏層。和噪音層通道在視圖中,現在可以返回屏幕右下角的噪波層選項。拖動規模向右滑動一點,查看圖像輸入上顯示的噪聲量增加。
在下面航道檢查員,雙擊conv _ 2s圖層并加載該隱藏層的通道。這顯示了在推斷過程中卷積運算的結果。
這些通道中的功能有點模糊,但您可以通過選擇“放大”圖標來增強它們(圖 12 )。
這使您能夠更好地了解這些層的性能,并且可以清楚地看到這里沒有任何崩潰。在模型中有很強的信號傳播。任何顯示為綠色的數據都是正值,任何顯示為紅色的數據都是負值。
您還可以使用 shift 按鈕移動顯示的值,使您能夠按所有鍵將顯示為正值或負值。
查看模型的最終輸出,并將其與原始輸入進行比較。這就是混合層發揮作用的地方。關閉通道檢查器并再次查看圖像輸出。使用左上角的縮放按鈕使輸出填充用戶界面,以便您可以真正看到正在發生的事情。
在下面混合層在左下角,更改混合選擇到V 分裂. 當你拖動混合量從左到右滑動,您可以看到,您實際上在原始輸入和重構、去噪輸出之間獲得了一個分割屏幕。它當然有用,但效果相當微妙。
您可以得出這樣的結論:去噪器正在發揮它的作用,但區別是微妙的。如何才能更清楚地了解哪些圖像部分的性能優于其他部分?
在下面混合層改變混合選擇到風俗. 對于混合配方,將現有表達式替換為: alpha * (a-b)
。 alpha
關鍵字實際上是滑塊的標準化值, a
和 b
是該層的兩個輸入。這將創建輸入和輸出的視覺差異,您可以使用混合滑塊在視覺上增強該差異,并告訴您輸入和輸出之間的根本差異。
這類事情告訴你,“是的,你的模型很好。”或者,“你應該重新審視你的架構或培訓數據。”
結論
NVNsight DL Designer 提供了更多功能,例如 NvNeural ,一個高度優化的推理引擎,具有可擴展的基于插件的體系結構,使您能夠實現自己的層類型。
與設計和分析工具一起, DL Designer 是一個高度交互式和多功能的模型設計解決方案,可以減少編碼錯誤和復雜性,從而更加關注模型的功能和性能。
有關更多信息,請參閱以下參考資料:
- 下載 latest release of Nsight DL Designer 。
- 閱讀 Nsight DL Designer documentation 。
- 就 Nsight Systems forums 提出問題或提供反饋。
- 作為注冊的 NVIDIA Developer Program 成員免費獲取 Nsight Developer Tools 。
- 您還可以在 NVIDIA CUDA toolkit 中獲取這些工具。