<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          顯存不夠,框架來湊:兩行代碼顯存翻倍,2080Ti也能當(dāng)V100來用

          共 1355字,需瀏覽 3分鐘

           ·

          2021-06-26 14:21

          點(diǎn)擊左上方藍(lán)字關(guān)注我們



          全網(wǎng)搜集目標(biāo)檢測相關(guān),人工篩選最優(yōu)價值內(nèi)容

          編者薦語
          2080Ti 竟然可以當(dāng) V100 來用,這個功能有點(diǎn)兒厲害。

          轉(zhuǎn)載自 | 機(jī)器之心




          模型加一層,顯存漲一分




          顯存不夠,寫論文、打比賽屢遭掣肘




          顯存:約束算法工程師的瓶頸

          再舉一個常見的例子,企業(yè)中的算法工程師擁有足夠的算力,顯存沒那么重要。然而,只使用并行策略分擔(dān)顯存,還是可能會出現(xiàn)顯存足夠、但每張 GPU 的計(jì)算負(fù)載又不足的情況。



          4 張 V100,顯存占滿,而 GPU 利用率很低。









          原本需要 16GB 顯存的模型,優(yōu)化后使用的顯存峰值就降到了 4GB。

























          因此很明確,動態(tài)計(jì)算圖中也應(yīng)該使用梯度檢查點(diǎn)技術(shù),用計(jì)算換顯存。

          如下為梯度檢查點(diǎn)技術(shù)原理示意,前向傳播中第三個點(diǎn)為檢查點(diǎn),它會一直保存在顯存中。第四個點(diǎn)在完成計(jì)算后即可釋放顯存,在反向傳播中如果需要第四個點(diǎn)的值,可以從第三個點(diǎn)重新計(jì)算出第四個點(diǎn)的值。



















          struct ComputePath {     std::shared_ptr<OpDef> op;      SmallVector<TensorInfo*> inputs;     SmallVector<TensorInfo*> outputs;     double compute_time = 0;} *producer;SmallVector<ComputePath*> users;size_t ref_cnt = 0;

          以上為 MegEngine 底層用于追蹤計(jì)算路徑信息的結(jié)構(gòu)體。其中 op 表示產(chǎn)生該張量的算子;inputs 和 outputs 分別表示這個算子需要的輸入與輸出張量;compute_time 表示該算子實(shí)際的運(yùn)行時間。

          實(shí)際上,在使用 MegEngine 的過程中,全都是用 Python 接口創(chuàng)建張量,只不過框架會對應(yīng)追蹤每個張量的具體信息。每當(dāng)需要訪問張量,不用考慮張量是否在顯存中時,沒有也能立刻恢復(fù)出來。所有這些復(fù)雜的工程化的操作與運(yùn)算邏輯都隱藏在了 MegEngine C++ 底層。



          Python 代碼會翻譯成 C++ 底層實(shí)現(xiàn),C++ 代碼會通過指針管理顯卡內(nèi)存中真正的張量(右圖綠色部分)。

          幸好這樣的復(fù)雜操作不需要算法工程師完成,都交給 MegEngine 好了。

          MegEngine 能做的事情遠(yuǎn)不止于此,只不過大多是像動態(tài)圖顯存優(yōu)化這種技術(shù)一樣,潤物細(xì)無聲地把用戶的實(shí)際問題解決于無形。2020 年 3 月開源的 MegEngine 在以肉眼可見的速度快速成長,從靜態(tài)計(jì)算圖到動態(tài)計(jì)算圖,再到持續(xù)提升的訓(xùn)練能力、移動端推理性能優(yōu)化、動態(tài)顯存優(yōu)化…… 這也許就是開源的魅力。只有不斷優(yōu)化和創(chuàng)新,才能吸引和滿足「挑剔」的開發(fā)者。MegEngine 下一個推出的功能會是什么?讓我們拭目以待。

          END



          雙一流大學(xué)研究生團(tuán)隊(duì)創(chuàng)建,專注于目標(biāo)檢測與深度學(xué)習(xí),希望可以將分享變成一種習(xí)慣!

          整理不易,點(diǎn)贊三連↓

          瀏覽 36
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人破处视频 | 淫色手机在线视频 | 黑几巴视频久久 | 爽好紧别夹喷水免费视频 | 亚洲一二三四五区 |