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

        ?

        基于鯤鵬和昇騰異構(gòu)平臺(tái)的單節(jié)點(diǎn)HPL-AI 設(shè)計(jì)與優(yōu)化

        2024-03-28 15:15:32吳昊天任長青陸璐徐鵬翔楊凱
        關(guān)鍵詞:優(yōu)化

        吳昊天 任長青 陸璐 徐鵬翔 楊凱

        (1.華南理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,廣東 廣州 510006;2.鄭州信大先進(jìn)技術(shù)研究院,河南 鄭州 450001;3.鵬城國家實(shí)驗(yàn)室,廣東 深圳 518000)

        隨著大數(shù)據(jù)時(shí)代的到來,數(shù)值運(yùn)算變得無處不在,其規(guī)模也在逐漸擴(kuò)大。例如,訓(xùn)練和優(yōu)化大規(guī)模神經(jīng)網(wǎng)絡(luò)模型需要進(jìn)行大量的數(shù)值計(jì)算,在物理學(xué)、化學(xué)、生物學(xué)等領(lǐng)域也需要進(jìn)行大規(guī)模數(shù)值計(jì)算,用于模擬天體、氣候、分子結(jié)構(gòu)等科學(xué)問題。傳統(tǒng)的數(shù)值運(yùn)算模型已無法勝任一些高難度計(jì)算任務(wù),因此高性能計(jì)算(HPC)應(yīng)運(yùn)而生。目前,HPL(High Performance LINPACK)基準(zhǔn)是業(yè)界使用最廣泛的高性能計(jì)算機(jī)浮點(diǎn)運(yùn)算能力測試程序。其標(biāo)準(zhǔn)[1]已經(jīng)成為TOP500 超級計(jì)算機(jī)[2]排序的國際基準(zhǔn)。TOP500 的排名每半年更新一次,其中每臺(tái)超級計(jì)算機(jī)的得分取決于其運(yùn)行HPL 基準(zhǔn)程序的快慢,并且HPL 基準(zhǔn)測試結(jié)果最終得分的占比非常高。雖然HPL 基準(zhǔn)測試的得分是TOP500 超級計(jì)算機(jī)性能排名的關(guān)鍵因素,但也有其他因素影響最終排名,例如系統(tǒng)架構(gòu)、節(jié)點(diǎn)數(shù)、內(nèi)存帶寬和網(wǎng)絡(luò)帶寬等。因此,需要在超級計(jì)算機(jī)的設(shè)計(jì)和部署中平衡多種因素,以提高HPL基準(zhǔn)測試的得分。

        HPL 基準(zhǔn)是基于雙精度浮點(diǎn)運(yùn)算的測試方案,其通過運(yùn)行高性能計(jì)算應(yīng)用程序(如仿真模型[3])來評估超級計(jì)算機(jī)的雙精度浮點(diǎn)運(yùn)算性能。盡管HPL已是衡量TOP500 超級計(jì)算機(jī)性能的可靠基準(zhǔn),但現(xiàn)代超級計(jì)算機(jī)不僅用于仿真模型等仿真應(yīng)用,還用于AI 領(lǐng)域。由于AI 模型的訓(xùn)練涉及混合精度運(yùn)算,因此HPL 基準(zhǔn)無法完全勝任AI 領(lǐng)域浮點(diǎn)運(yùn)算性能的評估。

        近年來,為了解決AI 模型碎片化和多樣化問題,AI大模型被提出并受到了廣泛關(guān)注。在生成式預(yù)訓(xùn)練語言模型方面,OpenAI 在2023 年提出的GPT-4[4]包含數(shù)千億個(gè)參數(shù),在一系列語言處理任務(wù)上創(chuàng)下了極佳的表現(xiàn)。該模型可以在文本生成方面表現(xiàn)出驚人的創(chuàng)造力。此外,GPT-4還可以識別和分析圖像,并結(jié)合用戶的文本輸入來回答問題。AI大模型通過“預(yù)訓(xùn)練大模型、微調(diào)下游任務(wù)”的方式為該問題提供了通用解決方案。其可以從大量有標(biāo)簽和無標(biāo)簽數(shù)據(jù)中有效地捕獲知識,極大地?cái)U(kuò)展了模型的泛化能力。但由于AI 大模型的訓(xùn)練速度依賴于系統(tǒng)的運(yùn)算能力,因此,用于AI 大模型的高性能計(jì)算系統(tǒng)的數(shù)值運(yùn)算性能成為一個(gè)重要指標(biāo),并需要一個(gè)新的基準(zhǔn)測試來評估。

        HPL-AI[5]是一個(gè)適用于AI 超級計(jì)算機(jī)的基準(zhǔn)測試程序,被用來測量高性能計(jì)算機(jī)使用混合精度技術(shù)求解大型線性方程組的速度。在AI 模型中,混合精度技術(shù)被廣泛用于加速模型的訓(xùn)練,因此,HPL-AI 基準(zhǔn)的測試結(jié)果已經(jīng)成為評估用于執(zhí)行AI大模型的高性能計(jì)算系統(tǒng)性能的重要指標(biāo)。盡管HPL-AI 基準(zhǔn)的規(guī)則是固定的,但其在不同硬件平臺(tái)上的具體實(shí)現(xiàn)存在差異,且具有一定挑戰(zhàn)性。目前,基于鯤鵬和昇騰異構(gòu)平臺(tái)的HPL-AI 基準(zhǔn)測試還未被實(shí)現(xiàn),其主要難點(diǎn)涵蓋硬件異構(gòu)、軟件異構(gòu)和架構(gòu)異構(gòu)3個(gè)方面。

        近10 年來,高性能計(jì)算性能測試方面的課題被廣泛研究。測試求解大型線性方程組的速度是評價(jià)高性能系統(tǒng)性能的常用方法。HPL采用傳統(tǒng)的雙精度模式來求解線性方程組,其浮點(diǎn)運(yùn)算速度會(huì)受到雙精度運(yùn)算速度的影響?;旌暇惹蠼獬浞掷昧说途扔?jì)算的高速特性,為加速高性能計(jì)算應(yīng)用帶來了更多可能。特別是隨著專業(yè)的低精度集成計(jì)算單元出現(xiàn),傳統(tǒng)的高性能計(jì)算算法更需考慮使用混合精度進(jìn)行計(jì)算來提高性能[6]。Moler等[7]證明了采用混合精度求解器求解線性方程組是一種有效的方法。Kurzak 等[8]基于Cell 處理器和混合精度方法設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)線性代數(shù)例程,其性能比標(biāo)準(zhǔn)的雙精度實(shí)現(xiàn)高出近一個(gè)數(shù)量級。這充分體現(xiàn)了混合精度求解器在專用處理器上有著巨大潛力。Lei等[9]將混合精度求解器應(yīng)用于CPU+CPGPU異構(gòu)集群的HPL 中,其浮點(diǎn)運(yùn)算速度相比普通HPL 的平均加速比達(dá)到了2~3。Baboulin 等[10]通過使用32 位和64 位浮點(diǎn)運(yùn)算的組合,大幅增強(qiáng)了許多密集和稀疏線性代數(shù)算法的性能,并能同時(shí)保證所得結(jié)果為64 位精度。Haidar 等[11-12]提出并驗(yàn)證了FP16 用于混合精度求解的可行性,并展現(xiàn)了其在良態(tài)矩陣上的優(yōu)勢。

        低精度計(jì)算同樣會(huì)帶來一定程度的精度損失。精度損失對于某些對精度敏感的應(yīng)用具有較大的負(fù)面影響。因此,混合精度求解器的迭代優(yōu)化模塊是必要的。然而,迭代優(yōu)化會(huì)增加一定的計(jì)算時(shí)間,這便要求迭代優(yōu)化方案能夠在保證精度符合要求的同時(shí)性能足夠好。Demmel 等[13]提出了一種求解線性方程組的超精確迭代優(yōu)化算法新變體,其只需很少的額外工作就能返回任何范數(shù)的最大相對誤差界及傳統(tǒng)法向誤差界。Oktay 等[14]使用多級混合精度迭代優(yōu)化平衡了混合精度計(jì)算的性能與準(zhǔn)確性,并提高了其可用性。Amestoy等[15]將混合精度LU分解與稀疏近似因式分解相結(jié)合,大大減少了時(shí)間和內(nèi)存消耗,并利用迭代優(yōu)化彌補(bǔ)了精度損失。

        深度學(xué)習(xí)模型的部署往往受到平臺(tái)的功率或計(jì)算資源的限制,其部署的可行性問題逐漸顯現(xiàn)。為了解決這一問題,許多方案將混合精度框架應(yīng)用于深度學(xué)習(xí)來突破性能的限制[16]。Micikevicius 等[17]提出了使用半精度訓(xùn)練神經(jīng)網(wǎng)絡(luò)而不會(huì)降低模型精度或必須修改超參數(shù)的方案,這使得內(nèi)存需求減半,并且有助于提升模型在最新GPU 上的運(yùn)算速度。Latotzke 等[18]提出了高效的混合精度CNN 加速器。Das 等[19]實(shí)現(xiàn)了基于整數(shù)運(yùn)算的卷積神經(jīng)網(wǎng)絡(luò)混合精度訓(xùn)練?;旌暇瓤蚣茉贏I 應(yīng)用中得到廣泛應(yīng)用,使得專用處理器也受到廣泛關(guān)注,用于評估混合精度計(jì)算性能的HPL-AI 基準(zhǔn)應(yīng)運(yùn)而生。HPL-AI 基準(zhǔn)的CPU 版本參考實(shí)現(xiàn)[20]于2019 年被提出。Kudo等[21-22]在超級計(jì)算機(jī)Fugaku[23]上成功部署了HPL-AI 基準(zhǔn)測試,使其成為世界上第1 臺(tái)在浮點(diǎn)算術(shù)性能上超過Exa-scale的超級計(jì)算機(jī)[24]。

        不同于現(xiàn)有在NVIDIA 和AMD 等平臺(tái)上部署HPL-AI 基準(zhǔn)的研究,本研究基于鯤鵬和昇騰異構(gòu)平臺(tái)設(shè)計(jì)并實(shí)現(xiàn)單節(jié)點(diǎn)HPL-AI 基準(zhǔn)測試,同時(shí)對其計(jì)算精度進(jìn)行驗(yàn)證,以證明測試結(jié)果的準(zhǔn)確性。通過采用循環(huán)任務(wù)分配和連續(xù)數(shù)據(jù)傳輸?shù)葍?yōu)化策略保證各個(gè)AI 處理器之間的計(jì)算負(fù)載更為均勻,并縮短數(shù)據(jù)傳輸?shù)臅r(shí)間。

        1 HPL-AI基準(zhǔn)規(guī)則

        本節(jié)對HPL-AI 基準(zhǔn)的規(guī)則進(jìn)行簡要介紹。HPL-AI與HPL類似,本質(zhì)上都是利用LU分解[25]來求解大型線性方程組,即將一個(gè)方陣A分解為一個(gè)下三角矩陣L和一個(gè)上三角矩陣U的乘積。HPL 中采用的是雙精度模式,而HPL-AI 采用的是混合精度模式。因此HPL-AI 由兩個(gè)重要部分組成:①方陣的混合精度LU分解;②使用①得到的LU因子進(jìn)行迭代優(yōu)化。

        1.1 HPL-AI矩陣的特征

        HPL-AI基準(zhǔn)中要求解的線性方程組形如:

        式中,N為矩陣A的階。

        HPL-AI 中的矩陣和HPL 中的矩陣一樣,均是隨機(jī)生成的。但不同的是HPL-AI 中的矩陣生成器需要保證初始矩陣是對角線占優(yōu)的矩陣。本研究的矩陣隨機(jī)生成器參考了HPL-AI 基準(zhǔn)CPU 版本參考實(shí)現(xiàn)中的隨機(jī)矩陣生成器。設(shè)ai,j為矩陣中的元素,其定義如下所示:

        式中,drandlcg(·)為一個(gè)使用線性同余發(fā)生器(LCG)生成偽隨機(jī)數(shù)的函數(shù),而LCG是一種基于線性代數(shù)和模運(yùn)算的算法,用于生成在給定范圍內(nèi)的偽隨機(jī)整數(shù)序列,其遞推公式如下所示:

        式中,xn為生成的第n個(gè)偽隨機(jī)數(shù),a、c和m為在初始化時(shí)設(shè)定的常數(shù),mod表示取模運(yùn)算,將取模的結(jié)果作為下一個(gè)偽隨機(jī)數(shù)。

        Levy-Desplanques 定理指出:如果一個(gè)矩陣是嚴(yán)格對角占優(yōu)的(SDD),那么其一定是非奇異矩陣,并且在沒有旋轉(zhuǎn)操作的LU 分解中的增長因子也很小[26]。然而,式(2)表明矩陣A是一個(gè)弱對角占優(yōu)(WDD)矩陣,因此矩陣A有可能是奇異矩陣。但由于非對角線元素的隨機(jī)性,在HPL-AI 基準(zhǔn)測試中生成的矩陣基本都是非奇異的,并且其增長因子的變化類似于SDD 矩陣。因此,HPL-AI 基準(zhǔn)不需要像HPL 基準(zhǔn)那樣在LU 分解過程中執(zhí)行旋轉(zhuǎn)操作[27]。

        作為一個(gè)簡單的示例,圖1 給出了一個(gè)8×8 大小的矩陣A,并將其以2×2 的塊大小進(jìn)行分塊,其中不同灰度表示不同的分塊。矩陣的對角線元素是同行其他元素的和,以確保矩陣具有對角占優(yōu)的特性。

        圖1 矩陣A的示例Fig.1 An example of matrix A

        1.2 混合精度的LU分解

        圖2 HPL-AI中的LU分塊分解Fig.2 LU block decomposition in HPL-AI

        由于矩陣乘法中使用的是半精度算子,使得最終分解出來的因子也是半精度的,這會(huì)造成一定的精度損失,從而導(dǎo)致結(jié)果無法通過準(zhǔn)確性檢驗(yàn),因此混合精度LU分解的結(jié)果還需要進(jìn)一步的處理。

        1.3 迭代優(yōu)化

        迭代優(yōu)化的整個(gè)過程都是雙精度的,其目的是得到符合精度要求的結(jié)果。結(jié)果是否符合要求主要通過后向誤差E來定義:

        式中,x為LU 分塊分解求出的解,?= 1.1 × 10-16,為64位浮點(diǎn)數(shù)的機(jī)器精度。在迭代優(yōu)化結(jié)束時(shí),若后向誤差的值小于16,則認(rèn)為結(jié)果符合精度要求。迭代優(yōu)化的結(jié)束條件為達(dá)到最大迭代次數(shù)或后向誤差滿足要求。算法1給出了迭代優(yōu)化的偽代碼,其中L和U為由矩陣A通過LU分解得到的下三角矩陣和上三角矩陣,xcount為每輪迭代的解向量,rcount為每輪迭代解的誤差向量。

        算法1 迭代優(yōu)化1:count←0 2:xcount←U-1L-1b 3:while count

        HPL-AI基準(zhǔn)測試的結(jié)果由LU 分塊分解和迭代優(yōu)化所需的時(shí)間決定,記為T,單位為s。HPL-AI基準(zhǔn)測試的最終結(jié)果H定義如下:

        2 單節(jié)點(diǎn)HPL-AI的實(shí)現(xiàn)

        本節(jié)提出了基于鯤鵬和昇騰異構(gòu)平臺(tái)的單節(jié)點(diǎn)HPL-AI 基準(zhǔn)測試的實(shí)現(xiàn),并對異構(gòu)平臺(tái)和優(yōu)化策略進(jìn)行了詳細(xì)介紹。

        2.1 鯤鵬和昇騰異構(gòu)平臺(tái)

        CANN(Compute Architecture for Neural Networks)是華為公司針對AI 場景推出的異構(gòu)計(jì)算架構(gòu)。CANN 通過提供多層次的編程接口,支持用戶快速構(gòu)建AI應(yīng)用和服務(wù)。異構(gòu)平臺(tái)架構(gòu)如圖3所示,從圖中可以看出,CANN 是以鯤鵬和昇騰為基礎(chǔ)的。昇騰AI 芯片只支持單精度和半精度浮點(diǎn)運(yùn)算,而鯤鵬CPU能夠支持所有精度的浮點(diǎn)運(yùn)算。

        圖3 鯤鵬和昇騰異構(gòu)平臺(tái)架構(gòu)Fig.3 Heterogeneous platform architecture of Kunpeng and Ascend

        CANN 主要分為兩個(gè)部分:Host 和Device。Host對應(yīng)CPU處理器,負(fù)責(zé)管理應(yīng)用的運(yùn)行邏輯以及控制Device 的運(yùn)行流程。Device 對應(yīng)AI 處理器,主要負(fù)責(zé)數(shù)值運(yùn)算工作。在單節(jié)點(diǎn)中,硬件環(huán)境由1 個(gè)Host 和8 個(gè)Device 構(gòu)成。Host 主要負(fù)責(zé)控制HPL-AI 的整體運(yùn)行過程和部分?jǐn)?shù)據(jù)運(yùn)算;Device負(fù)責(zé)大部分耗時(shí)的數(shù)據(jù)運(yùn)算。HPL-AI 中的數(shù)據(jù)運(yùn)算主要為LU分解、Strsm、面元更新、Hgemm 和迭代優(yōu)化。其中,Hgemm 是半精度運(yùn)算,且是最為耗時(shí)的部分,由Device 負(fù)責(zé);LU 分解、Strsm、面元更新為單精度運(yùn)算,由Host負(fù)責(zé)。由于Device只能支持單精度和半精度的運(yùn)算,所以雙精度的迭代優(yōu)化只能由Host負(fù)責(zé)。

        2.2 多個(gè)Device的任務(wù)分配

        Device負(fù)責(zé)運(yùn)算量最大的半精度矩陣乘法,而單節(jié)點(diǎn)中Device 數(shù)量為8個(gè),每輪所涉及的矩陣乘法是一個(gè)整體,要平衡Device之間的運(yùn)算負(fù)載就需要對矩陣乘法進(jìn)行分割。HPL-AI 基準(zhǔn)采用的是分塊LU 分解策略,因此,其初始矩陣A是分塊的。矩陣的塊狀特性可以被用來對其進(jìn)行合理分割。

        如圖4所示,矩陣A被分割成5個(gè)小塊。這5個(gè)小塊分別與矩陣B相乘來完成大矩陣乘法的分割,此時(shí)可以將5個(gè)小矩陣乘法均勻地分配給Device 來達(dá)到平衡運(yùn)算負(fù)載的目的。此時(shí),各個(gè)Device都需要保存完整的矩陣B,這會(huì)占據(jù)額外存儲(chǔ)空間。

        圖4 矩陣乘法的分割Fig.4 Partition of matrix multiplication

        在HPL-AI基準(zhǔn)測試中,隨著迭代的持續(xù)進(jìn)行,每輪執(zhí)行的矩陣乘法規(guī)模會(huì)越來越小,所涉及到的數(shù)據(jù)也會(huì)發(fā)生變化;同時(shí),每輪迭代的矩陣乘法都有一個(gè)累加過程,而累加完的數(shù)據(jù)需要存儲(chǔ)下來作為后續(xù)輪次的累加數(shù)據(jù)。如果其中一個(gè)任務(wù)在前k次迭代中都由Device0 負(fù)責(zé),而在第k+1 次迭代時(shí),讓Device1負(fù)責(zé)該任務(wù),那么此時(shí)Device1需要存儲(chǔ)在Device0 上的前k輪次的累加數(shù)據(jù)來進(jìn)行累加,這便需要一個(gè)數(shù)據(jù)傳輸操作來避免數(shù)據(jù)缺失。少量的數(shù)據(jù)傳輸不會(huì)帶來很大的性能損失,但是頻繁的數(shù)據(jù)傳輸會(huì)耗費(fèi)大量的時(shí)間。因此,為了避免數(shù)據(jù)的頻繁移動(dòng),每個(gè)Device所負(fù)責(zé)的任務(wù)必須在整個(gè)HPL-AI測試過程中保持不變。

        在明確了任務(wù)在測試過程中不會(huì)發(fā)生歸屬性變動(dòng)的情況下,也要保證任務(wù)能被均勻分配。如圖2所示,隨著測試迭代的深入,部分?jǐn)?shù)據(jù)會(huì)變成已分解狀態(tài)。已完成分解的數(shù)據(jù)相當(dāng)于已完成的任務(wù),這表明任務(wù)會(huì)隨著迭代的進(jìn)行而減少。因此,需要保證任務(wù)在各個(gè)Device之間均勻地減少以達(dá)到任務(wù)被均勻分配的目的。

        初始矩陣A可以按行進(jìn)行劃分,每行的全部塊組成一個(gè)任務(wù)。如圖5 所示,一共有8 個(gè)任務(wù),這8 個(gè)任務(wù)通過循環(huán)分配的方式被分配給了Device。圖中假設(shè)一共有4 個(gè)Device,顏色的匹配情況對應(yīng)了任務(wù)的分配情況。前4 輪迭代會(huì)完成任務(wù)1-4,這樣保證了任務(wù)在4個(gè)Device中均勻地減少(4輪迭代4 個(gè)Device 各減少了一個(gè)任務(wù))。因此,循環(huán)的任務(wù)分配方式能夠使任務(wù)被均勻地分配。

        圖5 任務(wù)的循環(huán)分配Fig.5 Cyclic assignment of tasks

        2.3 數(shù)據(jù)的連續(xù)搬運(yùn)

        圖5所示的循環(huán)分配策略能讓任務(wù)被均勻地分配,且在整個(gè)HPL-AI 流程中,不同Device 之間的任務(wù)數(shù)量之差的最大值為1,這被稱為間隔值為1的循環(huán)分配。雖然間隔值為1的循環(huán)分配能夠極大地保證任務(wù)數(shù)量在各個(gè)Device之間的均衡,但也要考慮數(shù)據(jù)傳輸?shù)倪B續(xù)性。在每輪迭代的矩陣乘法執(zhí)行之前,相應(yīng)的左矩陣和右矩陣需要從Host端傳輸?shù)礁鱾€(gè)Device 端中去。圖4的矩陣乘法分割策略表明右矩陣在各個(gè)Device中是相同的,而左矩陣會(huì)被分成塊,然后實(shí)施循環(huán)分配策略。如果采取間隔值為1的循環(huán)分配策略,那么每個(gè)Device 的各個(gè)任務(wù)所涉及的數(shù)據(jù)塊是不連續(xù)的。從Host向Device發(fā)送數(shù)據(jù)是極其耗時(shí)的,在傳送數(shù)據(jù)時(shí)應(yīng)當(dāng)盡量減少傳送次數(shù),即盡量保證數(shù)據(jù)是連續(xù)的。因此,應(yīng)當(dāng)考慮間隔值更大的循環(huán)分配策略。間隔值越大,任務(wù)分配越不均勻,而數(shù)據(jù)傳輸?shù)男试礁?。在循環(huán)任務(wù)分配的實(shí)現(xiàn)中,需要選取合適的間隔值以平衡任務(wù)分配的均勻性和數(shù)據(jù)傳輸?shù)男省?/p>

        2.4 數(shù)據(jù)縮放的取舍

        混合精度計(jì)算必定會(huì)涉及到精度之間的轉(zhuǎn)換。在HPL-AI 整體流程中有兩個(gè)步驟涉及到了精度轉(zhuǎn)換:一是單精度的Strsm 和面元更新的結(jié)果需要轉(zhuǎn)換為半精度后作為本輪半精度矩陣乘法的輸入;二是半精度矩陣乘法的部分結(jié)果需要進(jìn)行單精度轉(zhuǎn)換后作為下一輪迭代中LU分解、Strsm 和面元更新的輸入。高精度數(shù)據(jù)向低精度數(shù)據(jù)轉(zhuǎn)換時(shí)會(huì)導(dǎo)致一定程度的精度損失,而數(shù)據(jù)縮放是減少精度損失的常見做法。數(shù)據(jù)的縮放能夠保留浮點(diǎn)數(shù)的部分精度,主要通過在高精度數(shù)據(jù)轉(zhuǎn)向低精度數(shù)據(jù)的過程中執(zhí)行一個(gè)乘法而對浮點(diǎn)數(shù)進(jìn)行放大,在低精度數(shù)據(jù)轉(zhuǎn)向高精度數(shù)據(jù)時(shí)執(zhí)行一次除法對浮點(diǎn)數(shù)進(jìn)行縮小,其中乘法中的因數(shù)和除法中的分子是同一個(gè)值。

        Kudo 等[22]在實(shí)現(xiàn)HPL-AI 基準(zhǔn)測試時(shí),提出并采用了數(shù)據(jù)縮放技術(shù)來減少精度損失從而縮短迭代優(yōu)化所需的時(shí)間,但測試主要集中在多節(jié)點(diǎn)模型上。多節(jié)點(diǎn)所涉及的矩陣規(guī)模非常龐大,因此很有必要采用數(shù)據(jù)縮放策略。而在單節(jié)點(diǎn)中采取該策略則是值得商榷的,因?yàn)閿?shù)據(jù)縮放會(huì)增加一定的數(shù)據(jù)運(yùn)算時(shí)間,需要進(jìn)行相應(yīng)的實(shí)驗(yàn)來確定該策略在單節(jié)點(diǎn)中的必要性。

        2.5 單節(jié)點(diǎn)HPL-AI測試的流程圖

        單節(jié)點(diǎn)HPL-AI 測試的整體流程如圖6 所示。在單節(jié)點(diǎn)HPL-AI的具體實(shí)現(xiàn)中,需要充分利用可并行執(zhí)行的環(huán)節(jié)來提高效率。例如,數(shù)據(jù)傳輸和數(shù)值運(yùn)算可以并行執(zhí)行,具體來說,是本輪矩陣乘法的計(jì)算和下輪矩陣乘法所需要的數(shù)據(jù)傳輸可以并行執(zhí)行。Host 和Device 各自的任務(wù)也可以并行執(zhí)行。HPL-AI基準(zhǔn)測試要充分利用執(zhí)行流程的并行性。

        圖6 單節(jié)點(diǎn)HPL-AI測試的整體流程Fig.6 Flowchart of our single-node HPL-AI implementation

        3 實(shí)驗(yàn)評估

        為了評估和驗(yàn)證單節(jié)點(diǎn)HPL-AI 在多核和多AI處理器的異構(gòu)系統(tǒng)上的可靠性,本文在鯤鵬和昇騰異構(gòu)系統(tǒng)中進(jìn)行了一系列實(shí)驗(yàn)。在異構(gòu)系統(tǒng)中執(zhí)行HPL-AI測試程序,首先設(shè)置測試程序所需的參數(shù),并測試不同參數(shù)下系統(tǒng)的浮點(diǎn)運(yùn)算性能。

        本節(jié)的所有實(shí)驗(yàn)均基于相同的軟硬件環(huán)境。在單節(jié)點(diǎn)中,CPU 為4 個(gè)鯤鵬920 處理器;主機(jī)內(nèi)存為1.5 TB;AI 處理器為8 個(gè)昇騰910AI 處理器;操作系統(tǒng)為Ubuntu 18.04.1 LTS;CANN 的版本為CANN 5.0.3. alpha005; BLAS 庫為OpenBLAS 0.3.15. dev;C++編譯器為kunpeng-gcc-10.3.0;OpenMP的版本為OpenMP 4.5。

        3.1 數(shù)據(jù)縮放的案例分析

        本節(jié)針對數(shù)據(jù)縮放對單節(jié)點(diǎn)HPL-AI 測試的影響進(jìn)行了相關(guān)實(shí)驗(yàn)。數(shù)據(jù)縮放的縮放因子是根據(jù)矩陣的階數(shù)N來確定的。由于初始矩陣A是塊狀的,通常是根據(jù)其塊數(shù)bn和塊大小bs來計(jì)算A的階數(shù);則縮放因子s的定義為

        其中bs= 256,bn的值是變化的,且被用于控制矩陣的規(guī)模。

        為了充分展現(xiàn)數(shù)據(jù)縮放對HPL-AI測試的影響,本研究擬在各種矩陣規(guī)模下進(jìn)行實(shí)驗(yàn)。最后,通過對比采取和不采取數(shù)據(jù)縮放策略兩種情況下迭代優(yōu)化所花費(fèi)的時(shí)間以及迭代次數(shù),來判斷數(shù)據(jù)縮放在單節(jié)點(diǎn)HPL-AI測試中的必要性。

        如圖7(a)、7(b)所示,采取和不采取數(shù)據(jù)縮放兩種情況在迭代優(yōu)化中所花費(fèi)的時(shí)間非常接近,且這兩種情況通過迭代優(yōu)化得到正確結(jié)果所需要的迭代次數(shù)是完全一致的。圖7(c)顯示了這兩種情況在不同bn取值下的浮點(diǎn)運(yùn)算性能的測試結(jié)果。由于性能測試結(jié)果具有一定的波動(dòng)性,故選取5次測試的平均值代表真正測試值。采取數(shù)據(jù)縮放會(huì)帶來更多的計(jì)算開銷,但可以看出采取數(shù)據(jù)縮放并沒有對HPL-AI 測試的整體性能產(chǎn)生較大影響。這是因?yàn)镠PL-AI 測試的整體流程是并行的,這部分多余的開銷被與之并行且更為耗時(shí)的操作所覆蓋掉了。但就迭代優(yōu)化并沒有受到數(shù)據(jù)縮放的積極影響這一方面而言,數(shù)據(jù)縮放操作在單節(jié)點(diǎn)HPL-AI 測試中可以省去。

        圖7 數(shù)據(jù)縮放對HPL-AI測試的影響Fig.7 Effect of data scaling on HPL-AI testing

        3.2 循環(huán)任務(wù)分配間隔的案例分析

        前文中提到了循環(huán)任務(wù)分配測量是保證任務(wù)在整個(gè)HPL-AI 測試流程中被平均分配的前提,而循環(huán)任務(wù)分配的間隔值會(huì)影響到數(shù)據(jù)傳輸?shù)乃俾室约叭蝿?wù)分配的均勻性。本節(jié)將通過實(shí)驗(yàn)選取最為合適的間隔值來在兩者之間達(dá)到平衡。

        從圖7(c)中的結(jié)果可以看出,矩陣規(guī)模越大,越能發(fā)揮單節(jié)點(diǎn)的浮點(diǎn)運(yùn)算性能。因此,在HPLAI測試實(shí)驗(yàn)中,選取單節(jié)點(diǎn)能夠承受的最大矩陣規(guī)模,即bn= 1400。在選取最大矩陣規(guī)模的情況下,通過對比不同間隔下的浮點(diǎn)運(yùn)算性能,進(jìn)一步選取合適的間隔值大小。

        HPL-AI在不同間隔值下的性能如圖8所示,間隔值為1時(shí)的浮點(diǎn)運(yùn)算速度是最低的。雖然最小間隔最大限度地保障了任務(wù)分配的公平性,但此時(shí)的數(shù)據(jù)傳輸開銷導(dǎo)致運(yùn)算性能大大降低。然而這并不意味著間隔值越大,浮點(diǎn)運(yùn)算性能就越好。當(dāng)間隔值大于8時(shí),浮點(diǎn)運(yùn)算性能開始下降,這主要是任務(wù)分配不均勻?qū)е碌慕Y(jié)果。如果涉及的間隔范圍更大,在后續(xù)一定會(huì)出現(xiàn)性能急劇下降的情況。因?yàn)殚g隔越大,分給某個(gè)Device的任務(wù)數(shù)量就越可能遠(yuǎn)多于其他Device,從而導(dǎo)致其占有過多的任務(wù)或者內(nèi)存空間不足。因此,后續(xù)的實(shí)驗(yàn)將選取間隔值為8以達(dá)到最好的浮點(diǎn)運(yùn)算性能。

        圖8 不同間隔值下的浮點(diǎn)運(yùn)算性能Fig.8 Floating-point arithmetic performances at different intervals

        3.3 優(yōu)化策略的性能對比

        本節(jié)將通過對比采取優(yōu)化策略(優(yōu)化實(shí)現(xiàn))和未采取優(yōu)化策略(非優(yōu)化實(shí)現(xiàn))的HPL-AI 基準(zhǔn)測試之間的混合精度浮點(diǎn)運(yùn)算性能來驗(yàn)證優(yōu)化策略的有效性。為了充分發(fā)揮單節(jié)點(diǎn)的性能,本節(jié)實(shí)驗(yàn)也同樣選取其所能承受的最大矩陣規(guī)模。

        圖9對比了優(yōu)化實(shí)現(xiàn)和非優(yōu)化實(shí)現(xiàn)10次的測試結(jié)果,表1則列出了測試結(jié)果的具體數(shù)值。實(shí)驗(yàn)結(jié)果表明:優(yōu)化后的HPL-AI測試結(jié)果有較大的提升,其平均浮點(diǎn)運(yùn)算性能相比原來提升了29%左右。在迭代優(yōu)化方面,優(yōu)化實(shí)現(xiàn)只需兩輪迭代即可符合要求,這證明優(yōu)化實(shí)現(xiàn)的結(jié)果具有更高的精度。在矩陣規(guī)模相同的情況下,迭代優(yōu)化中每輪迭代的計(jì)算量是相同的,迭代優(yōu)化的次數(shù)越少,所花費(fèi)的時(shí)間也越少。

        表1 優(yōu)化和非優(yōu)化實(shí)現(xiàn)之間混合精度浮點(diǎn)運(yùn)算的性能測試結(jié)果Table 1 Performance results of mixed-precision floating-point arithmetic of optimized and non-optimized implementations

        圖9 優(yōu)化和非優(yōu)化實(shí)現(xiàn)之間混合精度浮點(diǎn)運(yùn)算的性能對比Fig.9 Performance comparison of mixed-precision floatingpoint operations between optimized and non-optimized implementations

        表2 展示了單節(jié)點(diǎn)HPL-AI 中各個(gè)環(huán)節(jié)所花費(fèi)時(shí)間。由于HPL-AI 測試的高度并行性,各個(gè)環(huán)節(jié)的時(shí)間并不完全準(zhǔn)確(耗時(shí)少的環(huán)節(jié)被耗時(shí)多的掩蓋掉了)。在所有環(huán)節(jié)中,矩陣乘法和迭代優(yōu)化是最為耗時(shí)的。優(yōu)化后的基準(zhǔn)測試實(shí)現(xiàn)在這兩個(gè)環(huán)節(jié)上所耗費(fèi)的時(shí)間更少,因此優(yōu)化后的HPL-AI 基準(zhǔn)測試具有更好的性能。

        表2 單節(jié)點(diǎn)HPL-AI基準(zhǔn)測試中各環(huán)節(jié)所花費(fèi)時(shí)間對比Table 2 Comparison of time spent on each part of single-node HPL-AI implementations

        4 結(jié)語

        近年來,混合精度求解器已被廣泛應(yīng)用于多種高性能應(yīng)用中,用于評估混合精度運(yùn)算性能的HPL-AI 基準(zhǔn)測試也應(yīng)運(yùn)而生。雖然HPL-AI 基準(zhǔn)的規(guī)則是統(tǒng)一的,但在不同平臺(tái)上的實(shí)現(xiàn)和部署仍具有一定的挑戰(zhàn)性。本文采用循環(huán)任務(wù)分配和數(shù)據(jù)連續(xù)傳輸?shù)葍?yōu)化策略提出了基于鯤鵬和昇騰異構(gòu)平臺(tái)的單節(jié)點(diǎn)HPL-AI 基準(zhǔn)測試方案。實(shí)驗(yàn)結(jié)果表明這些優(yōu)化策略能有效地提高混合精度浮點(diǎn)運(yùn)算的性能。與非優(yōu)化的情況相比,計(jì)算性能提高了29%左右。

        通過采用本文所提出的優(yōu)化策略,HPL-AI 測試的性能已經(jīng)有了較為明顯的提升,但其實(shí)現(xiàn)和部署還存在一定的優(yōu)化空間。例如,在HPL-AI測試的實(shí)現(xiàn)中Strsm 和面元更新的計(jì)算過程由Host 負(fù)責(zé),導(dǎo)致Device的計(jì)算能力未被充分利用。在未來的工作中,可以將Strsm和面元更新等環(huán)節(jié)轉(zhuǎn)移到Device上,以進(jìn)一步提升單節(jié)點(diǎn)HPL-AI測試的性能。

        猜你喜歡
        優(yōu)化
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        PEMFC流道的多目標(biāo)優(yōu)化
        能源工程(2022年1期)2022-03-29 01:06:28
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
        圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
        事業(yè)單位中固定資產(chǎn)會(huì)計(jì)處理的優(yōu)化
        4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
        幾種常見的負(fù)載均衡算法的優(yōu)化
        電子制作(2017年20期)2017-04-26 06:57:45
        亚洲色无码中文字幕| 中文字幕久无码免费久久| 国产在线精品成人一区二区三区| 亚洲乱妇熟女爽到高潮视频高清| 一区二区三区国产高清视频| 中文字幕在线亚洲三区| 国产精品无码素人福利不卡| 蜜臀性色av免费| 亚洲精品无码久久久久牙蜜区| 欧美日韩亚洲tv不卡久久| 国产在线视频国产永久视频| 亚洲成AV人久久| 国产自拍伦理在线观看| 亚洲av无一区二区三区综合| 97超碰中文字幕久久| 国产中文字幕免费视频一区| 全黄性性激高免费视频| 小荡货奶真大水真多紧视频| 一本一本久久a久久精品综合麻豆| 91日韩高清在线观看播放| 亚洲精品aⅴ无码精品丝袜足| 国产自产拍精品视频免费看| 经典亚洲一区二区三区| 亚洲综合色区一区二区三区| 久久久久成人精品无码中文字幕| 人人妻人人澡人人爽精品欧美| 午夜福利视频合集1000| 国产一区二区三区小说| 久久无码高潮喷水抽搐| 国产美腿丝袜一区二区| 少妇性俱乐部纵欲狂欢少妇| 大肉大捧一进一出视频出来呀| 欧美丰满熟妇bbbbbb百度 | 日韩久久久久中文字幕人妻| 亚洲一区在线二区三区| 视频在线国产一区二区 | 亚洲国产成人无码av在线影院| 亚洲av日韩av综合aⅴxxx| 日韩在线精品视频观看| 女人天堂国产精品资源麻豆| 国产v片在线播放免费无码|