日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

機器之心報道

編輯:杜偉

 

想要了解自己的 PyTorch 項目在哪些地方分配 GPU 內(nèi)存以及為什么用完嗎?不妨試試這個可視化工具。

 

近日,PyTorch 核心開發(fā)者和 FAIR 研究者 Zachary DeVito 創(chuàng)建了一個新工具(添加實驗性 API),通過生成和可視化內(nèi)存快照(memory snapshot)來可視化 GPU 內(nèi)存的分配狀態(tài)。這些內(nèi)存快照記錄了內(nèi)存分配的堆棧跟蹤以及內(nèi)存在緩存分配器狀態(tài)中的位置。

接下來,通過將這些內(nèi)存快照可視化為火焰圖(flamegraphs),內(nèi)存的使用位置也就能一目了然地看到了。

圖靈獎得主 Yann Lecun 也轉推了這個工具。

Twitter@Zachary DeVito

下面我們來看這個工具的實現(xiàn)原理(以第一人稱「我們」描述)。

生成快照

首先,我們必須記錄每次分配的堆棧幀信息。

記錄這些堆棧跟蹤的速度非常快(每次分配約 1 us,正常的 PyTorch 內(nèi)核調(diào)用需要至少 8 us),但我們默認將其關閉。而啟用之后,我們可以分配一些內(nèi)存并拍攝快照。

快照記錄了整個分配器的狀態(tài),如下所示。

快照是具有以下結構的 Segment 字典列表。

Segments 是直接從 cudaMalloc 請求并由分配器緩存的內(nèi)存。因此,我們可以只使用這些 segments 中的一部分,緩存分配器將它們分為一個或更多個 Block。所有的塊始終保持相同的分配狀態(tài)。同時,使用_record_memory_history,每個塊還將記錄一個 History 對象,該對象會記住塊中最后一次分配的位置,包括作為 Frames 列表的堆棧跟蹤。

對于 active_allocated 塊,它其中存在的內(nèi)容和當前分配的內(nèi)容將有一個歷史記錄。對于 inactive 塊,可能會有多個條目來記錄塊內(nèi)存中最后存在的內(nèi)容。可能不止一個條目的原因在于分配器在空閑時會合并分割塊,并記錄下兩次拆分的歷史。為了避免出現(xiàn)大量的歷史記錄,我們只保留不與任何更新塊重合的塊的歷史記錄。

保存快照

快照因自身設計而可以之后離線查看。

文件_memory_viz.py 可以直接用作交互式命令來處理保存的快照。

可視化快照

_memory_viz.py 工具也可以生成內(nèi)存的可視化火焰圖。

可視化圖將分配器中所有的字節(jié)(byte)按不同的類來分割成段,如下圖所示(原文為可交互視圖)。

火焰圖可視化是一種將資源(如內(nèi)存)使用劃分為不同類的方法,然后可以進一步細分為更細粒度的類別。

memory 視圖很好地展現(xiàn)了內(nèi)存的使用方式。但對于具體地調(diào)試分配器問題,首先將內(nèi)存分類為不同的 Segment 對象是有用的,而這些對象是分配軌跡的單個 cudaMalloc 段。

比較快照

該可視化器還可以生成顯示在兩個快照之間添加和刪除的段的可視化。例如,我們可以使用更大的輸入重新運行模型,并查看分配器如何為更大的臨時對象請求更多內(nèi)存。

比較視圖僅顯示新段,這有助于找出哪些代碼路徑提示分配更多內(nèi)存。

$ Python/ target=_blank class=infotextkey>Python _memory_viz.py compare snapshot.pickle snapshot2.pickle -o compare.svgonly_before = []only_after = [140636932014080, 140636827156480, 140634912456704, 140634839056384, 140634843250688, 140634841153536, 140634866319360, 140634811793408, 140634845347840, $ 140636806184960, 140636778921984, 140634878902272]

原文鏈接:https://zdevito.github.io/2022/08/16/memory-snapshots.html

分享到:
標簽:PyTorch
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定