王蘊(yùn)韜
(中國信息通信研究院云計(jì)算與大數(shù)據(jù)研究所,北京 100191)
以機(jī)器學(xué)習(xí)為代表的人工智能技術(shù),在包括自然語言處理和機(jī)器視覺應(yīng)用等方面已有超越人類的出色表現(xiàn)。AI賦能領(lǐng)域的迅速擴(kuò)大勢(shì)不可擋,但隨之而來的是數(shù)據(jù)使用量和替代計(jì)算量劇增。根據(jù)OpenAI統(tǒng)計(jì),2012—2019年,隨著機(jī)器學(xué)習(xí)“大深多”模型的不斷演進(jìn),所需計(jì)算量已經(jīng)翻了30萬倍,模型所需算力呈現(xiàn)階躍式發(fā)展。據(jù)斯坦福《AI INDEX 2019》報(bào)告統(tǒng)計(jì),2012年之前,人工智能的計(jì)算速度緊追摩爾定律,每?jī)赡攴环?012年以后,則直接縮短為每三四個(gè)月翻一番。面對(duì)每20年才能翻一番的通用計(jì)算供給能力,算力顯然已捉襟見肘。在此背景下,通過擴(kuò)展單體計(jì)算能力已經(jīng)無法滿足實(shí)際工程需求,整合多個(gè)異構(gòu)系統(tǒng),采用分布式系統(tǒng)的計(jì)算策略完成機(jī)器學(xué)習(xí)的高效訓(xùn)練及推斷已經(jīng)成為業(yè)界的共同愿望。本文通過分析歸納機(jī)器學(xué)習(xí)計(jì)算特殊性及現(xiàn)有分布式計(jì)算性能分析理論的局限性,對(duì)比當(dāng)前AI領(lǐng)域?qū)Ψ植际綑C(jī)器學(xué)習(xí)系統(tǒng)通信系統(tǒng)優(yōu)化的理論與實(shí)踐,提出了通信系統(tǒng)優(yōu)化對(duì)于分布式機(jī)器學(xué)習(xí)系統(tǒng)性能的影響要素,并對(duì)下一步發(fā)展作出了展望。
經(jīng)過近兩年的研究及應(yīng)用實(shí)踐沉淀,產(chǎn)業(yè)界發(fā)現(xiàn)面向機(jī)器學(xué)習(xí)的計(jì)算具有不同于一般計(jì)算的獨(dú)特性,具體表現(xiàn)在三方面[1][25]:一是機(jī)器學(xué)習(xí)計(jì)算大部分場(chǎng)景僅需要低精度計(jì)算即可,一般推斷應(yīng)用場(chǎng)景下8 bit即可滿足95%以上需求,無需FP32、FP16等高精度計(jì)算;二是機(jī)器學(xué)習(xí)計(jì)算只需用到很小的操作指令集,在過去40年中開發(fā)的眾多基于CPU實(shí)現(xiàn)的通用程序并行運(yùn)行機(jī)制,例如分支預(yù)測(cè)器、推測(cè)執(zhí)行、超線程執(zhí)行處理核、深度緩存內(nèi)存層次結(jié)構(gòu)等,對(duì)于機(jī)器學(xué)習(xí)計(jì)算來說都是不必要的,機(jī)器學(xué)習(xí)只需要高性能運(yùn)行矩陣乘法、向量計(jì)算、卷積核等線性代數(shù)計(jì)算即可;三是分布式特性,隨著模型不斷增大,機(jī)器學(xué)習(xí)“大深多”模型已經(jīng)無法在單片芯片完成計(jì)算,多芯片、多場(chǎng)景的異構(gòu)計(jì)算需求使得機(jī)器學(xué)習(xí)計(jì)算必須考慮分布式的計(jì)算通信以及計(jì)算任務(wù)的協(xié)同調(diào)度,從而實(shí)現(xiàn)密集且高效的數(shù)據(jù)傳輸交互。由此可見,如何結(jié)合機(jī)器學(xué)習(xí)計(jì)算的特殊性,優(yōu)化分布式系統(tǒng)中各計(jì)算節(jié)點(diǎn)的通信方式,對(duì)于實(shí)現(xiàn)機(jī)器學(xué)習(xí)分布式系統(tǒng)的整體性能提升具有重要的實(shí)際意義。
以分布式計(jì)算為核心特性的機(jī)器學(xué)習(xí)系統(tǒng)與傳統(tǒng)分布式系統(tǒng)存在顯著不同:盡管基礎(chǔ)性操作指令集大大減少,計(jì)算精度要求相對(duì)降低,但面向多維向量的矩陣運(yùn)算大大增加,直接導(dǎo)致了系統(tǒng)內(nèi)節(jié)點(diǎn)通信需求的顯著提升。然而,當(dāng)前用于對(duì)計(jì)算系統(tǒng)性能進(jìn)行分析的兩大定律:阿姆達(dá)爾定律(Amdahls’ Law)[2]和古斯塔夫森定律(Gustafson’s Law)[3],由于其所需滿足的假設(shè)條件已經(jīng)無法與分布式機(jī)器學(xué)習(xí)系統(tǒng)完全契合,因此存在缺陷。
一是兩大定律仍然聚焦單個(gè)計(jì)算系統(tǒng)內(nèi)部的分布式并行進(jìn)行分析。由于提出時(shí)間相對(duì)較早,兩大定律對(duì)于計(jì)算性能的研究仍主要將計(jì)算系統(tǒng)作為單個(gè)計(jì)算單元的內(nèi)部整合進(jìn)行分析,并沒有統(tǒng)籌考慮復(fù)雜計(jì)算系統(tǒng)中共享內(nèi)存、分布式存儲(chǔ)以及I/O等關(guān)鍵通信技術(shù),而這些技術(shù)問題都是提升分布式計(jì)算性能的重要瓶頸。以機(jī)器學(xué)習(xí)為代表的科學(xué)計(jì)算正從計(jì)算密集向數(shù)據(jù)密集演進(jìn),分布式系統(tǒng)不僅僅需要在最短時(shí)間完成單一任務(wù)的高性能計(jì)算任務(wù),更需要在規(guī)定時(shí)間內(nèi)盡可能完成多個(gè)并行計(jì)算,即高吞吐量計(jì)算任務(wù)。僅僅聚焦單個(gè)計(jì)算系統(tǒng)內(nèi)部的并行計(jì)算分析定律已經(jīng)無法滿足實(shí)際工業(yè)生產(chǎn)需求。
二是兩大定律適用的假設(shè)前提與機(jī)器學(xué)習(xí)分布式計(jì)算不同。阿姆達(dá)爾定律的假設(shè)前提是所需執(zhí)行的計(jì)算任務(wù)規(guī)模固定,在此條件下增加計(jì)算單元的加速情況分析,而古斯塔夫森定律假設(shè)前提則是計(jì)算系統(tǒng)的算法、硬件、系統(tǒng)調(diào)度等均處于完全同步的理想狀態(tài),在此條件下進(jìn)行分布式計(jì)算效率分析,而實(shí)際應(yīng)用中,機(jī)器學(xué)習(xí)計(jì)算任務(wù)并非常量,系統(tǒng)內(nèi)關(guān)鍵要素也無法實(shí)現(xiàn)完美協(xié)同。最為關(guān)鍵的是,兩大定律對(duì)于加速比的定義均是假定算法在固定時(shí)間內(nèi)能夠收斂完成(fixed-time algorithm)而做出的,對(duì)于分布式機(jī)器學(xué)習(xí)而言,由于其計(jì)算任務(wù)并非常量,所需計(jì)算時(shí)間并非定值,加速比Sp無法繼續(xù)使用兩大定律所提出的時(shí)間比來計(jì)算,應(yīng)拓展為更廣泛的速度比值來計(jì)算[4]。
(1)
基于此定義,根據(jù)阿姆達(dá)爾定律,固定計(jì)算任務(wù)下分布式系統(tǒng)通過計(jì)算單元并行所能達(dá)到的極限加速比為:
(2)
根據(jù)古斯塔夫森定律,在給定的時(shí)間內(nèi),線性加速比極限由計(jì)算單元數(shù)量決定,其所能達(dá)到的理論極限加速比為:
(3)
這兩個(gè)理論極限值均假設(shè)其線性計(jì)算部分(Serial Work/Time)不受計(jì)算單元個(gè)數(shù)的限制,而實(shí)際上,由于每個(gè)計(jì)算單元啟動(dòng)和結(jié)束計(jì)算時(shí)間不一致,以及通信及同步開支帶來會(huì)隨著計(jì)算單元的增加而逐漸增大,該假設(shè)條件在多數(shù)場(chǎng)景下已經(jīng)不再適用[4]。
在現(xiàn)實(shí)工程實(shí)踐中,由于分布式計(jì)算系統(tǒng)所使用的通信系統(tǒng)不同,產(chǎn)業(yè)界目前已經(jīng)在一定范圍內(nèi)取得了超線性加速(Superlinear Speedup)的實(shí)踐,突破了當(dāng)前兩大加速定律劃定的理論極限。
從理論上來看,如果通過合適的通信系統(tǒng)優(yōu)化手段,保證合理的系統(tǒng)通信開支,則無論是對(duì)于持續(xù)性算法(Persistent Algorithm)還是非持續(xù)性算法(Non-persistent Algorithm)[5],其分布式系統(tǒng)的拓展甚至能夠突破線性加速邊際,實(shí)現(xiàn)超線性加速[6]。定義CC、MC分別表示計(jì)算時(shí)鐘周期和內(nèi)存訪問周期,P表示分布式計(jì)算單元數(shù)量,表示分布式計(jì)算及同步帶來的通信開支,若存在一個(gè)正數(shù)滿足:MCS>P×MCP+×CCP,同時(shí)保證0≤≤p以及CCS=CCP×(P-),則該并行系統(tǒng)能夠?qū)崿F(xiàn)超線性加速。該理論表明,在共享存儲(chǔ)的環(huán)境下,優(yōu)化通信手段,從而實(shí)現(xiàn)合適的通信開支,是提升分布式系統(tǒng)整體性能的重要手段。
該理論要求對(duì)于數(shù)據(jù)中單個(gè)元素的調(diào)用頻次c必須大于1。而以矩陣乘法為核心的分布式機(jī)器學(xué)習(xí)計(jì)算恰恰能夠滿足這一要求。存儲(chǔ)密集型計(jì)算場(chǎng)景下c=O(N),即矩陣中每一元素都將被訪問N次以執(zhí)行不同的操作。無論是在多GPU的物理環(huán)境[7]、云計(jì)算環(huán)境[8]還是基于不同計(jì)算單元的異構(gòu)計(jì)算環(huán)境[9],對(duì)于存儲(chǔ)密集型的分布式機(jī)器學(xué)習(xí)計(jì)算c?1的前提下,均可在一定范圍內(nèi)實(shí)現(xiàn)超線性加速(見圖1)。
圖1 計(jì)算單元并行數(shù)量在一定范圍內(nèi)能夠?qū)崿F(xiàn)的 超線性加速舉例[6]
分布式機(jī)器學(xué)習(xí)利用多個(gè)工作節(jié)點(diǎn)同時(shí)訓(xùn)練,相互加速合作來加速學(xué)習(xí)過程。假設(shè)某個(gè)任務(wù)中計(jì)算與通信的時(shí)間占比為1∶1,則無論使用多少臺(tái)機(jī)器,其加速比都將不超過兩倍。有效降低通信與計(jì)算時(shí)間占比是分布式機(jī)器學(xué)習(xí)系統(tǒng)實(shí)現(xiàn)高線性加速比的核心要素,而通信優(yōu)化手段的缺失直接影響了分布式計(jì)算的并行性能。以Intel與AMD 多核CPU對(duì)比為例,盡管AMD Opteron與Intel i7處理器緩存數(shù)量及各核心計(jì)算性能相當(dāng),但相關(guān)試驗(yàn)顯示,由于Intel L3緩存與主內(nèi)存間通信存在較大頻率差,其線性加速效率要遠(yuǎn)低于AMD Opteron實(shí)現(xiàn)[10]?;谠朴?jì)算環(huán)境對(duì)于虛擬計(jì)算資源的橫向及縱向擴(kuò)展能夠?qū)崿F(xiàn)超線性加速比,但在配置計(jì)算資源與存儲(chǔ)資源時(shí),需保證每個(gè)虛擬機(jī)中線程與計(jì)算核心通信帶寬的合理優(yōu)化[24]。
當(dāng)前,分布式機(jī)器學(xué)習(xí)系統(tǒng)主要有3種并行計(jì)算方式:在計(jì)算并行、數(shù)據(jù)并行與模型并行[11]。在計(jì)算并行模式下,所有工作節(jié)點(diǎn)共享同一公共存儲(chǔ),所有節(jié)點(diǎn)對(duì)于全部數(shù)據(jù)有完全且相同的訪問權(quán)限。本文闡述的單系統(tǒng)多計(jì)算核心物理環(huán)境即屬于這個(gè)范疇。在數(shù)據(jù)分布式模式下,訓(xùn)練數(shù)據(jù)由于體量過大無法在單節(jié)點(diǎn)存儲(chǔ),只能被切割后劃分至各個(gè)工作節(jié)點(diǎn),各節(jié)點(diǎn)能夠訪問的數(shù)據(jù)不同。常用技術(shù)包括隨機(jī)采樣法、置亂切分法以及數(shù)據(jù)維度劃分等方法。在模型并行模式下,訓(xùn)練模型由于過大無法在單節(jié)點(diǎn)存儲(chǔ)計(jì)算,因此一般同時(shí)使用數(shù)據(jù)維度劃分與模型線性分割的方式進(jìn)行切割分布,常用模型線性分割方法包括橫向按層劃分、縱向跨層劃分以及模型隨機(jī)劃分等。由于數(shù)據(jù)并行與模型并行方式極大減小了單節(jié)點(diǎn)內(nèi)存計(jì)算力要求,盡管并非最優(yōu)實(shí)踐,但也成為目前分布式機(jī)器學(xué)習(xí)系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)的主流方式。而不同節(jié)點(diǎn)間通信系統(tǒng)的設(shè)計(jì)及優(yōu)化則成為制約并行性能的核心因素。經(jīng)梳理分析,通信系統(tǒng)對(duì)于分布式機(jī)器學(xué)習(xí)系統(tǒng)的影響,可以從通信內(nèi)容、邏輯拓?fù)湟约皡f(xié)議設(shè)計(jì)3個(gè)維度進(jìn)行區(qū)分和闡述。
由于節(jié)點(diǎn)間通信總是發(fā)生在系統(tǒng)各節(jié)點(diǎn)每次迭代計(jì)算之后,因此不論通信內(nèi)容是訓(xùn)練數(shù)據(jù)還是模型中間計(jì)算結(jié)果,都應(yīng)盡量減少通信頻次,以達(dá)到縮減通信開支的目的。各個(gè)節(jié)點(diǎn)每次迭代計(jì)算后所交換的數(shù)據(jù)主要為梯度(Gradients)及模型參數(shù)(Parameter),由于模型體量固定,因此通信流量相對(duì)穩(wěn)定平滑,對(duì)于通信流量波動(dòng)影響較大的是訓(xùn)練數(shù)據(jù)的傳輸。而實(shí)踐證明在單次通信中傳輸大批量(Batch Size)訓(xùn)練數(shù)據(jù)能夠減少通信開支。盡管在訓(xùn)練數(shù)據(jù)切分通信時(shí)能夠造成瞬時(shí)的高網(wǎng)絡(luò)負(fù)載,但單次傳輸大批量訓(xùn)練數(shù)據(jù)能夠有效提升模型準(zhǔn)確率,降低通信頻次,減少通信開支,從而提升分布式機(jī)器學(xué)習(xí)系統(tǒng)的性能。從表1可以看出,盡管隨著計(jì)算節(jié)點(diǎn),尤其是訓(xùn)練數(shù)據(jù)批量的增加,系統(tǒng)通信量呈指數(shù)級(jí)增長(zhǎng),但在保證模型準(zhǔn)確率的前提下逼近了分布式計(jì)算的線性加速。繼續(xù)以ResNet-50為例,假設(shè)訓(xùn)練所需迭代次數(shù)為100次,批量大小為1024,使用兩個(gè)工作節(jié)點(diǎn)訓(xùn)練需要25萬次迭代;若將批量大小設(shè)置為8192,在16個(gè)工作節(jié)點(diǎn)完成訓(xùn)練,則只需要1.5625萬次迭代[12],大批量訓(xùn)練數(shù)據(jù)傳輸能夠有效降低通信開支。
表1 不同批量大小及硬件平臺(tái)下ResNet-50訓(xùn)練結(jié)果對(duì)比
梯度及模型參數(shù)的通信頻次對(duì)于分布式系統(tǒng)性能的影響,同時(shí)也與所使用的梯度下降算法息息相關(guān),可以看到不同梯度下降算法下,通過合理調(diào)整通信輪次,尤其是合理縮減通信輪次,能夠?qū)崿F(xiàn)分布式系統(tǒng)的線性加速。假設(shè)在K個(gè)計(jì)算節(jié)點(diǎn)環(huán)境下,模型參數(shù)及梯度的通信發(fā)生在每個(gè)節(jié)點(diǎn)進(jìn)行τ次迭代計(jì)算之后,若τ=1,則該算法為樸素梯度下降(Vanilla Parallel SGD),當(dāng)τ=T,即所有節(jié)點(diǎn)在結(jié)束全部本地計(jì)算時(shí)間T后僅進(jìn)行一次通信,則該算法為單次梯度下降(One-shot SGD),當(dāng)1<τ 表2 能夠?qū)崿F(xiàn)線性加速的算法及通信輪次 在減少通信頻次的基礎(chǔ)上,為傳遞更多信息,對(duì)梯度及模型參數(shù)進(jìn)行壓縮也成為目前產(chǎn)業(yè)界使用的主要方法。以具有3.4億參數(shù)的BERT模型為例,若使用32 bit來表征梯度及模型參數(shù),則單個(gè)節(jié)點(diǎn)間每次迭代數(shù)據(jù)量至少為1.2 GB,大量傳遞32 bit的單精度數(shù)據(jù)給通信系統(tǒng)帶來巨大壓力。然而正是由于機(jī)器學(xué)習(xí)并非需要高精度數(shù)值計(jì)算的特性,使通過減少非必要梯度及參數(shù)精度,提升帶寬通信效率成為可能。除本文第一部分論述的推斷場(chǎng)景外,產(chǎn)業(yè)界針對(duì)訓(xùn)練場(chǎng)景主要使用3種方法進(jìn)行壓縮:量化、稀疏化和分解。量化方法將非重要變量的精度降低,稀疏化方法只傳遞對(duì)于模型至關(guān)重要的參數(shù),而分解方法則將大型矩陣進(jìn)行拆分傳輸。這3種方法都能夠有效降低通信所需帶寬、降低網(wǎng)絡(luò)壓力,從而保證計(jì)算與通信占比的最優(yōu)值。 通信的拓?fù)渲傅氖欠植际綑C(jī)器學(xué)習(xí)系統(tǒng)中各工作節(jié)點(diǎn)間的連接方式,分為物理拓?fù)浜瓦壿嬐負(fù)鋬蓚€(gè)維度,本文主要聚焦于邏輯拓?fù)鋵?duì)于分布式機(jī)器學(xué)習(xí)系統(tǒng)的影響分析。對(duì)于模型復(fù)雜度不高的工業(yè)級(jí)實(shí)現(xiàn),基于大數(shù)據(jù)的分布式計(jì)算框架就能夠滿足計(jì)算需求,如消息通信接口(MPI)或MapReduce計(jì)算框架等。但對(duì)于數(shù)據(jù)量大,模型復(fù)雜度高的計(jì)算場(chǎng)景,MPI僅支持同步計(jì)算等局限性凸顯,業(yè)界選擇采用基于參數(shù)服務(wù)器的二分圖拓?fù)浣Y(jié)構(gòu),以支持使用異步通信的分布式訓(xùn)練。隨著機(jī)器學(xué)習(xí)的不斷普及,計(jì)算和通信只有通過緊密耦合才能夠?qū)崿F(xiàn)最優(yōu)配置,因此計(jì)算節(jié)點(diǎn)與通信節(jié)點(diǎn)統(tǒng)一抽象為數(shù)據(jù)圖模型的發(fā)展方向逐漸明晰,該拓?fù)淠軌虼_保任意相連圖節(jié)點(diǎn)間的通信能力。 基于分布式大數(shù)據(jù)技術(shù)的迭代式MapReduce/AllReduce通信拓?fù)浒ㄐ切?、樹形及蝶形等基礎(chǔ)拓?fù)浣Y(jié)構(gòu)。Map操作定義了數(shù)據(jù)分發(fā)及在本地節(jié)點(diǎn)上的計(jì)算,而Reduce則定義了模型聚合方法所用的加和與平均。其工程實(shí)現(xiàn)已被封裝至包括SparkMLib、SystemML以及REEF等軟件框架。該通信拓?fù)渥畲髥栴}在于隨著計(jì)算單元的線性增加,其通信開支也成線性增長(zhǎng),因此該拓?fù)浣Y(jié)構(gòu)下目前也使用了廣播的形式將計(jì)算結(jié)果及數(shù)據(jù)發(fā)送至所有計(jì)算單元。表3總結(jié)了3種拓?fù)浣Y(jié)構(gòu)傳輸量及傳輸次數(shù)的對(duì)比[11]。 表3 3種AllReduce拓?fù)浣Y(jié)構(gòu)通信情況對(duì)比(n表示數(shù)據(jù)量,K表示節(jié)點(diǎn)個(gè)數(shù)) 值得注意的是,以上3種典型拓?fù)鋬H支持同步通信,各個(gè)工作節(jié)點(diǎn)使用統(tǒng)一邏輯,同步時(shí)各個(gè)工作節(jié)點(diǎn)提供的信息必須針對(duì)同一組參數(shù),局限性很大。為更好適應(yīng)異步計(jì)算算法,基于參數(shù)服務(wù)器的二分圖拓?fù)浼軜?gòu)應(yīng)運(yùn)而生。該架構(gòu)主要分為工作節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)兩類,工作節(jié)點(diǎn)負(fù)責(zé)處理本地的計(jì)算訓(xùn)練任務(wù),并通過客戶端接口與參數(shù)服務(wù)器通信,獲取最新模型參數(shù)或上傳更新相關(guān)參數(shù)。該拓?fù)湎鹿ぷ鞴?jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)間通信,而工作節(jié)點(diǎn)間無須通信??梢钥闯?,該拓?fù)湎聟?shù)服務(wù)器側(cè)的通信帶寬是系統(tǒng)性能的瓶頸,當(dāng)工作節(jié)點(diǎn)數(shù)量較多時(shí),服務(wù)器端通信帶寬壓力巨大。因此,目前業(yè)界也提出了基于二分圖的樹狀拓?fù)?見圖2),其端側(cè)為工作節(jié)點(diǎn),工作節(jié)點(diǎn)的上級(jí)根為服務(wù)器,通過分層方式緩解服務(wù)器端的帶寬壓力。 圖2 基于二分圖的參數(shù)服務(wù)器樹狀拓?fù)?/p> 基于數(shù)據(jù)流的通信拓?fù)渲?,?jì)算被描述為有向無環(huán)數(shù)據(jù)流圖,圖中的每個(gè)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)處理或計(jì)算,當(dāng)兩個(gè)節(jié)點(diǎn)位于兩臺(tái)不同的機(jī)器上時(shí),它們之間便會(huì)進(jìn)行通信。以TensorFlow為代表的分布式計(jì)算框架就是基于數(shù)據(jù)流圖進(jìn)行的工程實(shí)現(xiàn),其原理見圖3。 圖3 數(shù)據(jù)流模式下分布式節(jié)點(diǎn)的組成部分[11] 傳統(tǒng)TCP/IP通信機(jī)制由于采用套接字(Socket)方式發(fā)送和接收信息,每個(gè)節(jié)點(diǎn)在發(fā)送數(shù)據(jù)前必須先創(chuàng)建套接字對(duì)象,增加了操作系統(tǒng)將數(shù)據(jù)按多種協(xié)議封裝的工作,而這對(duì)于分布式機(jī)器學(xué)習(xí)系統(tǒng)所需的低時(shí)延要求來說太過浪費(fèi)。因此,減少不必要通信開支,直接使用網(wǎng)絡(luò)硬件實(shí)現(xiàn)高效低延時(shí)的通信協(xié)議成為關(guān)注重點(diǎn)。目前產(chǎn)業(yè)界主要存在兩套協(xié)議:一是遠(yuǎn)程直接內(nèi)存訪問(Remote Direct Memory Access,RDMA)協(xié)議,二是基于InfiniBand的互聯(lián)網(wǎng)協(xié)議(IPoIB)。RDMA允許一臺(tái)機(jī)器直接對(duì)另一臺(tái)機(jī)器的內(nèi)存進(jìn)行讀寫操作,不需要操作系統(tǒng)層面的干預(yù),IPoIB則將IP數(shù)據(jù)報(bào)文直接封裝至InfiniBand網(wǎng)卡,能夠在不添加任何字段改動(dòng)的前提下運(yùn)行基于TCP/IP的應(yīng)用?;?00塊GPU實(shí)現(xiàn)的Inception-V3訓(xùn)練實(shí)踐表明,RDMA機(jī)制能夠比IPoIB實(shí)現(xiàn)更為顯著的性能提升,IPoIB能夠?qū)崿F(xiàn)53%的性能提升,而RDMA則能夠達(dá)到96%,近乎線性的加速提升[23]。 在實(shí)際工程實(shí)踐中,上述從三個(gè)維度總結(jié)闡述的各項(xiàng)通信優(yōu)化手段不能相互獨(dú)立、直接拆分,通信系統(tǒng)的優(yōu)化是一個(gè)融合了上述三大維度各個(gè)細(xì)項(xiàng)指標(biāo)的系統(tǒng)工程。因此,為更好實(shí)現(xiàn)計(jì)算與通信開支比例的最優(yōu)化調(diào)整,現(xiàn)從工程實(shí)踐維度提出對(duì)于分布式機(jī)器學(xué)習(xí)系統(tǒng)有效節(jié)約通信開支的三項(xiàng)原則性舉措:一是應(yīng)盡量降低分布式計(jì)算各個(gè)節(jié)點(diǎn)間的通信同步頻率,同時(shí)提高單次通信訓(xùn)練數(shù)據(jù)傳輸?shù)呐看笮?;二是?yīng)根據(jù)實(shí)際應(yīng)用需求,以壓縮精度或數(shù)據(jù)分拆的方式,減少高維模型單次梯度及模型參數(shù)的通信量;三是選擇合適的梯度下降算法及通信機(jī)制,結(jié)合模型及數(shù)據(jù)特點(diǎn),使用合理的通信拓?fù)浼八惴ńM合。 由于機(jī)器學(xué)習(xí)相較通用計(jì)算具有精度低、指令少、IO高的獨(dú)特優(yōu)勢(shì),未來工業(yè)級(jí)機(jī)器學(xué)習(xí)系統(tǒng)將依托面向通用性計(jì)算的分布式系統(tǒng)繼續(xù)向融合系統(tǒng)乃至專用系統(tǒng)演進(jìn)。在通信系統(tǒng)優(yōu)化上有如下3個(gè)層面的認(rèn)識(shí)。 (1)算法層面。當(dāng)前基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的分布式算法應(yīng)用較多,而對(duì)于遞歸神經(jīng)網(wǎng)絡(luò)(RNN)的分布式算法則幾乎沒有,對(duì)于τ>1的非凸優(yōu)化(Non-convex Optimization)分布式算法是否能夠?qū)崿F(xiàn)線性加速的研究也尚處空白。 (2)通信拓?fù)鋵用?。隨著未來人工智能應(yīng)用場(chǎng)景不斷泛化,端側(cè)與云側(cè)的交互、端側(cè)與端側(cè)的交互等復(fù)雜通信場(chǎng)景將層出不窮,當(dāng)前研究假設(shè)的星形、樹形以及蝶形邏輯拓?fù)錈o法滿足新型交互場(chǎng)景的分析需要。 (3)通信協(xié)議層面。盡管有損的RDMA協(xié)議在數(shù)據(jù)中心側(cè)已經(jīng)實(shí)現(xiàn)了對(duì)于TCP/IP的替代,但隨著云端通信,端端通信等應(yīng)用場(chǎng)景的增加,有損傳輸協(xié)議不考慮重傳丟包,僅實(shí)現(xiàn)最小通信開支的理念是否依然能夠取得線性加速仍有待進(jìn)一步的試驗(yàn)和檢驗(yàn)。 盡管分布式計(jì)算發(fā)展歷史已久,但應(yīng)用于分布式機(jī)器學(xué)習(xí)計(jì)算的通信系統(tǒng)優(yōu)化技術(shù)還處于新興階段,除上述考慮外,針對(duì)通信機(jī)制提出衡量分布式機(jī)器學(xué)習(xí)計(jì)算性能分析模型,以及相關(guān)評(píng)測(cè)工具的開發(fā)等工作將愈發(fā)重要,對(duì)于各類分布式機(jī)器學(xué)習(xí)系統(tǒng)網(wǎng)絡(luò)瓶頸及通信性能的分析也將成為未來的重要研究方向。 當(dāng)前分布式機(jī)器學(xué)習(xí)系統(tǒng)發(fā)展迅速,基于大規(guī)模計(jì)算集群的軟硬件優(yōu)化不斷推陳出新,集群間通信系統(tǒng)性能在不斷優(yōu)化。然而,通信系統(tǒng)優(yōu)化僅是分布式機(jī)器學(xué)習(xí)系統(tǒng)優(yōu)化的一個(gè)重要環(huán)節(jié),全面提升分布式機(jī)器學(xué)習(xí)系統(tǒng)效能還需要底層大數(shù)據(jù)高速調(diào)度、云原生環(huán)境下AI專屬算力虛擬化及管理編排等更多技術(shù)合集的共同發(fā)展。隨著AI賦能進(jìn)程的不斷深入,分布式機(jī)器學(xué)習(xí)系統(tǒng)發(fā)展必將得到更多聚焦,同時(shí)也將對(duì)數(shù)據(jù)中心等新基建發(fā)展產(chǎn)生深刻影響。4.2 通信的拓?fù)?/h3>
4.3 通信的協(xié)議
5 用于分布式機(jī)器學(xué)習(xí)的通信系統(tǒng)優(yōu)化展望
6 結(jié)束語