亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

        1 引言

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

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

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

        2 背景介紹

        2.1 DNN網(wǎng)絡(luò)訓(xùn)練

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

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

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

        Figure 2 Hardware architecture of Ring-allreduce 圖2 Ring-allreduce硬件架構(gòu)

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

        Figure 3 Model parallel training method 圖3 模型并行訓(xùn)練方法

        2.2 AI加速器

        現(xiàn)有的大部分DNN 網(wǎng)絡(luò)的訓(xùn)練過程是基于CPU+GPU集群的傳統(tǒng)分布式異構(gòu)計算架構(gòu)實現(xiàn)的,其存在能耗過高、擴(kuò)展性較差、計算資源利用不足等問題。 為了實現(xiàn)高性能和高能效,學(xué)術(shù)界和工業(yè)界都對DNN的硬件加速進(jìn)行了深入研究,使用低能耗高性能的FPGA和專用處理器ASIC芯片等新型AI加速器對傳統(tǒng)CPU+GPU的計算架構(gòu)進(jìn)行加速,已經(jīng)成為混合異構(gòu)分布式計算領(lǐ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的超低延遲云端深度學(xué)習(xí)系統(tǒng)Brainwave,以具有競爭力的成本以及業(yè)界最低的延時進(jìn)行實時AI計算,Brainwave旨在加速實時AI計算的硬件體系結(jié)構(gòu)。Eyeriss[11,12]是一種具有代表性的設(shè)計,它采用空間數(shù)據(jù)流在處理引擎(PE)之間共享數(shù)據(jù)。 為了充分利用內(nèi)存處理的優(yōu)勢,Neurocube[13]使用編程數(shù)據(jù)包方案,在混合存儲的多維數(shù)據(jù)集(HMC)中部署PE。Flexflow[14]是一種具有拼貼優(yōu)化的脈動體系結(jié)構(gòu)。 MAESTRO[15]探索了5種用于DNN加速器的細(xì)粒度片上數(shù)據(jù)流。為了充分利用各種AI加速器的硬件資源,研究人員需要嘗試基于各種具有不同硬件架構(gòu)、不同計算能力的AI加速器進(jìn)行DNN網(wǎng)絡(luò)模型訓(xùn)練。

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

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

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

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

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

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

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

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

        (1)

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

        (2)

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

        3.2 任務(wù)負(fù)載均衡

        tdi=tcdi+tsdi=

        (3)

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

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

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

        計算T1的均值avg1和標(biāo)準(zhǔn)差ε1;T2的均值avg2和標(biāo)準(zhǔn)差ε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;

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

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

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

        輸出:拆分列表SPLIT_RES。

        初始化:SPLIT_RES中indexd1=0;

        fordiinD:

        layer_start=indexdi;

        初始化當(dāng)前設(shè)備的實際計算量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;//退出內(nèi)部循環(huán)。

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

        fordiinD:

        layer_start=indexdi;

        初始化當(dāng)前設(shè)備的實際計算量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;//退出內(nèi)部循環(huán)。

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

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

        調(diào)用拆分對比算法1:

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

        ReturnSPLIT_RES,T。

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

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

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

        輸入:SPLIT_RES_before,T_before=split_computingbased()。

        輸出:拆分列表SPLIT_RES。

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

        foriin (0,MAX_STEP):

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

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

        SPLIT_RES2:將最大值設(shè)備的起始位置下移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)絡(luò)模型在訓(xùn)練時同時用到單機服務(wù)器上多種AI加速器設(shè)備,不同AI設(shè)備之間需要進(jìn)行數(shù)據(jù)傳輸,其傳輸方式不盡相同,如圖5所示。

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

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

        4 實驗

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

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

        TensorFlow2.0開源框架原生支持CPU和GPU設(shè)備,本文選用可編程邏輯器件FPGA作為其他架構(gòu)的加速設(shè)備模擬AI芯片。為了能夠?qū)崿F(xiàn)DNN網(wǎng)絡(luò)模型在除GPU外的其他設(shè)備上的模型并行訓(xùn)練,首先需要對TensorFlow源碼注冊FPGA設(shè)備,添加其對FPGA的設(shè)備支持;然后利用FPGA加速器支持的高級編程語言O(shè)penCL對DNN網(wǎng)絡(luò)中常用算子卷積、最大池化、全連接和矩陣乘法等的前向傳播和后向傳播過程進(jìn)行并行優(yōu)化實現(xiàn),并在TensorFlow源碼中注冊為FPGA設(shè)備,使得FPGA能夠支持DNN網(wǎng)絡(luò)常用算子的前向和反向傳播計算。實驗環(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é)果分析

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

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

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

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

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

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

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

        負(fù)載均衡策略實現(xiàn)的算法1設(shè)定了方差閾值參數(shù)τ,閾值參數(shù)τ的不同將較大程度影響到最終分配結(jié)果,因此本節(jié)對比了不同閾值參數(shù)對拆分策略結(jié)果的影響,其實驗結(jié)果分別如圖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ù)τ對拆分策略結(jié)果中 AI設(shè)備訓(xùn)練性能的影響

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

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

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

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

        5 結(jié)束語

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

        猜你喜歡
        加速器算子性能
        輪滑加速器
        化學(xué)工業(yè)的“加速器”
        全民小康路上的“加速器”
        少先隊活動(2021年6期)2021-07-22 08:44:24
        擬微分算子在Hp(ω)上的有界性
        各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
        提供將近80 Gbps的帶寬性能 DisplayPort 2.0正式發(fā)布
        一類Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫
        Roper-Suffridge延拓算子與Loewner鏈
        等待“加速器”
        Al-Se雙元置換的基于LGPS的thio-LISICON的制備與性能表征
        亚洲中文字幕无码中文字在线| 亚洲天堂线上免费av| 少妇爽到高潮免费视频| 中国老太婆bb无套内射| 开心五月婷婷激情综合网| 国产农村熟妇videos| 放荡的闷骚娇妻h| 无码AV高潮喷水无码专区线| 97国产精品麻豆性色| 按摩少妇高潮在线一区| 亚洲2022国产成人精品无码区| 搡老熟女中国老太| 亚洲香蕉成人AV网站在线观看| AV无码系列一区二区三区| 日韩av一区二区三区精品久久| 亚洲性久久久影院| 这里有精品可以观看| 免费观看视频在线播放| 亚洲第一黄色免费网站| 天天爽天天爽夜夜爽毛片 | 国产精品三级一区二区按摩| 亚洲成人黄色av在线观看| 亚洲综合无码一区二区三区| 亚洲一区精品无码| 一本久久a久久精品vr综合| 亚洲熟少妇在线播放999| 亚洲一区视频在线| 男女爱爱好爽视频免费看| 中国凸偷窥xxxx自由视频| 国产成人亚洲综合无码精品| 亚洲在中文字幕乱码熟女| 少妇激情av一区二区三区| 国产精品亚洲一区二区三区在线| 精品国产群3p在线观看| 国产亚洲精品视频在线| 久久亚洲av成人无码电影 | 青青青国产免A在线观看| 亚洲国产av自拍精选| 在线观看亚洲av每日更新影片 | 亚洲一区二区高清精品| 乳乱中文字幕熟女熟妇|