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

面向深度學習圖像分類的GPU 并行方法研究

2023-01-27 08:28:02韓彥嶺沈思揚徐利軍王靜張云周汝雁
計算機工程 2023年1期
關鍵詞:深度模型

韓彥嶺,沈思揚,徐利軍,王靜,張云,周汝雁

(上海海洋大學 信息學院,上海 201306)

0 概述

深度學習在圖像分析[1]、目標檢測[2-3]、語義分割[4]、自動駕駛[5-6]等諸多領域具有廣泛應用,其主要通過增加網絡的深度使計算機提取到更多的數據特征,目前深度學習網絡普遍達到幾百甚至上千層。龐大的數據量及復雜的網絡結構對訓練效率帶來很大挑戰。為了縮短訓練時間,基于各種計算平臺設計的并行訓練方法逐漸成為研究熱點。目前,對深度神經網絡的并行化主要有數據并行和模型并行[7]兩種方法。

數據并行是最簡單的并行策略[8-9],模型副本在每臺參與并行的設備上使用獨立的數據子集,目前主流框架如TensorFlow[10]、PyTorch 都使用直觀的方式支持數據并行[11]。但是隨著并行設備數量的增加,批大?。˙atch Size)通常也會增加,這使得數據并行可擴展性變差,因為對于任何給定的深度學習網絡,當超過相應Batch Size 臨界值后達到相同收斂精度所需要的迭代次數大幅提高,導致訓練過程的統計效率降低[12]。此外,由于使用的并行設備數量增加而帶來的通信開銷增長,進一步限制了整體訓練速度。

模型并行是一種與數據并行類似的并行方法,將模型圖分割部署在多個設備上,同時并行處理同一個mini Batch[13],通常用于拆分大型模型(單個GPU 無法承載一個模型),因此也可通過此方法加速訓練。但目前來看,通過改進模型并行算法所獲得的加速效果非常有限[14-15]。因此,僅使用該方法也會帶來擴展性較差的問題。另一方面,為了得到最大化加速,需反復調整模型切分方式以達到正反向傳播過程中的通信效益最高[16-17]。在多數情況下,模型并行帶來的通信開銷和同步開銷超過數據并行,因此加速比也低于數據并行。

谷歌開發的DistBelief 采用數據并行及模型并行的方法訓練大規模模型,COATES[18]等使用GPU集群構建了模型并行訓練方法,LI[19]等則提出了改進的參數服務器異步交互數據并行方案。但上述對于深度學習并行化的研究多基于大規模商用GPU平臺,與具體圖像分類中小規模GPU 實驗環境存在較大差別。

本文通過研究圖像分類場景中的并行問題,提出一種混合并行優化算法。該算法將數據并行和模型并行相結合提高并行性能,并提出一種改進的Ring All Reduce 算法[20],通過數據通信時的并行策略優化提高梯度交換效率。針對數據并行隨設備數量增至一定規模后出現加速效果變差的問題,提出融合數據并行和模型并行的混合并行方法提高訓練速度。在此基礎上,利用feature map 數據量遠小于權重參數數據量的特點,將全連接層及Softmax 運算進行模型并行,避免數據并行在通信過程中損耗引起的性能下降。最終在Cifar10 及mini ImageNet 兩個數據集上分別對比了不同節點下數據并行與混合并行的時間、精度表現。

1 面向深度學習圖像分類并行化的數據通信算法

多GPU 之間的數據通信是各深度學習模型實現并行化的基礎,目前常用的傳輸方法包括參數服務器(Parameter Server,PS)和Ring All Reduce。集群包括用于運算及訓練網絡的工作節點worker 和整合所有worker 傳回的梯度后更新參數的中心節點PS,該算法的缺點在于節點間通信時間和GPU 個數成正比。Ring All Reduce 在摒棄中心節點的基礎上完成Map Reduce 操作,提高了傳輸效率,但時間復雜度仍較高。本文通過分節點間隔配對原則實現數據傳輸流程的優化,在不影響算法精度的基礎上進行改進,以降低時間復雜度,提高傳統深度學習各在個網絡并行后的數據傳輸效率,達到加速優化的效果。

1.1 Ring All Reduce 算法

PS 的最大問題在于耗時與節點數量n線性相關,Ring All Reduce 算法在不使用中心節點的前提下完成Map Reduce 操作,分為Reduce Scatter 及All Gather 兩個階段:整個計算單元構成一個環形,僅與左右節點通信,數據按照節點數量切分為n,n為節點數。在Reduce Scatter 階段,各節點每次傳輸,并將接收到的數據歸約操作,在n-1 次后,各節點得到一份完整的數據;在All Gather 階段,重復n-1 次,各節點將存有完整歸約后的n份數據。在Ring All Reduce 算法中,各分節點在同一時刻既是發送節點也是接收節點,因此沒有空閑機器的存在,且通信成本恒定,相較于參數服務器算法并不會隨著分節點數量增加而線性增加,但該算法時間復雜度為O(n),仍具有改進空間。

Reduce Scatter 及All Gather 流程如圖1 和圖2所示。

圖2 All Gather 流程Fig.2 Procedure of All Gather

1.2 優化時間復雜度的Ring All Reduce 算法

Ring All Reduce算法在Reduce Scatter及All Gather階段均需要n-1 步完成,使其時間復雜度為O(n),在Reduce Scatter 及All Gather 階段通過分節點間隔配對原則實現數據傳輸流程的優化,在不影響算法精度的基礎上使其時間復雜度降低為O(lbn)。

在算法實現中,規定總節點數Na為2 的指數冪,具體算法步驟如下:

算法1優化時間復雜度Ring All Reduce 算法

圖3 Ring All Reduce 改進算法的Reduce Scatter 操作流程Fig.3 Reduce Scatter operation Procedure of Ring All Reduce improved algorithm

圖4 Ring All Reduce 改進算法的All Gather 操作流程Fig.4 All Gather operation procedure of Ring All Reduce improved algorithm

2 面向深度學習圖像分類的GPU 混合并行算法

數據并行是目前應用于各個深度學習模型最為廣泛的并行策略,但在實際訓練過程中,數據并行每個訓練步中批大小規模及設備數量增長到一定程度時,數據并行的加速效果出現下降,影響整體訓練時間。針對大型分類網絡中feature map 數據量遠小于參數數據量這一特點,本文提出針對圖像分類任務的面向各深度學習模型混合并行優化方法,結合數據并行與模型并行思想,在權重參數較小的主干網絡階段采用數據并行,將傳統數據并行節點上完整模型的全連接層采用模型并行,減少參數傳輸量,提高訓練速度。另外,在數據并行中,多節點間的數據交換采用1.2 節提出的Ring All Reduce 改進算法,將兩者結合的優勢在于:一方面提升并行后多設備間傳輸效率,緩解帶寬損耗問題;另一方面進一步加快訓練速度,解決數據并行加速延緩的問題。

2.1 數據并行與模型并行

數據并行和模型并行均包含張量切分、張量傳輸(復制)及Reduce 等操作。張量切分表示物理上的張量是邏輯張量按照某一維度切分后得到的,axis代表切分的維度。張量傳輸(復制)是指物理上的張量和邏輯上的張量完全相同。Reduce 是一種邏輯張量與物理上多個張量映射關系的操作。如圖5 所示,分別展示了張量切分的“行切分(axis=0)”、“列切分(axis=1)”以及張量傳輸與Reduce 映射操作。

圖5 深度學習中的并行化張量運算Fig.5 Parallelization of tensor operation in deep learning

從張量角度來看數據并行和模型并行,假定在模型訓練中,存在一個輸入矩陣Ι,通過矩陣Ι與矩陣W做矩陣乘法,得到輸出矩陣Ο:

其中:Ι的大小為(N,C1);W的大小為(C1,C2);Ο的大小為(N,C2)。

結合深度學習模型結構,上述矩陣代表的含義如下:

1)矩陣Ι作為輸入矩陣,每一行都代表數據集的一個樣本,每行中的各列代表樣本的特征。

2)矩陣W代表了模型參數。

3)矩陣Ο是預測結果或者數據集標簽,如果需要執行預測任務,那么就是矩陣Ι、W求解矩陣Ο,得到分類結果;如果需執行訓練任務,那么就是矩陣Ι、Ο求解矩陣W。

如果以上矩陣Ι的行N很大,則代表數據集龐大;如果矩陣W的列C2很大,則說明模型復雜程度高;當這兩者量級都達到一定程度時,目前傳統的單機單卡訓練模式已無法承載,需要考慮并行的方式訓練。因此,可以選擇本文的數據并行和模型并行,矩陣相乘關系如圖6 所示。

圖6 深度學習中張量運算示意圖Fig.6 Schematic diagram of tensor operation in deep learning

在圖6 中,左邊第一個矩陣Ι代表輸入樣本張量,每一行是一個樣本;左邊第二個矩陣W代表模型張量。下文分別說明數據并行與模型并行所對應的不同“切分”方式。

在數據并行中,將樣本的數據張量進行切分,如圖7 所示。切分后的數據被送至各個訓練分節點,與完整的模型進行運算,最后將所有節點的梯度通過Ring All Reduce 改進算法進行交換。

圖7 數據并行張量運算示意圖Fig.7 Schematic diagram of data parallel tensor operation

模型并行則是將模型張量進行劃分,完整的數據被送至各個訓練分節點,與切分后的模型進行運算,最后將多個節點的feature map 合并,如圖8所示。

圖8 模型并行張量運算示意圖Fig.8 Schematic diagram of model parallel tensor operation

2.2 混合并行方法結構

本文并行結構是將數據并行和模型并行的思想相結合,并利用1.2 節改進的Ring All Reduce 算法實現各節點之間的并行后數據通信,實現一種更加優化的GPU 并行算法。從張量的角度來描述,存在一個矩陣運算Y=MatMul(A,B),A、B、Y都是張量,為簡化起見,表示為Y=AB,那么存在以下2 種策略:

1)Y行切分(axis=0),A行切分(axis=0),B直接傳輸復制。

2)Y列切分(axis=1),A直接傳輸復制,B列切分(axis=1)。

假設邏輯上的Y運算為:

A(128,40)×B(40,50)→Y(128,50)

兩種策略方式如圖9 所示。

圖9 兩種并行化訓練張量的分布策略Fig.9 Distribution strategies of two parallel training tensor

從圖9 可以看出,當張量A是樣本數據,張量B是模型時,圖9(a)為數據并行,圖9(b)為模型并行。圖9 中采用了兩個節點進行并行訓練,最后組合各個節點上的張量通過Ring All Reduce 改進算法得到完整的輸出。如果通過兩個相鄰的張量矩陣乘法計算,前一個使用策略1,后一個使用策略2,完整的并行結構如圖10 所示。

圖10 混合并行結構Fig.10 Structure of hybrid parallel

從圖10 可以看出,MatMul0得到的Y0被MatMul1用于進一步運算,但兩者對同一個張量有所區別,MatMul0認為Y0是行切分(axis=0),由于模型并行需要部分的模型與完整的數據,即MatMul1需要一個完整的Y0輸入,這意味著前一層的輸出并不能作為后一層的直接輸入,為了解決這個問題,需要在Ring All Reduce 改進算法做數據交換時進行必要的數據裁剪、拼接、搬運和求和等操作,使得所有的策略都可以在并行環境下高效地得到自己想要的數據進行下一步的運算。

2.3 混合并行方法實現

在深度學習分類任務中,針對模型不同部分采用不同的并行策略,從而提升效率。

在深度學習的圖像分類問題中,其主干網絡所包含的權重小于全連接層,同步開銷小,所以對主干網絡進行數據并行處理;而全連接層通常權重較大,使得多節點間梯度傳輸開銷過高。為避免數據并行在通信過程中損耗引起訓練性能下降,將全連接層的模型按列劃分,使用多個節點存儲分片,針對全連接層運算進行模型并行。

假設存在Gk,k∈[0,Nb-1],Nb為2 的指數冪個節點參與并行訓練,整個分類網絡由主干網絡(ResNet50)、全連接層(Fully Connected Layer,FC)和Softmax 組成,其中k∈[0,Nb-3]節點負責主干網絡數據并行,負責模型并行,下文分別闡述具體方法。

2.3.1 主干網絡數據并行

主干網絡數據并行過程如下:

2.3.2 全連接層模型并行

單節點的全連接層正向傳播參數包括主干網絡輸出、網絡權重、偏差、偏差權重,全連接層輸入可描述為網絡輸出與網絡權重的乘積加上偏差與偏差權重的乘積。本文模型并行對全連接層按照主干網絡輸出緯度進行分割,使用兩個節點,考慮到每個節點的均衡性,采用等量的方式切分,具體模型的并行正向傳播過程描述如下:

輸入主干網絡輸出網絡權重

傳統全連接層反向傳播梯度與特征相乘得權重梯度,偏差與梯度相乘得偏差梯度,梯度與權重相乘得輸入梯度。同正向傳播過程,模型并行先將網絡參數切分后進行反向傳播,具體流程如下:

3 實驗與結果分析

3.1 實驗數據描述及實驗設置

實驗數據采用在圖像分類領域常用的兩個公共數據集,分別是Cifar10 與mini ImageNet。Cifar10 是一個用于識別普適物體的小型數據集,共包含飛機、汽車、鳥類、貓、鹿、狗、蛙類、馬、船和卡車10 個類別的RGB 彩色圖片。圖片的尺寸為32×32 像素,數據集中一共有50 000 張訓練圖像和10 000 張測試圖像。ImageNet 共包含1 500 萬幅圖像,分為2 萬多個類 別。本 文mini ImageNet為從ImageNet[21]中選取的前100 類,總共包含129 395 張訓練圖片及50 000 張驗證圖像組成的數據集。

本文所有實驗都采用2080Ti,分別在單機和2GPUs、4GPUs、8GPUs 環境下進行。每組實驗結果在隨機選擇訓練樣本的前提下均重復兩次取平均值。

3.2 Ring All Reduce 算法及其改進算法對比

加速比是作為衡量并行計算性能的常用指標,其主要意義在于:對于相同業務流程,在單節點消耗的時間T1與并行計算后多節點消耗時間Tn的比值,比值的變化對應性能的好壞,在理想狀態下,當節點增長與加速比成正比時為最優情況。

使用Cifar10 數據集在擁有兩個節點的主機上進行100 次單機多卡數據并行訓練,在Vgg16 及Resnet50 這兩個網絡下,比較不同Batch Size 時Ring All Reduce 算法和改進后算法較參數服務器算法的加速比,以此衡量算法在傳輸性能上的表現。

圖11 為使用兩種算法進行數據并行時的加速比對比,可以看到,無論Vgg16 還是Resnet50,隨著Batch Size 的增大,兩種算法的加速比存在一定程度的下降,這主要是由于數據量的增大使得傳輸耗時增加導致。Vgg16 網絡在Batch Size 為4 時兩種算法的差距最大,同樣當Batch Size 為16 時,兩種算法在Resnet50 也達到了最高25%左右的性能差距,因此可以得出,對于不同網絡,均存在一個最優Batch Size 使得改進算法性能達到最優??傮w而言,改進算法均能獲得較Ring All Reduce 算法更好的性能,且加速比始終大于1。

圖11 Ring All Reduce 及其改進算法性能對比Fig.11 Performance comparison of Ring All Reduce and its improved algorithms

3.3 Cifar10 數據并行與改進并行算法對比

首先驗證數據并行在不同節點數量下的性能表現,使用Cifar10 數據集,通過訓練收斂性、時間等指標觀察其性能。

實驗在Resnet50 網絡上進行圖片分類,采用本文Ring All Reduce 改進算法實現數據傳輸。訓練與測試Batch Size 均設置為64,訓練集進行6 000 次,測試集進行1 000 次,初始學習率設為0.001,分別在3 000 及5 000 次后減小10 倍。

分別在節點數為2、4、8 的集群上進行數據并行訓練,實驗結果如表1 和圖12 所示。

表1 多節點Cifar10 數據并行訓練不同迭代次數損失率對比Table 1 Comparison of loss rate of different iterations in parallel training of multi node Cifar10 data

圖12 Cifar10 多節點數據并行訓練及測試損失率曲線Fig.12 Cure of parallel training and test loss rate of Cifar10 multi node data

表1 所示為在不同節點數上進行數據并行訓練損失率隨迭代次數的變化情況,對比8 個節點與2 個節點數據可以發現,并行節點數的增加會導致一定程度的損失率增加,在迭代次數為1 000 時,兩者差距達到11%,但最終差距不大,6 000 次迭代后差距僅為2%,這說明數據并行對于訓練最終精度影響較小。

從圖12 可以得出以下3 點:

1)數據并行后訓練及測試損失率會隨著并行節點數的增多而有所增長。

2)參照表1 中訓練損失率及圖12(a)曲線,8 個節點數據并行在開始訓練時收斂趨勢較2 個節點更為緩慢,存在一定差距,迭代3 000 次后差距減小且保持在3%范圍內,最終收斂點不超過2%,這主要是由于節點增加所帶來的數據交換消耗降低了一定效率。

3)從圖12(b)可以看出,在數據并行測試集測試過程中,同樣迭代次數下,4 節點相較8 節點的曲線雖也然同樣存在收斂放緩現象,但最終收斂點卻更優,這說明節點數量與效率存在非線性關系。

將訓練后權重在單卡上測試,并以此時間作為參照,繪制節點數與測試集上測試時間關系,如圖13所示。

圖13 Cifar10 多節點數據并行節點數與測試時間關系Fig.13 Relationship between the number of parallel nodes and test time of Cifar10 multi node data

從圖13 可以看出,增加并行節點數量可以加速訓練,這也體現了數據并行后的優勢[22],但也可以看到,隨著節點數量的增加,曲線斜率變大,加速效果變緩,當節點數量不斷增加時使得數據交換次數更多,耗時更長[23-25],最終導致不能達到理想狀態下的線性加速。

從以上實驗結果可知,多節點的數據并行訓練對于最終分類精度影響較小,但加速效果受到一定限制,當使用8 節點數據并行訓練時速度下降最為明顯,因此在保證其余實驗環境一致的前提下,同樣使用8 節點并行可以最大化反映提升效果,在測試集上經1 000 次迭代測試后損失率曲線如圖14(a)所示,時間對比如圖14(b)所示。由圖14(a)可以看出,本文提出的并行方法相較于數據并行策略最終收斂效果基本相同,可見該方法對于網絡精度影響較小。從圖14(b)可知,相較于數據并行,加速效果有小幅改善,并將測試時間從9 min 縮短至7.8 min,這主要是由于模型并行通信內容為feature map,數據并行通信內容為參數,本文的策略是將全連接層使用模型并行,其余部分使用數據并行,這對于類別較少的Cifar10,全連接層總參數量與feature map 差距較小,因此提升有限,當網絡feature map 遠小于參數量時,在通信上性能更優。

圖14 Cifar10 數據并行與改進并行測試對比Fig.14 Comparison of Cifar10 data parallel and improve parallel test

3.4 mini ImageNet 數據并行與改進方法對比

本節采用數據集mini ImageNet 進一步驗證提出的并行策略性能。使用Resnet50 作為訓練網絡,實驗環境為單機多卡GPU 集群,最大程度地排除帶寬對于數據傳輸的影響,采用本文提出的Ring All Reduce 改進算法作為集群通信方式,在節點為1、2、4、8 上對比數據并行與改進后并行方法的訓練時間,驗證該方法對于進一步提升加速的有效性。

實驗Batch Size 設置為64,迭代90 次后實驗結果如表2 所示,其中Acc 代表訓練的準確率,T表示訓練完成時間。

表2 mini ImageNet 數據集多節點數據并行與本文并行方法對比Table 2 Comparison of multi node data parallel and Proposed parallel method in mini ImageNet dataset

分析表2 可知,在mini ImageNet 數據集上,無論采用數據并行還是本文并行方法,隨著節點數量的增加,訓練時間逐漸縮短,但都會帶來一定程度的準確率下降,對比單卡訓練,存在2%左右的下降,這與在Cifar10 數據集上得到的結論相同,結合表2 和圖15(a),本文提出的方法在加速效果上相比數據并行方法有所提升。對比圖15(a)可以看出,本文方法在多節點并行下優勢更為明顯。圖15(b)展示了在同樣節點數情況下Cifar10 與mini ImageNet 數據集采用該方法并行訓練的加速比情況,在使用2 個節點并行時,Cifar10 數據集進行訓練所得到的加速比稍好于同樣節點數的mini ImageNet 數據集,隨著節點數的增長,加速比不斷提升,但mini ImageNet 數據集所得到的加速比幅度更大,兩者差距也越明顯,這主要是因為此時feature map 量遠小于大量數據的參數量,使得加入模型并行后在通信量上反而相對更少,速度更快,由此可進一步說明,當進行海量數據分類時,本文提出的方法能有效提高效率。

圖15 數據并行與本文并行方法對比Fig.15 Comparison between data parallelism and the parallel method in this paper

4 結束語

針對圖像分類場景大規模數據及模型訓練效率低等問題,本文通過分節點間隔配對原則優化數據傳輸流程,提出一種改進時間復雜度的Ring All Reduce 數據通信算法,用于提升數據并行多設備間傳輸效率,并提出混合并行算法,將主干網絡進行數據并行處理,全連接層采用模型并行處理,解決數據并行模式難以支撐大規模網絡參數及加速延緩的問題。實驗結果表明,本文提出的混合并行算法相比并行方法,最終測試與訓練精度差異不大,但在加速效果上衰減幅度更小,效果更好,相比Cifar10 等類別較少的數據集,在mini ImageNet 上具有較大的加速優勢,更適用于海量圖像分類數據并行訓練。后續將針對推薦網絡等結構復雜模型進行優化及應用,以進一步提高傳輸效率。

猜你喜歡
深度模型
一半模型
深度理解一元一次方程
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
深度觀察
深度觀察
深度觀察
深度觀察
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 99这里精品| 在线无码av一区二区三区| 在线网站18禁| 亚洲三级电影在线播放| 91午夜福利在线观看| 免费中文字幕一级毛片| 亚洲高清中文字幕在线看不卡| 欧美日韩国产精品综合| 欧美综合中文字幕久久| 国产av剧情无码精品色午夜| 国产精品短篇二区| 国产亚洲精品97AA片在线播放| 久久中文电影| 亚洲国产AV无码综合原创| 丁香亚洲综合五月天婷婷| 国产黄色爱视频| 香蕉伊思人视频| 试看120秒男女啪啪免费| 国产91小视频在线观看| 大学生久久香蕉国产线观看 | 国产精品网曝门免费视频| 乱人伦中文视频在线观看免费| 国产精品午夜电影| 国产精品免费入口视频| 在线视频97| 欧美精品三级在线| 91国内外精品自在线播放| 精品亚洲麻豆1区2区3区| 精品国产www| 五月婷婷综合在线视频| 精品国产www| 99在线观看国产| 婷婷色一区二区三区| 老司机精品99在线播放| 无码日韩人妻精品久久蜜桃| 自拍中文字幕| 国产综合色在线视频播放线视 | 亚洲制服丝袜第一页| 2020国产免费久久精品99| 欧美福利在线| 色婷婷在线影院| 亚洲美女久久| 亚洲精品无码专区在线观看 | 国产高清不卡视频| 亚洲人成在线免费观看| 欧美久久网| 亚洲国产欧美目韩成人综合| 伊伊人成亚洲综合人网7777| 久久女人网| 亚洲精品国产首次亮相| 国产久草视频| 国产第一页第二页| 欧美一区二区自偷自拍视频| 中国丰满人妻无码束缚啪啪| 国产喷水视频| 色噜噜狠狠色综合网图区| 色综合狠狠操| 四虎影视国产精品| 久久五月天综合| 99在线国产| 亚洲第一成年人网站| 精品伊人久久久大香线蕉欧美| 国产人成午夜免费看| 日韩国产黄色网站| 9999在线视频| 国产精品毛片一区| 九九热免费在线视频| 免费在线国产一区二区三区精品| 亚洲精品成人片在线播放| 狠狠干综合| 国产精品播放| 欧美自慰一级看片免费| 国产精品亚洲va在线观看| 欧美成人亚洲综合精品欧美激情| 国产一级α片| 91精品国产自产在线老师啪l| 最近最新中文字幕在线第一页| 国产无人区一区二区三区| 中文字幕在线看| 久久精品亚洲热综合一区二区| 在线观看欧美精品二区| 亚洲品质国产精品无码|