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

        ?

        分布式深度學(xué)習(xí)通信架構(gòu)的性能分析*

        2021-04-06 10:48:20張立志冉浙江賴志權(quán)
        關(guān)鍵詞:可擴(kuò)展性分布式架構(gòu)

        張立志,冉浙江,賴志權(quán),劉 鋒

        (國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院并行與分布處理國(guó)防科技重點(diǎn)實(shí)驗(yàn)室,湖南 長(zhǎng)沙 410073)

        1 引言

        最近幾年,分布式深度學(xué)習(xí)在語(yǔ)音識(shí)別[1,2]、 圖像識(shí)別[3,4]、自然語(yǔ)言處理[5,6]和機(jī)器翻譯等領(lǐng)域都取得了豐碩的成果。分布式深度學(xué)習(xí)在多節(jié)點(diǎn)上并行運(yùn)行深度學(xué)習(xí)任務(wù)的能力,能夠有效應(yīng)對(duì)海量數(shù)據(jù)和超大神經(jīng)網(wǎng)絡(luò)模型的挑戰(zhàn),高效地訓(xùn)練出可用的模型,對(duì)人工智能的發(fā)展有極大的推動(dòng)作用,因此對(duì)分布式深度學(xué)習(xí)加速大數(shù)據(jù)、大模型訓(xùn)練的研究是目前人工智能領(lǐng)域的主流方向之一。

        大規(guī)模的深度學(xué)習(xí)任務(wù)往往要充分利用“大數(shù)據(jù)”并且有效訓(xùn)練“大模型”,但是隨著海量數(shù)據(jù)和龐大模型規(guī)模的發(fā)展,訓(xùn)練數(shù)據(jù)的容量和模型參數(shù)的規(guī)模已經(jīng)超出單節(jié)點(diǎn)的處理能力[7],逐漸成為深度學(xué)習(xí)發(fā)展的瓶頸。目前,更主流的解決方案是使用多機(jī)器、多GPU進(jìn)行分布式深度學(xué)習(xí)的訓(xùn)練,即通過(guò)將大數(shù)據(jù)集和大規(guī)模深度學(xué)習(xí)問(wèn)題分解到多臺(tái)機(jī)器和設(shè)備上并行地處理這些問(wèn)題。這種方案同時(shí)利用多個(gè)工作節(jié)點(diǎn),采用分布式技術(shù)來(lái)執(zhí)行訓(xùn)練任務(wù),提高了深度學(xué)習(xí)模型的訓(xùn)練效率,減少了訓(xùn)練時(shí)間。為了提供所需的計(jì)算能力,通常需要幾十甚至上百個(gè)GPU,在這個(gè)背景下,涌現(xiàn)出許多新的軟硬件技術(shù),包括GPU的興起和大規(guī)模計(jì)算機(jī)集群的廣泛使用。然而,當(dāng)GPU節(jié)點(diǎn)數(shù)量增多時(shí),協(xié)調(diào)GPU之間的通信也是一個(gè)復(fù)雜的問(wèn)題。當(dāng)只有2個(gè)GPU和幾兆字節(jié)的參數(shù)時(shí),GPU通信的方式影響較??;但是當(dāng)模型有幾十億個(gè)參數(shù)時(shí),就會(huì)占用千兆字節(jié)的空間,并且還要同時(shí)協(xié)調(diào)幾十個(gè)GPU,可能會(huì)帶來(lái)巨大的開(kāi)銷,成為分布式訓(xùn)練性能提升的瓶頸,此時(shí)GPU之間的通信機(jī)制就非常重要。

        本文利用天河GPU集群的硬件條件實(shí)現(xiàn)和部署帶寬優(yōu)化架構(gòu)Ring Allreduce和傳統(tǒng)的參數(shù)服務(wù)器PS(Parameter Server)架構(gòu),基于這2個(gè)架構(gòu)和經(jīng)典的數(shù)據(jù)集訓(xùn)練典型圖像分類神經(jīng)網(wǎng)絡(luò)AlexNet和ResNet-50,獲取模型訓(xùn)練效率的結(jié)果,分析Ring Allreduce架構(gòu)和PS架構(gòu)相比在單個(gè)GPU性能和整體架構(gòu)可擴(kuò)展性上的差異,實(shí)驗(yàn)結(jié)果表明Ring Allreduce可以有效加快大規(guī)模數(shù)據(jù)集的訓(xùn)練。

        2 背景

        2.1 相關(guān)工作

        在深度學(xué)習(xí)的背景下,大多數(shù)人專注于對(duì)網(wǎng)絡(luò)模型的探索,AlexNet在卷積神經(jīng)網(wǎng)絡(luò)中首次使用了局部響應(yīng)歸一化等技術(shù),提高了模型訓(xùn)練的速度和精度,減少了過(guò)擬合[8]。ResNet在輸出和輸入之間引入了一種快捷連接,當(dāng)網(wǎng)絡(luò)加深時(shí),梯度在傳播過(guò)程中不會(huì)消失。因此,當(dāng)使用ResNet網(wǎng)絡(luò)進(jìn)行特征提取時(shí),網(wǎng)絡(luò)的深度可以大大增加[9]。目前對(duì)于網(wǎng)絡(luò)模型的優(yōu)化已經(jīng)達(dá)到了很高的水準(zhǔn),但是在模型的訓(xùn)練速度上還有很大的提升空間。一些學(xué)者關(guān)注在單個(gè)機(jī)器上進(jìn)行優(yōu)化,訓(xùn)練較小的模型,但是這并不能解決海量數(shù)據(jù)帶來(lái)的問(wèn)題。還有許多學(xué)者探索了通過(guò)并行優(yōu)化來(lái)擴(kuò)展機(jī)器學(xué)習(xí)的算法[10,11]。大部分研究集中在分布式梯度計(jì)算上,忽略了對(duì)通信問(wèn)題的探索。

        在分布式深度學(xué)習(xí)訓(xùn)練中要實(shí)現(xiàn)多機(jī)協(xié)作就必須要通信。通信的內(nèi)容主要是參數(shù)或參數(shù)的更新,以實(shí)現(xiàn)全局信息共享;通信的步調(diào)可以是同步或者異步;通信的拓?fù)浼軜?gòu)有樹(shù)形、星形、環(huán)形和中心式等方式,用以確定哪些節(jié)點(diǎn)之間需要進(jìn)行通信。傳統(tǒng)的參數(shù)服務(wù)器架構(gòu)(PS)把工作節(jié)點(diǎn)和模型存儲(chǔ)節(jié)點(diǎn)在邏輯上區(qū)分開(kāi)來(lái),參數(shù)服務(wù)器和工作節(jié)點(diǎn)之間進(jìn)行交互,各工作節(jié)點(diǎn)之間的交互過(guò)程被隔離開(kāi),可以獲得較高的容錯(cuò)性。模型參數(shù)可以劃分到多個(gè)參數(shù)服務(wù)器上存儲(chǔ),能夠維護(hù)較大的模型?;贖adoop和Spark的分布式深度學(xué)習(xí)訓(xùn)練架構(gòu)采用的是迭代式MapReduce架構(gòu)[12,13],Map操作完成數(shù)據(jù)分發(fā)和并行處理,Reduce操作完成數(shù)據(jù)的全局同步和聚合,這樣能夠保持迭代之間的狀態(tài),并且執(zhí)行策略也更加優(yōu)化。但是,MapReduce架構(gòu)中運(yùn)算節(jié)點(diǎn)和模型存儲(chǔ)節(jié)點(diǎn)沒(méi)有很好地邏輯隔離,因此只能支持同步通信模式。而且MapReduce對(duì)于中間數(shù)據(jù)處理的靈活性和效率比較低,在有大量中間數(shù)據(jù)生成的迭代式機(jī)器學(xué)習(xí)任務(wù)中效率低下。另一種實(shí)現(xiàn)分布式機(jī)器學(xué)習(xí)的方法是消息通信接口(MPI),該方法主要使用AllReduce算法來(lái)同步信息。這種傳統(tǒng)的規(guī)約運(yùn)算是星型AllReduce架構(gòu)的算法基礎(chǔ),在并行計(jì)算的過(guò)程中會(huì)受到帶寬瓶頸的制約。分布式機(jī)器學(xué)習(xí)中基本的模型聚合方法主要是加和、平均等,這些可以使用AllReduce的算法實(shí)現(xiàn)有效的處理。傳統(tǒng)的基于AllReduce算法實(shí)現(xiàn)的架構(gòu)對(duì)于同步的并行訓(xùn)練有重要作用,也是現(xiàn)在很多深度學(xué)習(xí)分布式訓(xùn)練中實(shí)現(xiàn)通信功能的基礎(chǔ)。百度的DeepSpeech系統(tǒng)[14]和Uber的Horovod[15]基于AllReduce算法實(shí)現(xiàn)了Ring Allreduce的架構(gòu),可以避免星型Allreduce和PS架構(gòu)造成的通信瓶頸問(wèn)題。

        PS和Ring Allreduce是2種廣泛應(yīng)用的分布式深度學(xué)習(xí)訓(xùn)練架構(gòu),這2種架構(gòu)自提出以來(lái)就得到了分布式機(jī)器學(xué)習(xí)領(lǐng)域的普遍重視?,F(xiàn)在很多分布式訓(xùn)練的架構(gòu)都是基于這兩者實(shí)現(xiàn)的,TensorFlow、PyTorch和MXNet等都把PS和Ring Allreduce作為主要的分布式訓(xùn)練架構(gòu)。

        傳統(tǒng)PS分布式訓(xùn)練架構(gòu)中GPU之間的通信方式為:多個(gè)GPU分別發(fā)送數(shù)據(jù)到主GPU,然后分別從主GPU接收數(shù)據(jù)[16]。當(dāng)GPU數(shù)量增加時(shí),通信數(shù)據(jù)量超過(guò)單個(gè)GPU帶寬,會(huì)造成通信瓶頸,影響分布式深度學(xué)習(xí)的可擴(kuò)展性。Ring Allreduce架構(gòu)中每個(gè)節(jié)點(diǎn)只與相鄰的2個(gè)節(jié)點(diǎn)通信,不需要中心主GPU節(jié)點(diǎn),所有節(jié)點(diǎn)都參與計(jì)算和存儲(chǔ)[17]。PS模型同步架構(gòu)的通信成本隨架構(gòu)中的GPU數(shù)量線性增長(zhǎng)。但是,Ring Allreduce架構(gòu)中通信成本是恒定的,與系統(tǒng)中的GPU的數(shù)量無(wú)關(guān),整體性能提升與GPU數(shù)量的增加成正比。

        2.2 數(shù)據(jù)并行和模型并行

        本文在進(jìn)行分布式深度學(xué)習(xí)通信架構(gòu)性能分析中使用的神經(jīng)網(wǎng)絡(luò)模型規(guī)模不是主要限制因素,但數(shù)據(jù)集卻相當(dāng)大,F(xiàn)acebook[18]和Berkeley[19]等大規(guī)模數(shù)據(jù)集的分布式訓(xùn)練方法采用的是數(shù)據(jù)并行[20,21],這種并行訓(xùn)練方法更高效。如圖1所示,對(duì)整個(gè)數(shù)據(jù)集進(jìn)行劃分,不同節(jié)點(diǎn)用分配到的數(shù)據(jù)更新本地模型。在同步更新模式下,首先在每個(gè)節(jié)點(diǎn)上分別計(jì)算不同批次數(shù)據(jù)的梯度,之后對(duì)所有節(jié)點(diǎn)上的梯度求平均值,最后使用平均后的梯度更新每個(gè)節(jié)點(diǎn)中的模型參數(shù)。

        Figure 1 Data parallelism

        模型并行是指將機(jī)器學(xué)習(xí)模型切分成若干子模型,每個(gè)節(jié)點(diǎn)負(fù)責(zé)一個(gè)子模型的計(jì)算,節(jié)點(diǎn)之間存在依賴關(guān)系,工作節(jié)點(diǎn)之間需要相互等待信息完成計(jì)算;為保證子模型的聯(lián)系和依賴,相鄰的2個(gè)工作節(jié)點(diǎn)需要同時(shí)存儲(chǔ)子模型中的部分重復(fù)參數(shù),這會(huì)造成數(shù)據(jù)的冗余,在模型參數(shù)沒(méi)有達(dá)到超大規(guī)模級(jí)別時(shí),模型并行比數(shù)據(jù)并行低效。而且現(xiàn)在的機(jī)器內(nèi)存普遍增加,足夠加載整個(gè)神經(jīng)網(wǎng)絡(luò)模型,神經(jīng)網(wǎng)絡(luò)的復(fù)雜度不是性能的主要瓶頸。因此,大多數(shù)分布式機(jī)器學(xué)習(xí)采用的是數(shù)據(jù)并行。

        2.3 分布式深度學(xué)習(xí)的基本過(guò)程

        從整個(gè)數(shù)據(jù)處理過(guò)程來(lái)看,并行分布式深度學(xué)習(xí)主要包括劃分訓(xùn)練數(shù)據(jù)、分配訓(xùn)練任務(wù)、分配訓(xùn)練資源和整合分布式訓(xùn)練結(jié)果,以實(shí)現(xiàn)訓(xùn)練速度和訓(xùn)練精度的完美平衡。其基本過(guò)程如圖2所示,可以分為4個(gè)步驟:數(shù)據(jù)和模型劃分[22]、單機(jī)優(yōu)化[23]、節(jié)點(diǎn)之間的通信[24]以及數(shù)據(jù)和模型匯總[25]。

        Figure 2 Process of distributed deep learning

        3 分布式深度學(xué)習(xí)通信架構(gòu)

        3.1 參數(shù)服務(wù)器架構(gòu)

        PS架構(gòu)主要由2個(gè)部分組成:參數(shù)服務(wù)器PS節(jié)點(diǎn)和工作(worker)節(jié)點(diǎn),其整體架構(gòu)如圖3所示。PS節(jié)點(diǎn)中的灰色方塊表示全局參數(shù),worker節(jié)點(diǎn)中的黑色方塊表示模型參數(shù)副本。在PS架構(gòu)中,PS節(jié)點(diǎn)維持一個(gè)全局的共享參數(shù),共同完成所有參數(shù)的更新。每個(gè)工作節(jié)點(diǎn)被分配部分?jǐn)?shù)據(jù)和處理任務(wù),負(fù)責(zé)處理本地的訓(xùn)練任務(wù)。工作節(jié)點(diǎn)之間沒(méi)有通信,只通過(guò)客戶端接口與PS節(jié)點(diǎn)進(jìn)行通信,從PS節(jié)點(diǎn)獲取最新的模型參數(shù),并且將本地產(chǎn)生的模型更新發(fā)送到PS節(jié)點(diǎn)。PS節(jié)點(diǎn)必須從所有工作節(jié)點(diǎn)接收參數(shù),并將更新后的參數(shù)發(fā)送到工作節(jié)點(diǎn)[26]。

        Figure 3 PS architecture

        假設(shè)工作節(jié)點(diǎn)數(shù)量為N,每個(gè)節(jié)點(diǎn)中的數(shù)據(jù)量為K,PS節(jié)點(diǎn)從所有N個(gè)工作節(jié)點(diǎn)接收數(shù)據(jù),總共接收到的數(shù)據(jù)量為K*N。在梯度聚合之后,PS節(jié)點(diǎn)需要把數(shù)據(jù)發(fā)送給所有N個(gè)工作節(jié)點(diǎn),數(shù)據(jù)量也是K*N。則整個(gè)過(guò)程數(shù)據(jù)的傳輸次數(shù)為2*N次,傳輸?shù)臄?shù)據(jù)量為2*N*K。

        3.2 Ring Allreduce架構(gòu)

        Ring Allreduce架構(gòu)是一種基于環(huán)形拓?fù)鋵?shí)現(xiàn)的通信架構(gòu),圖4展示了這種架構(gòu)的總體工作流程,其中Rank表示每個(gè)GPU所屬的進(jìn)程號(hào),梯度同時(shí)在Rank之間傳遞。Ring Allreduce架構(gòu)中每個(gè)機(jī)器都是一個(gè)工作節(jié)點(diǎn),并且在邏輯上呈環(huán)狀布局。該架構(gòu)舍棄了中心參數(shù)聚合節(jié)點(diǎn),使數(shù)據(jù)在節(jié)點(diǎn)間環(huán)形流動(dòng)。在分布式深度學(xué)習(xí)過(guò)程中,可采用后向傳播法來(lái)計(jì)算梯度,后面層的梯度先計(jì)算,前面層的梯度后計(jì)算。Ring Allreduce架構(gòu)可以充分利用這個(gè)特點(diǎn),在前面層梯度計(jì)算的同時(shí)進(jìn)行后面層梯度的傳遞,從而進(jìn)一步減少訓(xùn)練時(shí)間。

        Figure 5 Data transmission and calculation in Scatter-Reduce stage

        Figure 4 The topological architecture of Ring Allreduce

        Ring Allreduce架構(gòu)的工作流程分為2個(gè)階段,分別是Scatter-Reduce和Allgather。Scatter-Reduce階段完成數(shù)據(jù)的分發(fā)和并行處理,各個(gè)工作節(jié)點(diǎn)將交換數(shù)據(jù),最后每個(gè)節(jié)點(diǎn)上會(huì)有部分最終結(jié)果;Allgather階段完成數(shù)據(jù)的全局同步和規(guī)約,每個(gè)工作節(jié)點(diǎn)交換包含的部分最終結(jié)果,使所有節(jié)點(diǎn)都有完整的最終結(jié)果。

        (1)Scatter-Reduce階段:假設(shè)此過(guò)程的目標(biāo)是求和,系統(tǒng)中有N個(gè)工作節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都有同樣包含K個(gè)元素的數(shù)組,在Scatter-Reduce的最后階段每個(gè)節(jié)點(diǎn)都應(yīng)該有一個(gè)包含原始數(shù)組和的并且尺寸大小相同的數(shù)組。如圖5步驟?所示,首先每個(gè)節(jié)點(diǎn)將本地?cái)?shù)組分為N塊,其中N是Ring Allreduce架構(gòu)中工作節(jié)點(diǎn)的數(shù)量。然后在步驟?中,第1次迭代發(fā)送和接收完成后,每個(gè)節(jié)點(diǎn)上有1個(gè)塊被累加,該塊是由2個(gè)節(jié)點(diǎn)的同樣位置的塊組成的和。這種數(shù)據(jù)傳遞方式一直持續(xù)到Scatter- Reduce階段結(jié)束,每個(gè)節(jié)點(diǎn)上都有1個(gè)塊包含部分最終結(jié)果,如步驟?中深色塊所示,該塊是所有節(jié)點(diǎn)對(duì)應(yīng)位置塊的和。

        (2)Allgather階段:每個(gè)工作節(jié)點(diǎn)交換包含最終結(jié)果的塊,使得所有節(jié)點(diǎn)獲得全部的最終結(jié)果。Allgather階段包含N-1次數(shù)據(jù)發(fā)送和接收,不同的是,Allgather階段不需要累加接收到的值,而是用接收到的數(shù)值代替原來(lái)塊中的數(shù)值。第1次迭代完成后,每個(gè)節(jié)點(diǎn)有2個(gè)包含最終結(jié)果的塊。在接下來(lái)的迭代中,會(huì)繼續(xù)這個(gè)過(guò)程直到結(jié)束,最終每個(gè)節(jié)點(diǎn)都會(huì)包含全部數(shù)組加和的結(jié)果。圖6展示了整個(gè)Allgather過(guò)程,可以看到所有數(shù)據(jù)傳輸和中間結(jié)果的值。

        Figure 6 Data transmission in Allgather stage

        整個(gè)Ring Allreduce工作過(guò)程中,在Scatter-Reduce階段每個(gè)工作節(jié)點(diǎn)同時(shí)發(fā)送和接收數(shù)據(jù),每次發(fā)送和接收的數(shù)據(jù)大小為K/N個(gè),傳輸N-1次;在Allgather階段每個(gè)節(jié)點(diǎn)也是發(fā)送并且接收K/N個(gè)數(shù)據(jù)N-1次。所以,每個(gè)節(jié)點(diǎn)傳輸數(shù)據(jù)的總次數(shù)為2*(N-1)次,數(shù)據(jù)總量為2*K*(N-1)/N,由于所有節(jié)點(diǎn)的數(shù)據(jù)傳輸同時(shí)進(jìn)行,當(dāng)整個(gè)系統(tǒng)的數(shù)據(jù)傳輸量為2*K*(N-1)時(shí),單個(gè)節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)量只有:

        T=2*K*(N-1)/N

        (1)

        由式(1)可知,在Ring Allreduce架構(gòu)中,當(dāng)工作節(jié)點(diǎn)數(shù)量增加時(shí),單個(gè)節(jié)點(diǎn)數(shù)據(jù)傳輸量近似為2*K,與系統(tǒng)中節(jié)點(diǎn)數(shù)量無(wú)關(guān)。

        3.3 Ring Allreduce和PS關(guān)鍵特點(diǎn)對(duì)比

        總的來(lái)說(shuō),Ring Allreduce和PS的關(guān)鍵特點(diǎn)對(duì)比如表1所示。其中N是節(jié)點(diǎn)數(shù)量,K是每個(gè)節(jié)點(diǎn)的數(shù)據(jù)量。Ring Allreduce是環(huán)形拓?fù)浼軜?gòu),每個(gè)節(jié)點(diǎn)的數(shù)據(jù)傳輸量隨著工作節(jié)點(diǎn)的增加近似保持不變,因此通信量并不會(huì)隨著節(jié)點(diǎn)增加而增加,可擴(kuò)展性較好。但是,由于只支持同步的并行方式,當(dāng)有節(jié)點(diǎn)出現(xiàn)故障時(shí)會(huì)影響整個(gè)的訓(xùn)練過(guò)程,因此容錯(cuò)性較差。PS是中心式的拓?fù)浼軜?gòu),其數(shù)據(jù)傳輸量隨著節(jié)點(diǎn)的增加線性增長(zhǎng),受傳輸帶寬的限制,可擴(kuò)展性較差,但是PS支持異步通信的方式,可以不受慢速或故障節(jié)點(diǎn)限制,因此容錯(cuò)率較高。

        綜上所述,Ring Allreduce架構(gòu)比傳統(tǒng)的參數(shù)服務(wù)器架構(gòu)更有效,通過(guò)在所有節(jié)點(diǎn)上分發(fā)計(jì)算和通信,消除了通信的瓶頸,有助于分布式深度學(xué)習(xí)在大規(guī)模集群上的應(yīng)用。

        Table 1 Key features comparison between Ring Allreduce and PS

        4 實(shí)驗(yàn)設(shè)置

        4.1 實(shí)驗(yàn)環(huán)境

        本文實(shí)驗(yàn)利用天河機(jī)集群的計(jì)算資源,在集群上部署分布式計(jì)算架構(gòu),統(tǒng)一調(diào)度和管理GPU。集群硬件環(huán)境的具體信息如表2所示。

        Table 2 Hardware environment

        實(shí)驗(yàn)中安裝的軟件和分布式深度學(xué)習(xí)框架如表3所示。

        Table 3 Software environment

        4.2 PS框架部署

        實(shí)現(xiàn)PS對(duì)比測(cè)試架構(gòu),進(jìn)行分布式深度學(xué)習(xí)訓(xùn)練,需要將TensorFlow中Cluster、Job和Task定義的計(jì)算集群映射到硬件上。Cluster、Job和Task基本功能如圖7所示,其中Task是進(jìn)程,屬于特定的作業(yè),一般一個(gè)GPU節(jié)點(diǎn)對(duì)應(yīng)一個(gè)Task[27]。Job劃分為PS Job和worker Job,PS Job用于完成參數(shù)的存儲(chǔ)、管理和更新工作;worker Job用來(lái)執(zhí)行操作。Cluster 集群系統(tǒng)是PS和worker的集合,包含任務(wù)運(yùn)行的完整設(shè)置。

        Figure 7 Schematic diagram of PS architecture cluster implemented by TensorFlow

        4.3 Ring Allreduce分布式深度學(xué)習(xí)框架的部署

        Ring Allreduce架構(gòu)可以高效管理、調(diào)度大量的設(shè)備和節(jié)點(diǎn),極大減少通信負(fù)載并且可擴(kuò)展到更多的節(jié)點(diǎn)。其中Horovod是對(duì)Ring Allreduce架構(gòu)的有效實(shí)現(xiàn)。

        Horovod是一個(gè)開(kāi)源的高性能深度學(xué)習(xí)分布式訓(xùn)練架構(gòu)[15]。Horovod能夠運(yùn)行在TensorFlow環(huán)境實(shí)現(xiàn)底層的通信。Horovod實(shí)現(xiàn)的框架如圖8所示,在數(shù)據(jù)并行方式下,每一個(gè)基于TensorFlow實(shí)現(xiàn)的模型從數(shù)據(jù)集中取得一份數(shù)據(jù),計(jì)算完成后通過(guò)底層Horovod進(jìn)行通信,更新全局模型。

        Figure 8 Implementation of Ring Allreduce based on Horovod

        Horovod是使用MPI進(jìn)行通信,允許MPI在集群中創(chuàng)建進(jìn)程并訪問(wèn)資源。MPI是消息傳遞接口,是一個(gè)可用于進(jìn)程間通信的函數(shù)庫(kù)[28,29]。如圖9所示,MPI啟動(dòng)所有進(jìn)程并為每個(gè)進(jìn)程分配Rank(Rank是Horovod框架中每個(gè)進(jìn)程的編號(hào),0號(hào)為主進(jìn)程,負(fù)責(zé)保存檢查點(diǎn)和廣播全局變量等)后,Horovod在相鄰的GPU節(jié)點(diǎn)之間建立通信鏈路,并將所有GPU節(jié)點(diǎn)在邏輯上按環(huán)狀組織,完成 Ring Allreduce集群通信架構(gòu)的創(chuàng)建。每個(gè)GPU對(duì)應(yīng)一個(gè)本地的Rank,并將其添加到TensorFlow設(shè)備列表中,組成并行工作的多個(gè)進(jìn)程。

        Figure 9 Diagram of MPI start process assigning Rank and binding GPUs

        4.4 數(shù)據(jù)集

        本文使用圖像領(lǐng)域中的經(jīng)典數(shù)據(jù)集Image- Net[30]、Cifar-10和Cifar-100[31]進(jìn)行實(shí)驗(yàn),3個(gè)數(shù)據(jù)集的具體參數(shù)如表4所示。

        Table 4 Description of three datasets used in the experiment

        Figure 10 Throughput of training data on PS architecture

        Figure 11 Throughput of training data on Ring Allreduce architecture

        5 實(shí)驗(yàn)評(píng)估

        5.1 Parameter Server架構(gòu)上的實(shí)驗(yàn)結(jié)果

        圖10是在PS架構(gòu)上使用Cifar-10、Cifar-100和ImageNet訓(xùn)練模型的實(shí)驗(yàn)結(jié)果,展示了訓(xùn)練AlexNet和ResNet-50過(guò)程中,訓(xùn)練數(shù)據(jù)的吞吐量,PS架構(gòu)的設(shè)置中使用了1個(gè)PS節(jié)點(diǎn),PS節(jié)點(diǎn)和worker節(jié)點(diǎn)處于同步參數(shù)更新模式。當(dāng)GPU數(shù)量為1~8時(shí),隨著GPU數(shù)量的線性增加,圖像的吞吐量也是線性增加的。當(dāng)GPU數(shù)量在8~32時(shí),處理圖像的吞吐量不再與GPU數(shù)量的增加成線性關(guān)系,其增大倍數(shù)小于GPU的增大倍數(shù)。

        5.2 Ring Allreduce架構(gòu)上的實(shí)驗(yàn)結(jié)果

        Ring Allreduce架構(gòu)上用Cifar-10、Cifar-100和ImageNet訓(xùn)練模型的實(shí)驗(yàn)結(jié)果如圖11所示。由于AlexNet網(wǎng)絡(luò)層數(shù)比ResNet-50的少很多,因此在處理同樣的數(shù)據(jù)集時(shí),AlexNet模型的圖像處理速度要明顯大于ResNet-50的速度。ImageNet中的圖像大小是Cifar-10/Cifar-100中的圖像大小的50倍左右,因此處理ImageNet圖像的速度明顯比處理Cifar-10和Cifar-100圖像的速度要慢。從實(shí)驗(yàn)數(shù)據(jù)可以看出,隨著GPU數(shù)量的成倍增加,在不同模型下,每秒處理的圖像數(shù)也在不斷增加,基本上與GPU數(shù)量的增加成正比。

        5.3 GPU性能

        圖12展示了在Ring Allreduce和PS架構(gòu)上處理Cifar-10、Cifar-100和ImageNet數(shù)據(jù)集時(shí)單個(gè)GPU的性能。由實(shí)驗(yàn)數(shù)據(jù)可以看出,隨著GPU數(shù)量的增加,PS架構(gòu)中單個(gè)GPU的性能逐漸下降,而在Ring Allreduce架構(gòu)中單個(gè)GPU的性能沒(méi)有明顯變化,維持在一個(gè)穩(wěn)定水平。但是,在GPU數(shù)量較少時(shí),PS架構(gòu)中單個(gè)GPU的性能要優(yōu)于Ring Allreduce中單個(gè)GPU的性能,這是由于實(shí)驗(yàn)中使用的PS架構(gòu)將一個(gè)CPU當(dāng)作PS節(jié)點(diǎn),將GPU當(dāng)作工作節(jié)點(diǎn),在工作節(jié)點(diǎn)較少時(shí),PS和工作節(jié)點(diǎn)間的通信不是影響性能的瓶頸,而CPU和GPU的組合能夠帶來(lái)性能上的提升。

        Figure 12 Single GPU changes throughput on Ring Allreduce and PS architecture

        5.4 PS和Ring Allreduce架構(gòu)可擴(kuò)展性對(duì)比

        實(shí)驗(yàn)結(jié)果分析采用GPU加倍時(shí)模型訓(xùn)練速度的增加倍數(shù)來(lái)顯示架構(gòu)的可擴(kuò)展性。圖13展示了與理想加速效果相比,Ring Allreduce和PS架構(gòu)的加速比。使用32個(gè)GPU時(shí),Ring Allreduce的加速比最高可達(dá)31,而PS架構(gòu)的加速比最高只有24。理想情況下增加的GPU性能不會(huì)有損失,擴(kuò)展效率是100%。表5分析了在Ring Allreduce和PS架構(gòu)下,使用AlexNet和ResNet-50模型處理Cifar-10、Cifar-100和ImageNet數(shù)據(jù)集的可擴(kuò)展性,其中Ring Allreduce架構(gòu)的可擴(kuò)展性最高達(dá)到97.2%,而PS架構(gòu)的可擴(kuò)展性最高只有78%。

        Table 5 Scalability of Ring Allreduce and PS architecture

        5.5 實(shí)驗(yàn)結(jié)果分析

        多組實(shí)驗(yàn)結(jié)果表明,Ring Allreduce架構(gòu)在實(shí)驗(yàn)研究的幾個(gè)項(xiàng)目上比傳統(tǒng)的PS架構(gòu)更有優(yōu)勢(shì)。在深度學(xué)習(xí)分布式訓(xùn)練中使用的GPU數(shù)量較多時(shí),Ring Allreduce架構(gòu)中單個(gè)GPU的性能明顯優(yōu)于PS架構(gòu)中的GPU的;Ring Allreduce的可擴(kuò)展性更好,能支持更多的GPU并行計(jì)算而不損失性能。

        從前面的實(shí)驗(yàn)結(jié)果可以很容易看出,Ring Allreduce架構(gòu)在所有模型上都有較好的擴(kuò)展性。因?yàn)镽ing Allreduce是一種帶寬優(yōu)化架構(gòu),這是其良好擴(kuò)展性基礎(chǔ)的作用。PS架構(gòu)受到帶寬的限制,GPU需要花費(fèi)較多的時(shí)間和資源用于通信,計(jì)算所占時(shí)間相對(duì)較少,導(dǎo)致GPU利用率降低。當(dāng)PS架構(gòu)中GPU數(shù)據(jù)越來(lái)越多時(shí),通信的代價(jià)會(huì)更高,整個(gè)訓(xùn)練性能的提升會(huì)越來(lái)越慢,而不是線性增長(zhǎng)。Ring Allreduce架構(gòu)中梯度通信占用GPU的資源較少,GPU資源被更多地用于模型計(jì)算,因此GPU利用率更高,GPU數(shù)量的增加不會(huì)影響到其帶寬,其計(jì)算性能提升與GPU數(shù)量的增加成線性關(guān)系,因而Ring Allreduce架構(gòu)的可擴(kuò)展性更高。

        從實(shí)驗(yàn)結(jié)果還可以看出,對(duì)于同樣的通信架構(gòu),訓(xùn)練ResNet-50的加速比要普遍高于訓(xùn)練AlexNet的加速比。這是因?yàn)镽esNet-50相比于AlexNet有更多的卷積層和計(jì)算量,ResNet-50計(jì)算和通信占比高,根據(jù)阿姆達(dá)爾定律[32]可知,其分布并行的加速比上限更高。由于深度神經(jīng)網(wǎng)絡(luò)屬于計(jì)算密集型網(wǎng)絡(luò),其計(jì)算量占比大,參數(shù)量相對(duì)較少,因此通信占比相對(duì)較少,使用2種分布式訓(xùn)練方法都可以取得一定的加速效果。但是,由于深層神經(jīng)網(wǎng)絡(luò)參數(shù)量會(huì)更大,需要進(jìn)行通信的數(shù)據(jù)更多,采用PS架構(gòu)會(huì)更快到達(dá)帶寬的性能瓶頸,使其加速比和Ring Allreduce架構(gòu)的加速比差別更大。

        Figure 13 Ring Allreduce and PS architecture model tranining time speedup

        6 結(jié)束語(yǔ)

        本文針對(duì)集中式的PS和去中心化的Ring Allreduce通信架構(gòu)進(jìn)行了性能分析,并且在大型GPU集群上部署了PS架構(gòu),實(shí)現(xiàn)了基于Horovod的Ring Allreduce架構(gòu)。此外,還對(duì)比了訓(xùn)練AlexNet和ResNet-50模型時(shí),Ring Allreduce和PS架構(gòu)中單個(gè)GPU的圖像處理速度和整體的可擴(kuò)展性。實(shí)驗(yàn)結(jié)果表明,Ring Allreduce架構(gòu)的最大擴(kuò)展效率為97.2%,而PS架構(gòu)的最大擴(kuò)展效率僅為78%。通過(guò)對(duì)2個(gè)通信架構(gòu)的性能分析可知,基于Ring Allreduce的集群通信架構(gòu)可以用來(lái)進(jìn)行大規(guī)模深度學(xué)習(xí)訓(xùn)練,能夠有效地利用集群中GPU的資源,并且保持高效的可擴(kuò)展性。

        猜你喜歡
        可擴(kuò)展性分布式架構(gòu)
        基于節(jié)點(diǎn)可信度的區(qū)塊鏈動(dòng)態(tài)分片模型
        基于FPGA的RNN硬件加速架構(gòu)
        功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        分布式光伏熱錢洶涌
        能源(2017年10期)2017-12-20 05:54:07
        恩智浦推出全新i.MX 8X 處理器,為工業(yè)應(yīng)用帶來(lái)更高的安全性、可靠性和可擴(kuò)展性
        汽車零部件(2017年3期)2017-07-12 17:03:58
        分布式光伏:爆發(fā)還是徘徊
        能源(2017年5期)2017-07-06 09:25:54
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
        電力監(jiān)控軟件的可擴(kuò)展性設(shè)計(jì)
        構(gòu)建高可擴(kuò)展性的物流裝備管理系統(tǒng)
        基于DDS的分布式三維協(xié)同仿真研究
        亚洲av成人片色在线观看| 天堂岛国精品在线观看一区二区| 中国av一区二区三区四区| 天堂视频在线观看一二区| 内射少妇36p亚洲区| 亚洲精品456| 午夜香蕉av一区二区三区| 国内嫩模自拍诱惑免费视频| 国产综合无码一区二区辣椒| 国产尤物精品自在拍视频首页| 中国免费一级毛片| 中文字幕一区二区av| 精品久久人妻av中文字幕| 欧美色aⅴ欧美综合色| 国产熟女av一区二区三区四季| 夜夜高潮夜夜爽免费观看| 国内成+人 亚洲+欧美+综合在线| 99精品视频69V精品视频| 国产毛多水多高潮高清| 国内老熟妇对白xxxxhd| avtt一区| 亚洲中文字幕精品久久吃奶| 久久久av波多野一区二区 | 天天爽天天爽天天爽| 日本成熟妇人高潮aⅴ| 手机久草视频福利在线观看 | 九一九色国产| 本道无码一区二区久久激情| 亚洲精品中文字幕乱码3| 精品综合久久久久久888蜜芽 | 免费女同毛片在线不卡| 欧美性猛交xxx嘿人猛交| 日本阿v网站在线观看中文 | 亚洲av天堂久久精品| 久久国产黄色片太色帅| 毛片大全真人在线| 亚洲欧洲一区二区三区波多野| 少妇激情高潮视频网站| 人人妻人人狠人人爽天天综合网| 亚洲综合AV在线在线播放| 按摩偷拍一区二区三区|