国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向模型并行訓練的模型拆分策略自動生成方法*

2020-10-10 02:39:40郭振華趙雅倩
計算機工程與科學 2020年9期
關鍵詞:加速器算子性能

王 麗,郭振華,曹 芳,高 開,趙雅倩,趙 坤

(1.浪潮電子信息產(chǎn)業(yè)股份有限公司高效能服務器與存儲技術國家重點實驗室,山東 濟南 250000; 2.廣東浪潮大數(shù)據(jù)研究有限公司,廣東 廣州 510000)

1 引言

近年來,隨著人工智能的興起,深度神經(jīng)網(wǎng)絡DNN(Deep Neural Network)在圖像視頻分類、語音識別和語言翻譯等領域得到廣泛應用。隨著訓練數(shù)據(jù)集的增大和網(wǎng)絡規(guī)模的日趨復雜,深度學習的巨量計算需求催生硬件架構不斷創(chuàng)新,當前的混合異構平臺擁有大量的計算資源,包括 CPU、GPU、FPGA和AI芯片[1,2]等?,F(xiàn)有的AI算法模型訓練方案都是基于CPU+GPU架構設計實現(xiàn)的,雖然GPU在AI算法模型訓練方面的異構加速性能比較好,但是GPU的高成本、高功耗特性隨著大規(guī)模訓練GPU平臺的部署已經(jīng)成為AI算法模型訓練平臺的挑戰(zhàn)。為了實現(xiàn)高性能和高能效,學術界和工業(yè)界都對DNN的硬件加速進行了深入研究,使用混合不同特性的異構加速設備對AI算法模型進行協(xié)同訓練已經(jīng)成為一種新的研究思路。

當前最流行的分布式訓練方式是數(shù)據(jù)并行,每個計算設備上都部署了完整的模型副本,設備間使用不同數(shù)據(jù)集進行參數(shù)訓練。這種方式需要在單個設備上存儲整個DNN模型的權重和特征,并且設備間需要同步和更新權重,系統(tǒng)整體效能受限于設備計算能力均衡性和內存配置。當DNN模型規(guī)模較大無法將整個模型部署在單個計算設備上時,研究人員會采用模型并行方式進行訓練。模型并行訓練涉及在設備之間劃分模型,以便每個計算設備僅評估模型參數(shù)的一部分并執(zhí)行更新。已有的研究成果表明,模型并行訓練主要針對已設計好的神經(jīng)網(wǎng)絡結構采用手工劃分網(wǎng)絡并將其映射到不同的計算設備上,手工劃分網(wǎng)絡由于對任務負載的運行時間估計不夠精準,容易導致計算節(jié)點上的負載不均衡[3 - 5]。要想實現(xiàn)網(wǎng)絡模型的自動劃分并且達到負載均衡,還面臨著如何構建精準的深度神經(jīng)網(wǎng)絡算子性能模型以及設計任務調度算法的難題。

本文提出一種面向模型并行訓練的模型拆分策略自動生成方法。該方法首先基于靜態(tài)的神經(jīng)網(wǎng)絡模型參數(shù)、AI 加速器設備的理論計算能力以及設備間的理論通信帶寬等參數(shù),構建性能模型;然后根據(jù)任務負載均衡策略中提出的算法對網(wǎng)絡算子進行任務調度;最后給出DNN網(wǎng)絡算子在多個AI加速設備上的模型拆分策略。本文的實驗表明,該方法生成的模型分配策略能夠高效利用單個計算平臺上的所有計算資源,并保證模型訓練任務在各設備之間的負載均衡,與目前使用的人工拆分策略相比,具有更高的時效性,且降低了由于人為因素帶來的不確定性。

2 背景介紹

2.1 DNN網(wǎng)絡訓練

深度神經(jīng)網(wǎng)絡(DNN)的訓練是計算密集型的,通常使用隨機梯度下降SGD(Stochastic Gradient Descent)進行訓練,其訓練過程分為前向傳播和后向傳播2個階段。訓練中,數(shù)據(jù)集被隨機抽樣,按批次輸入到神經(jīng)網(wǎng)絡中,在前向傳播階段對數(shù)據(jù)集產(chǎn)生預測結果,并計算損失函數(shù);然后向后傳遞反向傳播誤差,以獲得梯度值,更新模型的權重參數(shù)[6]。一個批次的數(shù)據(jù)經(jīng)過一次前向和后向傳播過程就完成了一次迭代,一個epoch就是使用訓練集中的全部樣本訓練一次。整個訓練過程要執(zhí)行多個epoch,直到模型收斂[7]。DNN的訓練過程非常耗時,需要數(shù)天或數(shù)周才能完成大規(guī)模的訓練任務,因此需要對DNN網(wǎng)絡進行并行訓練以加快訓練過程,當前最常用的并行化方法為數(shù)據(jù)并行和模型并行。

數(shù)據(jù)并行:在數(shù)據(jù)并行中,每個計算設備都擁有模型的完整副本,每個設備處理不同的訓練數(shù)據(jù)集,如圖1所示。 每個設備都會計算自己的梯度,這些梯度通過求和在參數(shù)計算節(jié)點聚合,然后將聚合的梯度廣播到所有設備,以更新權重。因為需要同步在各個設備處更新的權重,設備間通信開銷對數(shù)據(jù)并行的影響很大。為了降低參數(shù)節(jié)點的通信壓力,研究人員提出了Ring-allreduce架構,各個設備都是計算節(jié)點,并且形成一個環(huán),如圖2所示,沒有中心節(jié)點來聚合所有計算節(jié)點計算的梯度。在一個迭代過程中,每個計算節(jié)點完成自己的最小批次訓練,計算出梯度,并將梯度傳遞給環(huán)中的下一個計算節(jié)點,同時它也接收來自上一個計算節(jié)點的梯度。Ring-allreduce的參數(shù)更新模式要求各計算設備具有一致的硬件架構和計算能力,雖然在一定程度降低了通信開銷對數(shù)據(jù)并行的影響,但是其具有單一性,不能綜合利用計算平臺上各種高效能AI加速設備,為基于混合架構的網(wǎng)絡模型數(shù)據(jù)并行訓練帶來了局限性。

Figure 1 Data parallel training method 圖1 數(shù)據(jù)并行訓練方法

Figure 2 Hardware architecture of Ring-allreduce 圖2 Ring-allreduce硬件架構

模型并行:模型并行[8]在多個設備之間劃分模型,其中每個設備負責指定模型層的權重更新,如圖3所示。 前向計算的層輸出和后向計算的梯度等中間數(shù)據(jù)在計算設備之間傳輸,設備之間傳遞的數(shù)據(jù)明顯少于數(shù)據(jù)并行方式,因此對于單個計算設備內存無法容納的大模型來說,模型并行是一個很好的選擇。為了使模型并行訓練能夠充分利用多設備計算平臺上的計算資源,需要解決一些挑戰(zhàn),首先,由于模型劃分具有依賴性,在模型并行的簡單實現(xiàn)中,一次只有一個GPU是活動的,導致計算資源的利用嚴重不足。為了實現(xiàn)并行,PipeDream[8]通過同時向模型注入多個批次來實現(xiàn)流水線操作,每個GPU可以同時處理不同的批次。Chen等[7]針對PipeDream方法提出權重預測技術SpecTrain,來解決流水線操作引入的權重過時問題。第2個挑戰(zhàn)是負載平衡。數(shù)據(jù)并行在多個GPU之間劃分訓練數(shù)據(jù),因此可以輕松維護負載平衡。至于模型并行,由于不同DNN層的復雜性各不相同,劃分算法不僅需要考慮每個設備的計算能力,還要考慮跨設備的通信數(shù)據(jù)量,并根據(jù)以上因素為不同計算設備分配相應的總工作量,因此如何精準高效地將訓練任務分配到不同計算設備需要開發(fā)人員付出巨大努力。

Figure 3 Model parallel training method 圖3 模型并行訓練方法

2.2 AI加速器

現(xiàn)有的大部分DNN 網(wǎng)絡的訓練過程是基于CPU+GPU集群的傳統(tǒng)分布式異構計算架構實現(xiàn)的,其存在能耗過高、擴展性較差、計算資源利用不足等問題。 為了實現(xiàn)高性能和高能效,學術界和工業(yè)界都對DNN的硬件加速進行了深入研究,使用低能耗高性能的FPGA和專用處理器ASIC芯片等新型AI加速器對傳統(tǒng)CPU+GPU的計算架構進行加速,已經(jīng)成為混合異構分布式計算領域的發(fā)展重點[9]。

2016年,谷歌I/O開發(fā)者大會上,谷歌正式發(fā)布了首代TPU(Tensor Processing Unit)[10],這是一款專門針對TensorFlow開發(fā)的芯片,至今已發(fā)布到第3代。近期,Google 推出了可在Google 云平臺上使用的Cloud TPU,谷歌還有專用于AI邊緣計算的ASIC Edge TPU,它以較小的物理和電源占用空間提供了高性能,從而可以在邊緣部署高精度AI。2017年8月,微軟宣布推出一套基于FPGA的超低延遲云端深度學習系統(tǒng)Brainwave,以具有競爭力的成本以及業(yè)界最低的延時進行實時AI計算,Brainwave旨在加速實時AI計算的硬件體系結構。Eyeriss[11,12]是一種具有代表性的設計,它采用空間數(shù)據(jù)流在處理引擎(PE)之間共享數(shù)據(jù)。 為了充分利用內存處理的優(yōu)勢,Neurocube[13]使用編程數(shù)據(jù)包方案,在混合存儲的多維數(shù)據(jù)集(HMC)中部署PE。Flexflow[14]是一種具有拼貼優(yōu)化的脈動體系結構。 MAESTRO[15]探索了5種用于DNN加速器的細粒度片上數(shù)據(jù)流。為了充分利用各種AI加速器的硬件資源,研究人員需要嘗試基于各種具有不同硬件架構、不同計算能力的AI加速器進行DNN網(wǎng)絡模型訓練。

3 全自動的模型拆分策略生成方法

DNN網(wǎng)絡目前主要采用計算圖[16,17]來表示,不同的DNN網(wǎng)絡的復雜性各不相同。為了充分利用AI加速器硬件資源,研究人員需要在集合了多種不同算力、不同硬件架構AI加速器的計算平臺上進行神經(jīng)網(wǎng)絡模型訓練。為了將計算圖中的計算任務映射到多個并行計算的AI加速設備上,并且實現(xiàn)訓練任務在多種加速器上的負載均衡,本文提出了全自動的模型拆分策略生成方法,該方法主要包括2部分,如圖4所示。首先需要對計算圖中的DNN網(wǎng)絡算子構建性能模型,本文構建等同于DNN計算圖的前向網(wǎng)絡,用于統(tǒng)計每個算子的參數(shù)信息(包括卷積核大小、輸入輸出圖像大小等),從而得到每個算子的理論數(shù)據(jù)通信量和理論計算量??紤]硬件加速設備對訓練過程的影響,根據(jù)每個AI加速設備的理論算力,求解性能模型,得出每個算子在并行計算設備上應該分配的理論計算量。然后結合DNN網(wǎng)絡算子理論計算量和通信量對訓練性能的影響,設計合理有效的負載均衡策略,通過負載均衡策略中任務調度算法得到深度神經(jīng)網(wǎng)絡模型的最終劃分策略。最后將劃分策略作為構建計算圖的參數(shù)傳入到訓練腳本中,根據(jù)得到的模型劃分策略將計算圖中的計算任務映射到不同架構的AI加速設備上。模型拆分策略生成的整個過程集成在DNN網(wǎng)絡模型訓練腳本中,無需人工干預,即可自動完成從性能模型構建到模型設備映射、啟動訓練的整個過程。

Figure 4 Schematic diagram of the fully automatic model splitting strategy generation method圖4 全自動的模型拆分策略生成方法模塊示意圖

本文使用粗體大寫字母表示向量,表1對本節(jié)所用到的符號進行了說明。

Table 1 Commonly used notations表1 常用符號說明

3.1 DNN網(wǎng)絡算子性能模型構建

隨著AI加速器的快速發(fā)展,研究人員需要嘗試基于各種AI加速器進行神經(jīng)網(wǎng)絡訓練,因此會出現(xiàn)一個模型在訓練時同時用到單機服務器上多種AI加速器設備的情況。當前網(wǎng)絡模型并行化主要針對已設計好的神經(jīng)網(wǎng)絡結構采用手工劃分網(wǎng)絡并將其映射到不同的計算設備上,而對于集成了多種AI加速設備的單機計算平臺,手工劃分網(wǎng)絡不具有兼容多種設備的通用性,還會由于對訓練任務在不同AI設備上運行時間的估計不夠精準,容易導致計算節(jié)點上的負載不均衡。針對以上問題,本文構建了DNN網(wǎng)絡算子的性能模型。計算量和通信量大小是影響DNN網(wǎng)絡訓練性能的主要因素,本文構建的性能模型主要負責在構建前向網(wǎng)絡的過程中收集網(wǎng)絡算子的參數(shù)信息,統(tǒng)計網(wǎng)絡算子的理論計算量、通信量以及總的算子數(shù)量。然后根據(jù)提供的單機服務器上現(xiàn)有的AI設備類型、設備理論算力等信息,給出在僅考慮計算量對性能影響的情況下,為了保證負載均衡,每個設備上應該分配的理論計算量。

假設,當前服務器上的AI加速設備數(shù)量為M,設備列表為D={d1,d2,…,dM},每個設備的理論算力列表為C={c1,c2,…,cM}。該DNN計算圖中的算子數(shù)為N,性能模型前期統(tǒng)計出來的,每個算子的理論計算量列表為F={f1,f2,…,fN},則整個計算圖總的理論計算量為:

(1)

flopsdi={Flopstotal/θ}*(ci/c1)

(2)

因此,最后性能模型輸出AI設備的理論計算量列表FLOPSdevice={flopsd1,flopsd2,…,flopsdM}。

3.2 任務負載均衡

tdi=tcdi+tsdi=

(3)

對于每一種分配策略,本文利用式(3)計算設備的執(zhí)行時間,為了保證所有設備在訓練任務上的負載均衡,又兼顧整體訓練性能,本文設計了簡單高效的拆分策略對比算法,用于衡量對比選取較優(yōu)的拆分結果,其實現(xiàn)如算法1所示。

算法1拆分策略對比算法split_compare()

輸入:2種拆分結果:SPLIT_RES1和SPLIT_RES2,及其設備執(zhí)行時間列表T1和T2;設置閾值:τ。

計算T1的均值avg1和標準差ε1;T2的均值avg2和標準差ε2;

if(|ε1-ε2|<τ)

ifavg1≤avg2,則選取T1,返回T1和SPLIT_RES1;

ifavg1>avg2,則選取T2,返回T2和SPLIT_RES2;

else:

if(ε1<ε2-τ),則選取T1,返回T1和SPLIT_RES1;

if(ε2<ε1-τ),則選取T2,返回T2和SPLIT_RES2;

負載均衡策略實現(xiàn)主要分為2個階段。第1階段根據(jù)理論計算量列表,采用基于理論算力的拆分算法2對計算圖的算子進行初步拆分,輸出一個基于算力的拆分結果。第2階段針對階段1的拆分結果采用基于最大值的微調算法(算法3)對拆分結果進行微調,最后給出最終的拆分結果。

算法2基于理論算力的拆分算法split_computingbased()

輸入:每個設備的理論計算量列表FLOPSdevice。

輸出:拆分列表SPLIT_RES。

初始化:SPLIT_RES中indexd1=0;

fordiinD:

layer_start=indexdi;

初始化當前設備的實際計算量real_flopsdi=0;

forjinrange(layer_star,N)

real_flopsdi=real_flopsdi+fj;

real_flops_nextdi=real_flopsdi+fj+1;

如果real_flopsdiflopsdi:

indexdi+1=j+1;

j=N;//退出內部循環(huán)。

得出一種拆分方案,將臨界層算子劃入下一個計算設備:SPLIT_RES1;

fordiinD:

layer_start=indexdi;

初始化當前設備的實際計算量real_flopsdi=0;

forjinrange(layer_star,N)

real_flopsdi=real_flopsdi+fj;

real_flops_nextdi=real_flopsdi+fj+1;

如果real_flopsdiflopsdi:

indexdi+1=j+2;

j=N;//退出內部循環(huán)。

得出一種拆分方案,將臨界層算子j+1劃入當前計算設備:SPLIT_RES2;

利用式(3)計算上述2種分配策略下的設備的執(zhí)行時間T1和T2;

調用拆分對比算法1:

SPLIT_RES,T=split_compare(SPLIT_RES1,SPLIT_RES2,T1,T2);

ReturnSPLIT_RES,T。

根據(jù)DNN網(wǎng)絡算子的理論計算量統(tǒng)計分析,相鄰DNN網(wǎng)絡算子的計算量可能會相差較大,因此在基于算力的拆分算法2中,(1)依次對網(wǎng)絡層算子的理論計算量進行累加求和,當累加到某一層使得當前計算設備總的計算量大于其應分配的理論計算量時,停止累加,并將該臨界層算子劃分到下一個計算設備,滿足當前設備的實際總的計算量小于其應該分配的理論計算量;(2)依次對網(wǎng)絡層算子的理論計算量進行累加求和,當累加到某一層使得當前計算設備總的計算量大于其應分配的理論計算量時,停止累加,并將該臨界層算子劃分到當前計算設備,該臨界層的下一層網(wǎng)絡算子劃分到下一個計算設備,滿足當前設備的實際總的計算量大于其應該分配的理論計算量。然后通過對比算法1選取較優(yōu)的方案作為返回值。

在DNN網(wǎng)絡模型并行訓練時,影響性能的通信時間主要為跨設備的數(shù)據(jù)傳輸時間,網(wǎng)絡算子的通信時間由其通信量和PCIE帶寬決定,每個設備考慮通信時間后對算法2的分配結果影響不是很大,因此本文采用基于最大值的微調算法3,對算法2的分配結果進行微調。微調算法3每次查找設備實際執(zhí)行時間列表中運行時間最長的設備,然后調整該設備的起始計算位置以減少其計算的算子數(shù)。為了增加微調算法的穩(wěn)定性,微調算法采用下調2次起始位置的方法,并通過對比算法選出最優(yōu)的分配方案,直到分配方案不再發(fā)生變化。

算法3基于最大值的微調算法finetuning_maximum()

輸入:SPLIT_RES_before,T_before=split_computingbased()。

輸出:拆分列表SPLIT_RES。

設置最大迭代次數(shù):MAX_STEP;

foriin (0,MAX_STEP):

max(T_before),記錄最大值的設備max_index;

SPLIT_RES1:將最大值設備的起始位置下移一個算子;

SPLIT_RES2:將最大值設備的起始位置下移2個算子;

SPLIT_RES_now,T_now=split_compare(SPLIT_RES1,SPLIT_RES_before,T_before);

SPLIT_RESSPLIT_RES,T=split_compare(SPLIT_RES_now,SPLIT_RES2,T_now,T2);

SPLIT_RES_before,T_before=SPLIT_RES,T;

ifSPLIT_RES_before,T_before連續(xù)不再變化,退出循環(huán);

ReturnSPLIT_RES,T。

3.3 模型拆分策略算法優(yōu)化

DNN網(wǎng)絡模型在訓練時同時用到單機服務器上多種AI加速器設備,不同AI設備之間需要進行數(shù)據(jù)傳輸,其傳輸方式不盡相同,如圖5所示。

Figure 5 Data transfer between AI accelerators圖5 AI加速器間數(shù)據(jù)傳輸

GPU-GPU 之間可以通過PCIE接口之間通信傳輸,GPU-FPGA之間需要借助中間CPU設備完成數(shù)據(jù)傳輸,其相當于進行了2次數(shù)據(jù)傳輸,傳輸數(shù)據(jù)量增大為原來的2倍。為了兼容不同設備間的數(shù)據(jù)傳輸,本文在計算數(shù)據(jù)通信時間時引入設備的數(shù)據(jù)傳輸參數(shù)列表γ,對前期的通信時間進行優(yōu)化。設定設備傳輸參數(shù)列表為γ={γ1,γ2,…,γM},其中,γi為設備di的數(shù)據(jù)傳輸參數(shù),優(yōu)化設備的通信時間:tsdi=γi*(sindexdi/B),而且設備傳輸參數(shù)列表γ={γ1,γ2,…,γm}也可以根據(jù)實際數(shù)據(jù)傳輸量進行調整,以更接近實際傳輸時間。以圖5b所示為例,在GPU+FPGA的硬件架構中,GPU與FPGA之間的數(shù)據(jù)傳輸參數(shù)為2.0,因此其傳輸列表為γ={1.0,2.0}。

4 實驗

面向模型并行訓練的模型拆分策略自動生成方法主要為DNN網(wǎng)絡在集合了多種不同算力、不同硬件架構AI加速器的計算平臺上進行模型并行訓練提供模型拆分策略。針對以上應用場景,本文基于TensorFlow2.0深度學習框架,選取ResNet網(wǎng)絡進行模型并行訓練,來驗證全自動的模型拆分策略生成方法的性能,實驗中生成的模型拆分策略基于集成了多個AI加速設備的單機服務器實現(xiàn)。

4.1 實驗環(huán)境搭建

TensorFlow2.0開源框架原生支持CPU和GPU設備,本文選用可編程邏輯器件FPGA作為其他架構的加速設備模擬AI芯片。為了能夠實現(xiàn)DNN網(wǎng)絡模型在除GPU外的其他設備上的模型并行訓練,首先需要對TensorFlow源碼注冊FPGA設備,添加其對FPGA的設備支持;然后利用FPGA加速器支持的高級編程語言OpenCL對DNN網(wǎng)絡中常用算子卷積、最大池化、全連接和矩陣乘法等的前向傳播和后向傳播過程進行并行優(yōu)化實現(xiàn),并在TensorFlow源碼中注冊為FPGA設備,使得FPGA能夠支持DNN網(wǎng)絡常用算子的前向和反向傳播計算。實驗環(huán)境如下所示:CPU:2路Intel(R)Xeon(R) CPU E5-2690 v3 @ 2.60 GHz(每個CPU包含12個物理core,24個thread cores);FPGA:Inspur F10S板卡x1;GPU:NVIDIA Tesla V100 x1;RAM:629 GB;OS:CentOS Linux release 7.6.1810 (Core);Kernel version:3.10.0-514.el7.x86_64;輸入圖像:ImageNet2012。

4.2 實驗結果分析

本節(jié)首先測試了在擁有GPU+GPU+FPGA 3種AI加速器的計算平臺上,對于不同模型大小的ResNet網(wǎng)絡,使用該自動生成方法自動生成模型拆分策略所需時間與研發(fā)人員通過手工劃分網(wǎng)絡模型生成模型拆分策略的方式所需時間進行對比,實驗結果如表2所示。

Table 2 Comparison of time between automatic generation method and manual division method表2 自動生成方法與手工拆分方法耗時對比

通過實驗結果可知,與人工拆分相比,自動生成模型拆分策略的方法能夠大幅提升生成模型拆分策略的時效性,在節(jié)省研發(fā)人員人工成本的同時,降低了人為因素帶來的拆分誤差。且隨著網(wǎng)絡模型規(guī)模增大以及計算平臺上AI加速器數(shù)量和種類的增加,手動拆分網(wǎng)絡模型時研發(fā)人員需要考慮和嘗試的選擇性越多,拆分策略生成就會更慢,自動生成方法帶來的快速、準確性的優(yōu)勢更加顯著。

然后,本節(jié)基于ResNet-101網(wǎng)絡模型,利用自動生成方法分別生成了使用GPU+FPGA 2個加速設備和GPU+GPU+FPGA 3個加速設備進行模型并行訓練時的模型拆分策略,并根據(jù)生成的拆分策略進行理論的設備執(zhí)行總時間計算,最后與手動拆分時的理論分配時間進行對比,其性能結果分別如圖6和圖7所示。

Figure 6 Training performance comparison of AI devices under different splitting strategies圖6 不同拆分策略下AI設備的訓練性能對比

Figure 7 Load balancing performance comparison of AI devices under different split strategies圖7 不同拆分策略下AI設備的負載均衡性能對比

由于GPU與FPGA需要通過CPU進行數(shù)據(jù)傳輸,因此本實驗設定GPU+FPGA時設備傳輸參數(shù)列表為:γ={1.0,2.0},GPU+GPU+FPGA時γ={1.0,1.0,2.0},采用某種拆分策略時,設備執(zhí)行時間的標準差衡量訓練任務在AI設備間的負載均衡性。實驗結果表明,采用自動生成的模型拆分策略,AI設備在訓練時總的執(zhí)行時間與結合理論數(shù)據(jù)進行手動劃分的拆分策略結果基本一致,但是設備任務的負載均衡性優(yōu)于手動生成的拆分策略,這說明本文自動生成的拆分策略能夠高效利用單個計算平臺上的不同計算資源,且能保證模型訓練任務在各設備之間的負載均衡。

負載均衡策略實現(xiàn)的算法1設定了方差閾值參數(shù)τ,閾值參數(shù)τ的不同將較大程度影響到最終分配結果,因此本節(jié)對比了不同閾值參數(shù)對拆分策略結果的影響,其實驗結果分別如圖8和圖9所示。

Figure 8 Effect of different threshold parameters τ on the training performance of AI devices in the results of the split strategy圖8 不同閾值參數(shù)τ對拆分策略結果中 AI設備訓練性能的影響

Figure 9 Effect of different threshold parameters τ on the load balancing performance of AI devices in the results of the split strategy圖9 不同閾值參數(shù)τ對拆分策略結果中 AI設備負載均衡性能的影響

實驗結果表明,在拆分對比算法1中設計合理的閾值參數(shù)τ,將直接影響拆分結果。理論上τ的值越小越能保證設備間的任務負載均衡,在τ為60,70等較大值時也到達了負載均衡的局部最優(yōu)解,但其對應訓練的整體性能較差。訓練過程中在保證負載均衡時,也要兼顧整體的訓練性能,因此在ResNet-101的訓練中,本節(jié)選擇τ=20,其負載均衡性能接近于最優(yōu)解,也保證了網(wǎng)絡的整體訓練性能。

利用自動生成的模型策略完成ResNet-101網(wǎng)絡在GPU+FPGA 2個加速設備上的映射后,模型訓練的實際性能,如圖10所示。實驗結果顯示,實際訓練性能遠低于自動生成策略時的理論分析性能,這是因為在實驗中,本文采用FPGA模擬AI芯片,只限于功能驗證實現(xiàn),F(xiàn)PGA加速器上實際運行的卷積、全連接等算子由OpenCL高級編程語言實現(xiàn),但并未進行核心代碼的充分并行優(yōu)化,使得FPGA上運行的算子的實際計算性能遠低于其理論計算性能。將FPGA換為AI芯片后,由于AI芯片具有針對算子設計的特定結構,其在實際計算能力以及通信帶寬上將優(yōu)于FPGA的性能。該實驗結果也表明本文提出的模型自動拆分策略具有較高的通用性和靈活性,能夠應用到包含不同架構和不同計算能力的AI加速設備上。

Figure 10 Comparison of theoretical analysis and actual training performance圖10 理論分析與實際訓練性能對比

5 結束語

本文基于DNN網(wǎng)絡的理論計算量、通信量以及AI加速器的理論算力等提出了一個面向模型并行訓練的模型拆分策略自動生成方法,該方法主要包括網(wǎng)絡算子性能模型構建和訓練任務負載均衡2部分。網(wǎng)絡算子性能模型構建負責收集網(wǎng)絡算子的參數(shù)信息,統(tǒng)計網(wǎng)絡算子的理論計算量、通信量以及總的算子數(shù)量,并根據(jù)AI加速器的理論算力給出每個設備應該分配的理論計算量;訓練任務負載均衡部分通過對比算法和微調算法對網(wǎng)絡算子進行任務調度,以保證訓練任務在多個AI加速器上的負載均衡。該自動生成方法能夠高效利用單個計算平臺上的所有計算資源,并保證模型訓練任務在各設備之間的負載均衡,與目前使用人工拆分策略相比節(jié)省了研發(fā)人員的人工成本,具有更高的時效性,降低了由于人為因素帶來的不確定性。

猜你喜歡
加速器算子性能
輪滑加速器
化學工業(yè)的“加速器”
全民小康路上的“加速器”
少先隊活動(2021年6期)2021-07-22 08:44:24
擬微分算子在Hp(ω)上的有界性
各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應用
提供將近80 Gbps的帶寬性能 DisplayPort 2.0正式發(fā)布
一類Markov模算子半群與相應的算子值Dirichlet型刻畫
Roper-Suffridge延拓算子與Loewner鏈
等待“加速器”
Al-Se雙元置換的基于LGPS的thio-LISICON的制備與性能表征
无棣县| 兴和县| 桂阳县| 青铜峡市| 大埔县| 岳西县| 徐州市| 宣威市| 微博| 南安市| 尼勒克县| 聊城市| 西贡区| 张家口市| 呼玛县| 明溪县| 瑞安市| 吴江市| 绩溪县| 绥滨县| 鄂托克旗| 扶余县| 嘉善县| 黑山县| 行唐县| 达州市| 漳平市| 天津市| 麦盖提县| 眉山市| 辽源市| 资中县| 邯郸县| 洞头县| 当阳市| 永寿县| 花莲县| 台湾省| 宝兴县| 茂名市| 龙南县|