999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

結合算子選擇的卷積神經網絡顯存優化算法

2024-05-15 17:43:18魏曉輝周博文李洪亮徐哲文
吉林大學學報(理學版) 2024年2期

魏曉輝 周博文 李洪亮 徐哲文

摘要: 針對卷積神經網絡訓練中自動算子選擇算法在較大的顯存壓力下性能下降的問題, 將卸載、 重計算與卷積算子選擇統一建模, 提出一種智能算子選擇算法。該算法權衡卸載和重計算引入的時間開銷與更快的卷積算子節省的時間, 尋找卸載、 重計算和卷積算子選擇的調度, 解決了自動算子選擇算法性能下降的問題. 實驗結果表明, 該智能算子選擇算法比重計算-自動算子選擇算法縮短了13.53%訓練時間, 比已有的卸載/重計算-自動算子選擇算法縮短了4.36%的訓練時間.

關鍵詞: 顯存; 卷積神經網絡訓練; 卷積算子; 卸載; 重計算

中圖分類號: TP391文獻標志碼: A文章編號: 1671-5489(2024)02-0302-09

Memory Optimization Algorithm for Convolutional Neural Networks with Operator Selection

WEI Xiaohui, ZHOU Bowen, LI Hongliang, XU Zhewen

(College of Computer Science and Technology, Jilin University, Changchun 130012, China)

Abstract: Aiming at the problem of? the performance degradation of the automatic operator selection algorithm in convolutional neural network training under high memory pressure, we modelled offloading, recomputing and convolutional operator selecting in a unified manner and proposed an intelligent operator selection algorithm. The algorithm weighed the time overhead introduced by offloading and recomputing against the time saved by faster convolutional operators, found the scheduling of offloading, recomputing and convolutional operator selecting, and solved the performancedegradation problem of the automatic operator selection algorithm. The experimental results? show that the intelligent operator selection algorithm reduces training time by 13.53% over the recomputing-automatic operator selection algorithm and by 4.36% over the existing offloading/recomputing-automatic operator selection algorithm.

Keywords: memory; convolutional neural network training; convolutional operator; offloading; recomputing

由于卷積神經網絡卓越的性能, 越來越多的應用使用了卷積神經網絡, 如圖像識別、 語義分割等. 為加速卷積計算, 研究人員提出了不同的卷積算子, 它們需要不同的工作空間和卷積耗時. 在訓練時, 對于卷積算子的選擇, 主流的訓練框架如Tensorflow[1], 會根據空閑顯存自動選擇合適的卷積算子. 但卷積神經網絡的訓練需要保存大量的張量以計算梯度, 訓練的顯存壓力隨網絡規模的增大而增加. 當顯存壓力變大, 空閑顯存匱乏時, 已有的自動算子選擇算法就會選擇工作空間需求少但耗時長的卷積算子, 進而延長了訓練時間.

目前緩解訓練顯存壓力的主流方法是卸載和重計算張量. 卸載方法[2-5]將顯存中暫時不用的張量通過PCIE總線傳輸到容量更大的CPU內存, 等再次使用時再從CPU的內存傳回GPU的顯存, 從而緩解訓練的存儲壓力, 運行效率受PCIE總線傳輸速度的影響. 重計算方法[6-7]保留部分張量作為檢查點, 等使用被釋放的張量時再從檢查點重新計算回來, 運行效率受檢查點機制的影響. 通過卸載和重計算釋放更多的顯存, 本文選擇工作空間大但耗時短的卷積算子, 可有效減少訓練時間, 但也會引入更多的卸載和重計算時間開銷. 所以將卸載、 重計算和算子選擇開銷統一建模, 并基于開銷模型進行綜合考慮設計算法已經成為目前該領域重要的研究內容.

本文針對卷積算子選擇的問題, 進行整數規劃問題的模型設計. 在此基礎上, 本文提出智能算子選擇算法, 綜合考慮卸載、 重計算和卷積算子選擇, 使卸載和重計算為更快的卷積算子的工作空間騰出顯存, 進而縮短訓練時間. 本文使用大規模求解器Gurobi搜索整數規劃模型的結果作為建模整數規劃問題的可行解, 并將求解器結果轉化為顯存管理調度, 在訓練時通過調度管理顯存. 本文對實際AI生產環境下的多種網絡進行測試, 并將智能算子選擇與自動算子選擇進行對比. 實驗結果表明, 本文的MO-SOS(memory optimization with smart operator selection)算法可以顯著提升GPU運算性能.

1 研究背景

1.1 自動算子選擇與卷積神經網絡訓練顯存壓力

由于計算量大, 卷積計算是卷積神經網絡訓練中最耗時的計算. 為加速卷積計算, 研究人員提出了不同的卷積算子實現卷積計算, 如快速Fourier變換卷積[8]和Winograd變換卷積[9]等. 它們在加速卷積計算時需額外的空間保存計算過程中的臨時變量, 即神經網絡算子的工作空間. 在訓練卷積神經網絡時, 現有的訓練框架如Tensorflow, 會根據空閑顯存自動選擇合適的卷積算子.

近年來, 卷積神經網絡的網絡規模越來越大, 使訓練的顯存壓力變得越來越嚴峻. 訓練卷積神經網絡是尋找一組網絡參數使神經網絡的輸出盡可能接近期望值. 圖1為一個多層卷積神經網絡的訓練過程, 包括卷積層CONV、 批標準化層BN、 激活層ReLU和全連接層FC等. 目前尋找網絡參數常用的方法是梯度下降法, 需要計算神經網絡的損失(Loss)和參數的梯度.

Loss是神經網絡輸出與期望值之間的差距, 這種差距可通過計算損失函數得到, 即圖1中的Loss層. Loss是通過前向傳播計算的, 前向傳播是圖1中實線表示的方向. 神經網絡訓練可通過Loss計算出模型的參數梯度, 從而使用參數梯度更新模型參數.

計算梯度是通過后向傳播完成的, 即圖1中虛線表示的方向. 計算梯度使用鏈式法則依次計算出每層的參數梯度. 計算參數梯度依賴張量[WTHX]a[WTBX]i, 所以卷積神經網絡訓練會保存前向傳播的輸出張量. 目前, 卷積神經網絡通過增加層數以獲得更高準確率, 所以它們的訓練顯存需求也會越來越大, 如Vgg19[10]和Resnet1001等. 當顯存壓力較大, 空閑顯存匱乏時, 自動算子選擇算法會選擇工作空間少但耗時較長的卷積算子, 增加訓練時間. 但卷積神經網絡的張量在訓練中大部分時間內都是空閑的, 未被訪問[2], 所以可將張量卸載或重計算減輕訓練顯存壓力.

1.2 緩解顯存壓力方案與智能卷積算子選擇動機

卸載將CPU的內存作為GPU的緩存, 暫存訓練中的張量. 目前的GPU通常作為CPU的外設設備, 它是通過PCIE總線與CPU相連, 它們通過PCIE總線相互傳輸數據. 由于CPU的內存比GPU的顯存容量大, 所以可以把張量卸載到CPU主存, 再次需要張量時預取回GPU顯存. 目前的主流顯卡如3090,P40等, 都支持計算、 卸載和預取張量并行. 所以為不阻塞訓練中的計算, 需要提前卸載或預取張量. VDNN(virtualized deep neural networks)[2]在前向傳播中的卷積計算時卸載它的輸入張量, 當后向傳播需要已卸載的輸入張量時再提前預取回. SwapAdvisor[4]通過進化計算選擇卸載的張量、 卸載開始時間和預取開始時間, 進一步減少阻塞時間. STR(swap dominated tensor re-generation)[11]發現以前的工作未考慮到多次預取張量, 因為把一個張量卸載到CPU的內存后, CPU的內存中便有了該張量的備份, 當在訓練中多次訪問這個張量時, STR認為可以把張量多次預取回GPU顯存.

隨著GPU計算能力越來越強, 張量的卸載和預取的阻塞可能比計算更耗時, 因此研究人員又提出了另一種緩解顯存壓力的方法——重計算. 重計算保留一部分張量作為檢查點, 釋放其他的張量騰出顯存空間, 當被釋放的張量再次需要訪問時, 從現有的檢查點開始重新計算. 由于引入了重計算, 訓練會引入額外的計算時間, 該方法是一種用時間換取空間的方法, 所以保留不同的檢查點會引入不同的重計算時間. Chen等[6]把網絡分成多個部分, 每部分只保留其輸入, 對于每部分的其他張量都重新計算. Checkmate[7]不同于文獻[6]的工作, 其探究了在顯存容量的限制下, 哪些張量作為檢查點能引入最小的額外計算時間, 將重計算問題抽象為線性規劃問題, 用現有的求解器解決重計算問題.

卸載和預取會導致額外的阻塞時間, 而重計算會引入額外的計算時間. 文獻[12]認為卷積計算時間較長, 不適合用于重計算, 所以卸載和預取卷積計算的輸出張量, 而對于激活、 批標準化的輸出張量, 它們的計算時間相對較少, 適合用于重計算. 文獻[13]研究表明, 以往的卸載和重計算的結合都是以神經網絡層的粒度管理顯存, 然而一個網絡層中也會存在多個計算, 所以提出了張量粒度的顯存管理方案. STR認為在非線性卷積神經網絡訓練時, 一個張量會被多次訪問, 所以STR通過多次預取已卸載的張量減少重計算的時間.

當顯存壓力較大, 空閑顯存匱乏時, 可通過卸載和重計算釋放更多的顯存, 為卷積算子增加空閑顯存. 如圖2所示, 它們是Vgg19在Tesla P40平臺上訓練時的6個前向傳播的卷積計算, 使用了主流的CUDNN作為卷積算子庫. 不可釋放顯存是當前卷積計算依賴的輸入和輸出張量占用的顯存, 而可釋放顯存是暫時不用的張量顯存. 與現有的工作相同, 本文主要對前向傳播的輸出張量進行顯存優化, 所以圖2只統計了前向傳播的輸出張量. 在訓練時, 卸載和重計算可釋放的顯存, 為卷積計算騰出空閑顯存. 但卸載和重計算會引入更多的額外時間開銷, 所以將卸載和重計算引入的時間開銷與更快卷積算子節省的時間權衡. 本文拓展了STR的模型, 對卸載、 重計算和卷積算子選擇進行統一建模, 尋找卸載、 重計算和卷積算子的調度, 以減少訓練時間.

2 問題模型與算法設計

2.1 考慮卷積算子選擇的顯存優化問題描述

由于深度神經網絡框架如Tensorflow和Pytorch等的使用方便與性能強大, 神經網絡設計者常使用它們設計和訓練網絡. 這些主流的框架將深度神經網絡的訓練過程表示成計算圖, 如有向無環圖(DAG). 計算圖由節點和邊組成, 節點表示計算, 如卷積、 矩陣相乘等, 邊表示數據依賴, 如圖3中的DAG計算圖. 在訓練時, 訓練框架會按照計算圖的拓撲排序, 依次執行節點的計算[4,7].

圖3中v18節點是Vgg19模型的一個卷積計算, 運行在Tesla P40平臺上, 算子庫使用了8.0.5版本的CUDNN. 當顯存壓力變大, 空閑顯存匱乏時, 自動算子選擇只能選擇不需要工作空間但耗時最長的算子Implicit GEMM, 增加訓練耗費的時間. 所以MO-SOS算法要通過卸載和重計算為工作空間釋放顯存, 選擇更快的卷積算子. 選擇最快的算子Winograd Nonfused, 則需要通過卸載和重計算為工作空間釋放約2 GB的顯存. 相應地, 卸載和重計算也會引入更多的額外時間開銷. 若引入的額外時間開銷大于最快卷積算子節省的訓練時間, 反而會增加訓練時間. 另一種算子的選擇是工作空間少但耗時較長的卷積算子Winograd. Winograd算子只需要通過卸載和重計算為工作空間釋放約6 MB的顯存.

選擇最快或最慢的卷積算子都有可能增加訓練時間, 所以需要對卷積算子、 卸載和重計算進行統一建模, 尋找一個卷積算子和卸載/重計算的調度, 使得從v1計算節點到vn計算節點執行時間最短. 針對卷積算子的選擇問題, 本文從考慮卷積算子選擇問題的定義、 卸載和預取建模及工作空間的顯存限制三方面進行問題模型的設計.

2.2 考慮卷積算子選擇問題的定義

設一個訓練計算圖為G=(V,E), 其中V={v1,v2,…,vn}表示該計算圖有n個計算節點, E表示計算節點之間的依賴關系. 每個計算節點vi的輸出需要Mi顯存存儲輸出張量. 每個計算節點vi依賴于其他計算節點的輸出vj

/St+1,j≤∑aj/v=1Rt,j,v+Pss(t,j),j, t,j,(5)其中: ?ak表示k計算節點有多少種算子實現; O和P變量表示卸載和預取的決策; 式(2)表示v1到vn計算節點都要計算一次; 式(3)約束了對于不同的計算節點, 算子的選擇最多只能有一種. 如上所述, 每個計算節點都依賴于其他計算節點的輸出張量. 本文使用卸載和重計算釋放顯存空間, 在某個節點計算時, 它依賴的張量可能并不存在于顯存中, 它可能未重計算或者預取回顯存. 所以MO-SOS算法使用St,j變量表示在t階段時, j張量是否可以訪問. 式(4)表示在計算每個節點時它依賴的張量必須可以訪問, DEPS[k]表示k計算節點的依賴張量. 而式(5)表示如果在t階段重計算或者預取回了j張量, 則j張量在之后的計算中能被其他計算節點訪問.

2.3 卸載和預取建模

由于卸載、 預取與重計算可以并行, 因此MO-SOS算法可通過卸載和預取減少需要重計算的張量. 但為保證卸載與預取的正確性, MO-SOS算法需要對卸載和預取進行約束. 本文規定在每個節點計算的開端, 開始卸載或預取張量. Ot,j表示在t階段是否開始卸載j張量, Pt,j表示在t階段是否開始預取j張量, 則∑n/t=1Ot,j≤1, j,(6)

式(6)表示每個張量只能卸載一次, 因為張量被卸載到CPU內存后, 內存中的張量可作為備份多次預取. 式(7)表示在卸載時張量的數據必須是可以訪問的, 否則會傳輸臟數據. ss(t,i)表示在t階段完整地卸載或預取i張量, 需要在哪個階段開始卸載或預取; sf(t,i)表示在t階段開始卸載或預取i張量, 會在哪個階段完成. 這兩個函數可以根據PCIE總線帶寬、 張量大小和每個節點的計算時間計算得出. 但不同的卷積算子耗費不同的卷積時間. 為解決上述問題, 在計算ss和sf函數時, 可根據最快的卷積算子計算, 保證卸載和預取不會阻塞計算. 式(8)表示如果沒有預取就不會卸載張量, 且m是可設置的參數. 式(9)表示預取必須在張量卸載完成后開始. 此外, 本文限制了每個階段只能卸載或預取一個張量, 即Ot,j≤∑

2.4 考慮工作空間的顯存限制

為約束每個節點運行時顯存不會溢出, 需要定義一個變量表示每個節點計算時需要的顯存. 所以用Ut,k表示在t階段計算k節點時需要的顯存, Ut,0表示在t階段開始時需要的顯存, 它包括模型的輸入、 參數、 梯度以及作為檢查點的張量Ut,0=Minput+Mparam+Mgrad+∑n/j=1St,jMj+∑(x,y)∈OCC(t)MyPx,y.(14)此外, 預取也會占用顯存, 所以OCC(t)表示了哪些張量的預取在t階段占用顯存. 然后遞歸地計算t階段每個節點計算時需要的顯存Ut,k:Ut,k+1=Ut,k-mem_free(k)+∑ak+1/v=1Rt,k+1,vMk+1+∑

MO-SOS算法希望通過卸載和重計算騰出更多的顯存空間, 以選擇更快的卷積算子, 進而減少訓練時間. 式(2)~(5)保證了重計算的正確性, 式(6)~(13)保證了卸載和預取的正確性, 且式(14)~(18)約束了顯存占用. 該問題是難以解決的NP-難問題, 求解空間巨大, 無法通過高復雜度的遍歷算法求解, 因此需要有針對性地進行模型設計.

2.5 算法設計

本文問題可以使用求解器根據輸入的計算圖和GPU的顯存限制求解一個可行的方案. 目標公式(1)中的R,S,O,P, Free都是0~1變量, 所以是一個整數規劃問題. MO-SOS算法使用現有的求解器去搜索一個可行的結果, 例如Gurobi,Cplex,Scip等. Gurobi是大規模數學規劃優化器, 在多個整數規劃問題中有更快的優化速度, 適合于本文的最小化問題.

根據Gurobi求解器給出的結果, MO-SOS算法會產生一個顯存管理調度L={l1,l2,…,lk}, 其中li是顯存管理的操作, 如計算張量、 釋放張量、 卸載張量和預取張量. MO-SOS算法如下.

MO-SOS算法遍歷所有的R,O,P, Free變量去制定顯存管理調度. 如果Ri,j,v為1, 則在i階段, MO-SOS算法要計算j張量, 添加顯存管理操作計算張量j到L中, 使用v算子, 即代碼10)~12), Algoj表示j節點的算子數量. 如果Oi,k或Pi,k為1, 則在i階段, MO-SOS算法要卸載或預取k張量, 添加顯存管理操作卸載或預取k張量到L中, 即代碼4)~6). 如果Freei,j,t為1, 則在i階段, 計算j張量后, MO-SOS算法釋放t張量, 添加顯存管理操作釋放t張量到L中, 即代碼15)~17).

3 實 驗

3.1 實驗環境

本文選取兩種卷積神經網絡Vgg19和Unet, 使用C++,CUDA和CUDNN實現Vgg19和Unet的訓練, CUDA的版本是11.1, CUDNN的版本是8.0.5. Vgg19在訓練時使用數據集Imagenet, 圖片大小為227×227, Unet在訓練時使用數據集Data Science Bowl, 圖片大小為256×256. 它們訓練的批次大小分別為144和120. 實驗環境采用Ubuntu18.04操作系統, CPU為Intel(R) Xeon(R) CPU E5-2680 v4, 內存為125 GB. 實驗使用的GPU為英偉達的Tesla P40, 顯存為24 GB, 而PCIE總線的卸載和預取速度分別至少達12 GB/s和11 GB/s. 求解整數規劃問題的求解器使用Gurobi, 版本為9.5.2.

本文將智能算子選擇算法MO-SOS和自動算子選擇算法Auto進行比較. 為能在顯存壓力較大的情況下進行實驗, 給自動算子選擇算法配置兩種最新的顯存優化方法: Checkmate(只有重計算)和STR(卸載和重計算相結合). 這兩種顯存優化算法與自動算子選擇結合后分別為Checkmate-Auto和STR-Auto算法. 本文設置了不同的顯存比例, 逐漸減少能使用的顯存, 增加訓練的顯存壓力, 測試了Checkmate-Auto,STR-Auto和MO-SOS算法的訓練時間. 由于訓練是多個訓練步組成的, 每個訓練步執行時間浮動較小, 所以本文對每個神經網絡測試了20個訓練步, 取平均值作為每個神經網絡一個訓練步的執行時間. 本文測試了在不同的顯存壓力下, 智能算子選擇算法和自動算子選擇算法訓練步的執行時間, 以考察智能算子選擇算法能否縮短訓練時間.

[HT5H〗3.2 實驗結果分析

圖4為不同算法對Vgg19和Unet一個訓練步的執行時間. 由圖4可見, 智能算子選擇算法在多種顯存壓力下都優于自動算子選擇算法. 本文的智能算子選擇算法MO-SOS平均比只有重計算的Checkmate-Auto算法減少了13.53%的訓練時間, 比卸載和重計算結合的STR-Auto算法減少了4.36%的訓練時間. 在顯存比例為0.8和0.7, 顯存壓力較小時, MO-SOS和STR-Auto算法的訓練時間基本相當, 而結合了卸載的MO-SOS和STR-Auto算法仍比Checkmate-Auto算法減少約11.2%的訓練時間, 這主要是前者使用卸載減少了需要重計算的張量.

隨著顯存壓力變大, MO-SOS算法的訓練時間逐漸比STR-Auto算法減少. 這是因為顯存壓力變大, STR-Auto算法沒有為更快的卷積算子釋放更多的顯存, 選擇了更慢的卷積算子, 增加了訓練時間. 但對于Unet網絡, 在顯存比例為0.4時, MO-SOS與STR-Auto算法的訓練時間差距縮小. 不同于Vgg19, Unet是非線性網絡, 前向傳播的輸出張量不僅在后向傳播計算梯度時多次使用, 并且在前向傳播中也會多次使用. 所以Unet在訓練時需要長時間保存多個張量, 導致更大的顯存壓力, 難以選擇更快的卷積算子.

MO-SOS和STR-Auto算法訓練時間比Checkmate-Auto算法少, 這是因為前者通過卸載減少了重計算的張量. 如圖5所示, 在Vgg19訓練時, MO-SOS和STR-Auto算法在顯存比例為0.7時只有卸載, 而Checkmate-Auto算法只有重計算. MO-SOS和STR-Auto算法通過卸載騰出了足夠的顯存, 所以它們的卷積計算和其他計算的耗時都明顯少于Checkmate-Auto算法.

MO-SOS算法訓練時間比STR-Auto算法少, 是因為MO-SOS算法卸載和重計算更多的張量以增加空閑顯存, 選擇更快的卷積算子減少訓練時間. 由圖5可見, 當顯存比例為0.7時, MO-SOS算法比STR-Auto算法卸載的張量更多. 所以MO-SOS算法的卷積計算耗時少于STR-Auto算法. 隨著顯存壓力增大, MO-SOS和STR-Auto算法逐漸增加了重計算的張量以釋放顯存. 當顯存比例為0.5時, 為給卷積計算的工作空間騰出更多的顯存, MO-SOS算法卸載和重計算的張量多于STR-Auto算法. 所以MO-SOS算法的其他計算耗時多于STR-Auto算法, 但MO-SOS算法的卷積計算耗時明顯少于STR-Auto算法, 總體訓練時間也少于STR-Auto算法.

實驗結果表明, 可以通過卸載和重計算為卷積計算增加空閑顯存, 選擇更快的卷積算子減少訓練時間. 在顯存壓力較小時, 減少的訓練時間并不明顯. 但隨著顯存壓力增大, 自動算子選擇算法的空閑顯存逐漸減少, 選擇了更慢的卷積算子. 而智能算子選擇算法通過卸載和重計算釋放了更多的顯存, 選擇了更快的卷積算子, 進而縮短了訓練時間.

綜上所述, 針對自動算子選擇算法在空閑顯存匱乏時會選擇工作空間需求少但耗時長的卷積算子, 降低了訓練的性能、 增加了訓練時間的問題, 本文提出了一種智能算子選擇算法, 通過卸載和重計算增加空閑顯存. 本文對卸載、 重計算和卷積算子選擇進行了統一的整數規劃建模, 使用現有的求解器進行求解, 并對多種網絡在各種顯存壓力下進行實驗. 實驗結果表明, 智能算子選擇算法在多種顯存壓力下優于自動算子選擇算法.

參考文獻

[1]ABADI M, BARHAM P, CHEN J, et al. Tensorflow: A System for Large-Scale Machine Learning [C]//Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation. New York: ACM, 2016: 265-283.

[2]RHU M, GIMELSHEIN N, CLEMONS J, et al. vDNN: Virtualized Deep Neural Networks for Scalable, Memory-Efficient Neural Network Design [C]//2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). Piscataway, NJ: IEEE, 2016: 1-13.

[3]SHRIRAM S B, GARG A, KULKARNI P. Dynamic Memory Management for GPU-Based Training of Deep Neural Networks [C]//2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS). Piscataway, NJ: IEEE, 2019: 200-209.

[4]HUANG C C, JIN G, LI J. Swapadvisor: Pushing Deep Learning Beyond the GPU Memory Limit via Smart Swapping [C]//Proceedings of the Twenty-Fifth International Conference on Architectural Support for ProgrammingLanguages and Operating Systems. New York: ACM, 2020: 1341-1355.

[5]BAE J, LEE J, JIN Y, et al. FlashNeuron: SSD-Enabled Large-Batch Training of Very Deep Neural Networks [C]//Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation. New York: ACM, 2021: 387-401.

[6]CHEN T Q, XU B, ZHANG C Y, et al. Training Deep Nets with Sublinear Memory Cost [EB/OL]. (2016-04-21)[2023-02-01]. https://arxiv.org/abs/1604.06174.

[7]JAIN P, JAIN A, NRUSIMHA A, et al. Checkmate: Breaking the Memory Wall with Optimal Tensor Rematerialization [EB/OL]. (2019-10-07)[2023-02-01]. https://arxiv.org/abs/1910.02653.

[8]MATHIEU M, HENAFF M, LeCUN Y. Fast Training of Convolutional Networks through Ffts [EB/OL]. (2013-12-20)[2023-02-15]. https://arxiv.org/abs/1312.5851.

[9]LAVIN A, GRAY S. Fast Algorithms for Convolutional Neural Networks [C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2016: 4013-4021.

[10]SIMONYAN K, ZISSERMAN A. Very Deep Convolutional Networks for Large-Scale Image Recognition [EB/OL]. (2014-09-04)[2023-01-20]. https://arxiv.org/abs/1409.1556.

[11]WEN L J, ZONG Z, LIN L, et al. A Swap Dominated Tensor Re-generation Strategy for Training Deep Learning Models [C]//2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS). Piscataway, NJ: IEEE, 2022: 996-1006.

[12]WANG L N, YE J M, ZHAO Y Y, et al. Superneurons: Dynamic GPU Memory Management for Training Deep Neural Networks [C]//Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. New York: ACM, 2018: 41-53.

[13]PENG X, SHI X H, DAI H L, et al. Capuchin: Tensor-Based GPU Memory Management for Deep Learning [C]//Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2020: 891-905.

(責任編輯:? 韓 嘯)

收稿日期: 2023-04-06.

第一作者簡介: 魏曉輝(1972—), 男, 漢族, 博士, 教授, 博士生導師, 從事分布式系統、 網格系統與網絡安全的研究, E-mail: weixh@jlu.edu.cn.

通信作者簡介: 李洪亮(1983—), 男, 漢族, 博士, 副教授, 博士生導師, 從事分布式系統與虛擬化的研究, E-mail: lihongliang@jlu.edu.cn.

基金項目: 吉林省自然科學基金面上項目(批準號: 20230101062JC).

主站蜘蛛池模板: 国产成人精品免费av| 尤物视频一区| 国产在线无码一区二区三区| 国产av一码二码三码无码| 国产福利大秀91| 国产一级妓女av网站| 日韩精品专区免费无码aⅴ| 日韩在线影院| 视频二区国产精品职场同事| 国产成人亚洲无吗淙合青草| 免费无遮挡AV| 久久黄色毛片| 97视频在线精品国自产拍| 超碰91免费人妻| 国产日韩欧美一区二区三区在线 | 色综合色国产热无码一| 欧美日本在线一区二区三区| 99国产在线视频| 亚洲成综合人影院在院播放| 亚洲日韩精品伊甸| 97视频精品全国免费观看| 国产视频自拍一区| 亚洲综合狠狠| 色婷婷亚洲十月十月色天| 国产成年女人特黄特色毛片免| 伊人久久大香线蕉影院| 国产精品久久久久久搜索| 国产在线精彩视频论坛| 中文一区二区视频| 波多野结衣无码视频在线观看| 狠狠色婷婷丁香综合久久韩国| 一个色综合久久| 国产精品专区第1页| 国产亚洲欧美日韩在线观看一区二区| 久草性视频| 国产二级毛片| 欧美视频免费一区二区三区| 亚洲 欧美 日韩综合一区| 最新无码专区超级碰碰碰| 久久鸭综合久久国产| 国产玖玖视频| 午夜久久影院| 中文字幕va| 国产小视频免费| 五月激激激综合网色播免费| 久热re国产手机在线观看| 无码aⅴ精品一区二区三区| 在线免费观看a视频| 色综合天天综合中文网| 精品国产中文一级毛片在线看| 日本精品视频| 九色91在线视频| 激情网址在线观看| 五月婷婷精品| 久久久久亚洲Av片无码观看| 夜夜操国产| 免费高清自慰一区二区三区| 久久青草免费91线频观看不卡| 五月丁香伊人啪啪手机免费观看| 国产精品成人久久| 国产精品视频猛进猛出| 中文字幕人妻av一区二区| 亚洲中文字幕日产无码2021 | 国产 在线视频无码| 国内精品一区二区在线观看| 精品人妻一区二区三区蜜桃AⅤ| 国产极品美女在线播放| 九色综合伊人久久富二代| 亚洲成人福利网站| 99国产精品国产| 国产美女在线观看| 无码AV动漫| 一级看片免费视频| 国产综合亚洲欧洲区精品无码| 婷婷色中文| 免费无码AV片在线观看国产| a级毛片一区二区免费视频| 亚洲成网777777国产精品| 无码一区中文字幕| 亚洲性一区| 国内视频精品| 99人妻碰碰碰久久久久禁片|