魏 嘉,張興軍,紀澤宇,李靖波,岳瑩瑩
(西安交通大學計算機科學與技術學院,陜西 西安 710127)
深度神經網絡DNN(Deep Neural Network)是人工智能領域AI(Artificial Intelligence)的重要分支[1]。近年來,由于DNN在自然語言處理[2]和目標識別[3]中里程碑式的表現,其在無人駕駛[4]、癌癥檢測[5]和復雜決策[6]等領域應用廣泛,尤其是在圖像領域,相比以支持向量機為代表的傳統算法,基于深度學習的AlexNet模型將分類準確率提高了2倍,從而引起了圖像識別社區以及學術界的興趣。DNN通過統計學習大量數據來有效表示輸入空間,進而獲取到數據高級特征[7 - 9]。這與早期使用專家設計的特定功能或規則的機器學習方法完全不同。
但是,DNN需要付出巨大的計算開銷來獲取良好的性能表現。隨著數據集規模的增大和模型復雜程度的增加,DNN在訓練過程中對計算強度和存儲空間的需求也成比例增長[10 - 12]。盡管通用計算引擎(尤其是GPU)已成為許多加速DNN訓練的主要手段[13 - 16],但人們對專業的DNN訓練加速技術有著更高的興趣。為了使訓練得到的DNN更具有競爭力,本質上需要高性能計算集群[17 - 19]。而對上述系統,需要對DNN訓練和推理(評估)等不同方面進行優化[20 - 24],以適應相應平臺特點,從而提高整體并發性。
近年來,以GPU、MIC和FPGA為代表的高能效異構計算平臺[10 - 12,13 - 16,17 - 26]廣泛應用于計算密集型任務中。 與此同時,這一理念也深刻影響著超級計算機的設計[25],如我國使用GPU加速卡的天河一號異構集群,采用MIC協處理器的天河二號,以及利用國產異構多核 CPU 制造的神威·太湖之光超級計算機均曾位列TOP500榜首。2020年6月,日本理化研究所和富士通公司基于ARM架構,搭載富士通開發的CPU“A64FX”的“富岳”超級計算機在最新的2020年TOP500榜單中奪魁,運算速度為415.5 PFlop/s。迄今為止,超算向E級發展仍是整個高性能計算HPC(High Performance Computing)社區面臨的巨大挑戰,其能否對深度神經網絡表現出良好的適用性亦是眾多科研機構和工業界重點關注的領域。
在中國的百億億級計劃中,天河三號采用了基于ARM的多核架構,處理器采用國產Phytium-2000+(FTP)和Matrix-2000+(MTP),并向公眾開放以供性能評估。
不斷發展的高性能計算機與日漸完善的并行框架為分布式并行深度學習奠定了基礎,如何結合深度神經網絡模型特點與高性能集群架構特性,利用并行編程框架來設計能充分發揮高性能平臺計算能力的神經網絡分布式計算方法顯得十分迫切。為了實現優化設計以充分發揮超算平臺的高性能,首先需要對具體的高性能計算集群進行對應的評測和調優。本文在天河三號原型機上,對神經網絡分布式訓練性能進行了評測和調優工作。
本文貢獻主要有以下4點:
(1)針對天河三號原型機獨特的架構特點,通過綜合考量神經網絡模型、神經網絡執行框架和測試模式3個維度,設計了一套具有針對性的實驗設計策略。
(2)將PyTorch的分布式框架移植到了天河三號原型機并實現了與天河MPI的適配工作。
(3)分別針對單Matrix-2000+節點、單Phytium- 2000+節點、多Matrix-2000+節點和多Phytium-2000+節點等多種情況設計實現了不同的測試策略。
(4)從計算和通信2個角度對測試所得到的結果進行了綜合分析。
隨著任務規模不斷增大、網絡層數不斷加深,深度神經網絡分布式訓練經歷了由采用多核、眾核等技術的單節點并行計算[7]到使用MPI(Message Passing Interface)、NCCL(NVIDIA Collective multi-GPU Communication Library)等技術的多節點分布式計算的發展變遷。單節點訓練加速研究集中在使用GPU、MIC或FPGA上[27 - 31]。
在GPU加速方面,Raina等人[14]最先使用GPU加速訓練深度玻爾茲曼機DBN(Deep Boltzmann Machine);Yadan等人[15]使用NVIDIA Titan顯卡實現了模型并行與數據并行的結合;Li等人[16]使用單塊NVIDIA Titan Tesla K40c GPU加速DBN,相比于Intel Core i7-4790K在預訓練過程中獲得了14~22×加速比;Bottleson 等人[13]使用OpenCL改進了Caffe框架,相比于 Intel CPU,實現了2.5~4.6倍加速。
在MIC加速方面,一般使用 OpenMP 并行編程模型。Olas等人[27]在 Intel Xeon Phi 7120P上以原生模式運行DBN,相較于Intel Xeon E5-2695v2 CPU最高實現了13.6×的加速比。Zlateski等人[28]在眾核CPU5110P上實現的三維卷積算法達到 90×加速比。
在FPGA加速方面,Suda 等人[29]在FPGA上實現了VGG和AlexNet,在VGG網絡中相較于 Intel I5處理器達到了5.5×加速比。Zhang等人[30]實現了性能可達近1.8 Tops/s的FPGA VGG網絡,相較于Intel Xeon E5-1530處理器加速比可達4.4×。Aydonat等人[31]實現了具有Winograd矩陣乘優化算法的FPGA AlexNet網絡,與此同時還優化了片內外帶寬,在Arria 10上達到了1 382 GFlop/s的峰值性能。
在多節點加速方面,多節點分布式并行執行深度神經網絡在國內外眾多集群系統中得到了廣泛的應用。Yin等人[32]在Summit超級計算機上提供了一套綜合考慮神經網絡計算核心、通信方式和數據I/O的分布式深度學習部署拓展策略;Song等人[17]使用神威·太湖之光超級計算機的4個節點針對MNIST網絡進行數據并行的深度置信網絡訓練,實現了對Intel Xeon E5 2420處理器 23×的加速比。Awan等人[18]針對具有80個NVIDIA Tesla K80 GPU加速卡的12個節點集群,提出了S-Caffe(Scalable and distributed Caffe adaptation)改進的深度神經網絡框架。Li等人[19]提出了swCaffe,將Caffe框架改造并移植到了神威·太湖之光上,在某些神經網絡的結構上得到了超越NVK40m GPU的處理速度。Moritz等人[26]聯合使用Caffe和Spark優化了SGD(Stochastic Gradient Descent)同步協議。
對超級計算機的測試和調優在HPC領域一直是一個重要且具挑戰性的課題。Peng等人[20]在天河二號計算機上采用AMBER(Assisted Model Building with Energy Refinement)并行加速策略訓練分子動力學模型,與原程序相比,實現了最高33倍加速;徐藝峰等人[21]在天河二號上,對ZnO-MOCVD(ZnO-Metal Organic Chemical Vapor Deposition)腔體數值模型進行測試,最大加速比可達45。朱傳家等人[22]探索了使用同步更新策略的去中心化和參數服務器分布式方式部署Caffe神經網絡在神威·太湖之光上,文中的實驗表明,同步方式下,去中心化分布式擴展方法相比參數服務器分布式擴展方法在通信效率方面具有明顯的優勢,對特定的模型通信性能提高可達98倍。You等人[23]針對天河三號原型機,對線性代數核計算表現進行了測試和分析,并針對天河三號原型機上的MTP和FTP以及用于比較的KNL處理器進行了性能比較。Li等人[24]提出了一種啟發式的拓撲感知映射算法OHTMA(Optimized Heuristic Topology-aware Mapping Algorithm),對天河三號原型機通信性能進行了評估和改進,實驗表明使用這種算法可以大大降低通信成本。
本節主要介紹本文分布式訓練的4個關鍵點:小批量梯度下降、分布式環境下的并行模型、一致性計算模型和天河三號原型機。
在深度神經網絡訓練過程中,一個非常重要的任務就是求解代價函數,最常用的優化算法是梯度下降算法,梯度下降算法包括批量梯度下降算法、隨機梯度下降算法和小批量梯度下降算法3種變體。批量梯度下降算法可以收斂到凸函數的最小值或非凸函數極小值,但每次執行需要遍歷所有樣本,所以存在無法在線更新、執行速度慢和大數據集無法使用的問題;隨機梯度下降算法每次只需輸入一個樣本,支持在線學習且訓練速度很快,但這種算法收斂過程波動很大且易陷入局部極??;小批量梯度下降算法汲取了二者優勢,每次更新選取一批(D個)數據進行訓練,能夠快速穩定地尋找到較優的訓練結果。因此,本文實驗選取了小批量梯度下降算法求解代價函數。
算法1隨機梯度下降算法MBGD(Mini Batch Gradient Descent)
輸入:需要進行訓練的樣本數據,S:樣本數據大小,D:每一批數據大小,t:迭代次數,z:每輪輸入數據;ω:網絡權值,l:損失函數,f:評估結果,g:評估結果梯度,Δω:神經網絡權值梯度。
輸出:本輪訓練完成后的權值。
1.fort= 0 to (|S|/D)×epochsdo
2.z←SampleBelements fromS;/*從數據集中獲取訓練樣本*/
3.ωmb←ω(t);//獲取權值參數
4.f←l(ωmb,z,h(z));//計算前向評估值
5.gmb←l(ωmb,f);//使用反向傳播值計算梯度
6.Δω←u(gmb,ω(0,…,t),t);//權值更新算法
7.ω(t+1)=ωmb+Δω;//保存新權值
深度學習目前主要通過模型與數據并行[33]來實現并行訓練。模型并行將神經網絡劃分成多個子模塊并指定給多個計算單元進行協同訓練;數據并行將分塊數據分配給多個計算單元,每個計算單元獨立完成自己數據集上的神經網絡訓練任務,并通過參數服務器或All-reduce等通信機制來完成參數交換。
在MBGD中,數據以N個樣本為批次進行處理。由于大多數運算符相對于N是獨立無關的,因此并行化的直接方法是在多個計算資源(處理器核或設備)之間分配小批量樣本執行工作。
可以認為,神經網絡在梯度下降中使用微型批次最初是由數據并行性驅動的。 Farber等人[34]使用多個矢量加速器微處理器(Spert-II)并行執行誤差反向傳播,以加速神經網絡訓練。為了支持數據并行性,他們提出了一種稱為“捆綁模式”的延遲梯度更新版本,其中梯度在更新權重之前被更新了數次,本質上等效于MSGD。
Raina等人[35]最早將DNN計算映射到數據并行架構(例如GPU),他們在受限波爾茲曼機上的訓練結果,使得CPU的速度提高了72.6倍。如今,絕大多數深度學習框架支持數據深度并行化,可以使用單個GPU(CPU)或者多個GPU(CPU)或多個GPU(CPU)節點的集群。
使用MapReduce可以將并行任務調度到多個處理器以及分布式環境中。在進行這些工作之前,科研人員已經對包括神經網絡在內的各種機器學習問題研究了MapReduce的潛在規模,從而促進了從單處理器學習向分布式存儲系統轉變的需求。
為了優化分布式數據并行訓練過程,研究人員提出了整體同步BSP(Bulk Synchronous Parallel)[36]、延遲同步SSP(Staleness Synchronous Parallel)和異步ASP(Asychronous Parallel)[37]等參數同步模型。
BSP通過設置同步柵欄的方式保證一組分布式計算單元能夠以相同迭代輪次更新模型參數,各個計算單元一輪迭代完成后根據同步柵欄機制等待主節點同步指令,主節點在得到所有計算單元的更新參數后更新參數并發送給各計算單元,進入新一輪迭代。常見的BSP模型系統包括Spark和Mahout[38]等。
ASP的各計算單元利用本地數據計算模型參數,計算單元完成一輪后,無需等待即可更新主節點模型參數,并獲取最新全局參數進入下一輪迭代。但是,這種不限制迭代輪數差的參數同步模型極易導致結果不收斂,為解決這一問題,有學者提出了SSP計算模型。
SSP的各計算單元同樣以不同輪次更新全局主節點模型參數,但是限制最快、最慢節點參數迭代輪次差小于延遲參數stale,從而既減弱了慢節點對整個系統運行速度的影響,又保證了模型參數收斂。常見的 SSP 模型系統包括Petuum[39]、深度學習系統[32,40,41]等。
天河三號原型機采用的處理器包括FT-2000+(FTP)和MT-2000+(MTP),從天津超算中心官方網站、飛騰信息技術有限公司官方網站和公開發表的論文資料可以知道,FTP包含64個ARMv8架構的FTC662處理器核,工作主頻在2.2~2.4 GHz,片上集成了32 MB的二級Cache,可提供204.8 GB/s訪存帶寬,典型工作能耗約為100 W;而MTP處理器包含128個定制的處理器核心,被組織為4個超級節點,主頻最高可達2.0 GHz,整個處理器的消耗為240 W。FTP和MTP的處理器架構如圖1所示。

Figure 1 FT-2000+processor architecture and MT-2000+processor architecture圖1 FT-2000+處理器架構和MT-2000+處理器架構
在天河三號原型機中,如表1所示,FTP和MTP都被劃分成以32個核作為一個計算節點,這么做的目的可能是為了提供更多的計算節點以滿足復雜的計算任務[23]。計算節點由批處理調度系統管理和分配。在FTP中,32個核共享64 GB內存,而在MTP中,32個核共享16 GB的內存。它們都帶有具有kernel v4.4.0的Kylin 4.0-1a操作系統。

Table 1 Basic situation of Tianhe-3 prototype system表1 天河三號原型機基本情況
除此之外,由國防科技大學設計實現的原型集群互連技術提供了200 Gbps雙向互連帶寬。原型機使用了Lustre進行分布式文件系統管理。與此同時,原型機提供了多個版本的MPI編譯實現,包括mpich 3.2.1和尚在調試階段的 openmpi 4.0.0。除此之外,還預置了LAMMPS、GROMACS等科學計算應用軟件。但遺憾的是,原型機沒有提供例如Caffe、PyTorch、TensorFlow等針對深度神經網絡的開發框架,所以本文的工作首先要從移植PyTorch的框架開始。
本文通過綜合考量神經網絡模型、神經網絡執行框架和測試模式3個維度提出了一套具有針對性的實驗設計方案,從而充分地測試天河三號原型機在神經網絡分布式訓練中的性能表現。
為了更好地測試天河三號原型機在神經網絡分布式訓練中的表現,本文選取了改進版的LeNet模型來實現圖像分類工作。它包含2個卷積層、2個池化層、3個激活層和2個全連接層。第1個卷積層,輸入通道數為1,輸出通道數為10,卷積核大小為5×5,步長為1,零填充。第2個卷積層,輸入通道數為10,輸出通道數為20,其余參數同第1個卷積層。2個池化層均使用最大池化方法。3個激活函數均使用ReLu函數,并對模型使用了drop_out優化方法。
本文將PyTorch分布式深度神經網絡訓練框架移植到了天河三號原型機上,相比Caffe,PyTorch有較好的內部優化和更優質的模型支持,但TensorFlow需要使用bazel聯網編譯,而天河三號原型機無法連接互聯網。除此之外,PyTorch還具有相當簡潔、高效、快速的框架,該框架的設計追求最少的封裝,符合人類思維,讓用戶盡可能地專注于實現自己的想法。本文選擇了最適合天河三號的MPI作為分布式底層通信架構,這也就決定了只能使用源碼安裝的方式在天河三號上部署PyTorch。
本文用于訓練的數據集是Mnist數據集,Mnist數據集是機器學習領域中非常經典的一個數據集,由60 000個訓練樣本和10 000個測試樣本組成,每個樣本都是一幅28×28的灰度手寫數字圖像。
天河三號原型機具有MT-2000+和FT-2000+ 2種不同的處理器節點,本文分別設計了MT-2000+和FT-2000+單節點、多進程并行訓練任務,MT-2000+多節點、多進程分布式訓練任務和FT-2000+多節點、多進程分布式訓練任務,以全面評估天河三號原型機上單節點的并行訓練性能,及其在多節點分布式訓練中的擴展性。為保證數據的魯棒性,本文所有實驗結果均為5次測試后的算術平均值。
根據第4節設計的實驗方案,本節分別針對MTP、FTP單節點和多節點展開實驗,并對實驗結果進行總結分析,對實驗結果出現的原因進行解釋。
為了充分探究在MT-2000+和FT-2000+不同眾核處理器節點上的性能,本文分別在2種不同處理器構成的1個節點上使用了最少1個進程到最多32個進程(根據天河三號的架構特點,1個節點最多使用32個處理器核,其中在本文實驗中MTP最多只能使用20個進程,否則會導致內存資源不足)分別對同一個分類任務進行訓練。本文采取數據并行的分布式訓練策略,以All-reduce機制作為通信策略,并使用嚴格的一致性同步協議(BSP),同時將訓練集上的數據均勻分配到各進程。
在單個MT-2000+節點上,分別使用1~20個進程進行10個迭代輪次后訓練的損失值如圖2e所示,在進程數為2時loss值最小為0.221 9,在進程數為17時loss值最大為0.245 7。相應地,在進程為2時總訓練時間最短為4.602 5 min,隨后整體訓練時間基本呈現隨進程數的增加而增加的趨勢(在進程數為8時有下降),在進程數為20時總訓練時間達到最大值37.064 1 min;與此同時,本文發現當進程數是2的冪次時,其訓練結果優于相鄰的進程數的訓練結果。
在單個FT-2000+節點上,分別使用1~32個進程進行10個迭代輪次后訓練的損失值如圖2a所示,在進程數為2時loss值最小為0.221 0,在進程數為26時loss值最大為0.262 0。相應地,在進程為2時總訓練時間最短為3.995 8 min,在隨后整體訓練時間也基本呈現隨進程數的增加而增加的趨勢(在進程數為8時有下降),在進程數為32時,總訓練時間達到最大值52.082 1 min。與在MTP上的結果類似,當本文使用的進程數為2的冪次時,其訓練結果會明顯地優于鄰近的進程數的訓練結果。
如圖2e~圖2h所示,在MT-2000+多節點訓練過程中,當使用的節點總數小于8時,在進程數為節點數2倍的情況下,可以在loss基本保持不變的情況下,達到最短訓練時間;當節點數大于或等于8時,選擇和節點數一致的進程數,可以在最小化loss值的同時達到最短訓練時間。在MTP選擇2節點時,由于天河架構共享內存設計的原因,在進程數達到64時就會出現內存溢出問題。

Figure 2 Training loss and total training time on MT-2000+ and FT-2000+ with different numbers of processors圖2 MT-2000+和FT-2000+單節點、多節點訓練損失值與訓練總時間
在FT-2000+多節點訓練過程中,當使用的節點總數小于或等于8時,與MTP類似,在進程數為節點數2倍的情況下,可以在loss基本保持不變的情況下,達到最短訓練時間,但是這個時間隨著節點數的增加將逐漸逼近進程數等同于節點數情況下的訓練時間。
根據前文所述的測試結果可以發現,在單節點的表現中,無論是FTP還是MTP,使用進程數為2的冪次時結果會優于鄰近的進程數選擇(訓練時間相差不多甚至更少的同時得到更低的訓練損失函數值),在10輪迭代后,2種處理器均在進程數為2時達到了最優的訓練結果,此時FTP的loss值比MTP的下降了約4%,同時訓練時間縮短了約13%。在后續的實驗中,本文將這2種情況下的迭代輪次提升到了50,此時MTP的loss為0.114 9,所花費的時間為22.889 0 min,FTP的loss為0.112 2,所花費的時間為19.180 9 min。綜上所述,單節點FTP上的損失函數值和訓練時間都略優于單節點MTP的損失函數值和訓練時間。
在多節點的表現中,當MTP使用的節點數小于8,FTP使用的節點數小于16時,與單節點上的結果一致,使用2倍于節點數的進程數可以在損失值與最優結果相差不超過0.002的情況下實現最短的訓練時間。然而,隨著節點數的增加,使用與節點數相同的進程數進行訓練的時間逐漸逼近使用2倍節點數的進程數的訓練時間,并在節點數達到16時,使用等同于節點數的進程數可以在損失函數值與最優結果相差不超過0.000 5時,達到最短的訓練時間;在多節點MTP訓練中,當節點數大于或等于8之后,使用等同于節點數的進程數進行訓練可以同時達到最小的損失函數值和最短的訓練時間。除此之外,本文還發現,在使用的進程數相同時,因為可以使用更多的處理器核,所以使用更多的節點一定能夠在損失值相差不超過0.001的基礎上達到最短的訓練時間。
針對在單節點和多節點不同進程數下訓練性能差異的一個解釋是,在使用單節點訓練時,使用2個進程比使用單個進程更能充分地發揮節點的計算性能,但當進程數繼續增大時,進程間通信的開銷所帶來的損失超過了進程數增加帶來的計算性能的增益,導致總體的訓練時間增加和訓練效果的下降;在MTP節點數小于8,FTP節點數小于或等于16時,原因與單節點上一致;當節點數繼續增加時,即使是2倍的進程數都會造成通信開銷的損失大于計算性能的提升,所以每個節點使用1個進程在這種情況下是最好的選擇。
進一步地,為了充分探究上述實驗結果出現的原因,如圖3所示,本文將整個實驗切分成了計算時間T1(主要包括神經網絡模型前向傳播和反向傳播以及損失值計算等的計算開銷)和通信時間T2(主要指使用All-reduce進行全局梯度更新時的通信開銷),總時間T為上述2種開銷的總和,如式(1)所示。
T=T1+T2
(1)

Figure 3 Communication and computing time of single node FT-2000+ and MT-2000+ 圖3 FT-2000+和MT-2000+單節點通信與計算時間

Figure 4 Computing time of single node MT-2000+ and FT-2000+ 圖4 MT-2000+和FT-2000+單節點計算時間
其中,計算開銷T1是為了訓練網絡而必須付出的開銷,如圖4所示,隨著進程數的增加,分配到單個進程的訓練子集數目將減少,因而在單個進程中需要進行的神經網絡前向傳播和反向傳播計算操作(包括卷積、池化、激活操作、本地梯度更新和損失值更新等)的開銷將減少;但與此同時,隨著進程數的增加,根據天河三號原型機的共享內存和共享Cache的架構特點,每個進程的Cache命中率將顯著下降,訪存沖突將明顯增加。在進程數剛開始遞增時,前者的影響大于后者,所以計算時間將隨著進程數的增大而增大;隨后,隨著進程數的繼續增大,訪存沖突的影響將遠遠大于計算開銷的增益,所以計算時間將隨進程數的增大顯著上升,導致了計算開銷隨著進程數的增加先減少后增大的變化趨勢。
同樣地,通信開銷T2是為了同步神經網絡中的權值在路徑上的損耗,它可以利用式(2)來計算:
T2=K×lbN×(α+S/B+S×C)
(2)
其中,α表示2個進程間的通信延遲,它將隨著處理器核在片上的分布方式與相對距離而變化,共享同一個Cache的處理器核的通信速度將明顯大于僅僅共享同一個共享內存的不同處理器核,而共享同一個共享內存的處理器核之間的通信速度又會顯著超過使用不同共享內存但在同一個節點內的不同處理器核,處于2個不同節點之間的處理器核的通信速度將會是最慢的。S(Size)代表執行All-reduce操作時,每一個進程所包含的數據塊大小,B(Bandwidth)代表2個進程間通信的帶寬,C(Computing)代表每字節的計算開銷(注意,這部分計算開銷是指在All-reduce過程中的計算開銷,而非上一節中所說的計算開銷),N(Nnumbers)代表進行通信的所有進程數目,另外,K代表所進行的All-reduce操作次數。本文實驗使用的Mnist數據集總共有60 000個實例,Batchsize大小固定為128,那么每執行一輪訓練,所需要的All-reduce操作數目是固定的,即:
K=60000/128
(3)
雖然每次參與迭代的進程數不同,但是單個進程進行交互的數據塊大小為恒定的神經網絡的權值W的大?。?/p>
S=W
(4)
所以,式(1)可以改寫為:
T2=458.75×lbN(α+W/B+W×C)
(5)
因此,由式(5)可知,在通信帶寬和每比特計算開銷確定的情況下,總體通信時間只與進程的個數和2個進程間的通信延遲相關。另外,在進程數為奇數時,每一個批次的通信開銷都會增加1個單位時間,所以在進程數為奇數時總通信開銷時間為:
T2=468.75×[lbN(α+W/B+W×C)+1]
(6)
所以,除了在FTP單節點的實驗之外,在其他的所有測試場景下,總通信時間隨著進程數的增大而增大,因為通信延遲的變化在進程數目較小時,隨進程數的增加變化不大。所以,式(6)中的總通信時間T2主要受到進程數N的影響,T2隨著N的增大而增大,但是隨著N的增大,T2增大的幅度在減小,這與對數曲線的趨勢相一致。
進一步地,如圖5所示,本文發現在FTP單節點的訓練場景中,當進程數超過20時,總體通信時間反而會隨著進程數的增加而減小,因為在進程數相對節點數目較大的時候,通信延遲和進程間的通信帶寬B會變得復雜而不能一概而論。所以,式(6)所示的通信延遲的計算方法應描述為:
(7)
從實驗中發現,根據式(7),當進程數繼續增加時,各進程間的總體通信延遲減小,總體通信帶寬增大,從而導致了通信的總時間減少。

Figure 5 Communication time of single node FT-2000+ and MT-2000+圖5 FT-2000+和MT-2000+單節點通信時間
本文在作者自己移植的PyTorch分布式框架之上使用改進的LeNet模型評估天河三號原型機的深度神經網絡分布式訓練性能。評估結果可用于評估邁向百億億級時的軟件和硬件設計。為了全面地評估和說明評估結果,本文分別為FTP和MTP的單節點和集群設計了相應的實驗,為軟件開發人員和硬件架構師提供了多角度的性能優化方向。
此外,本文將FTP和MTP處理器的性能進行了比較,反映了不同處理器體系結構設計之間的優缺點。本文希望能夠向HPC社區與天河三號的開發人員提供參考,裨益中國百億億級超級計算機計劃,從而為追求百億億級超級計算機的發展開辟道路。在今后的工作中,希望結合天河三號原型機計算節點的特點和網絡拓撲的特點,在PyTorch等平臺上對現有神經網絡分布式訓練框架結構進行進一步的調優,以更好地發揮天河三號原型機潛在的計算能力。