突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

摘要:在當(dāng)今的技術(shù)領(lǐng)域中,我們面對著眾多挑戰(zhàn)和機(jī)遇。從LLAMA、LM、AIGC、CHATGLM到LLVM、LLM、LLMs、GLM,我們見證了語言模型的快速發(fā)展。NLP和ChatGPT等技術(shù)正在推動自然語言處理的進(jìn)步。而A100、H100、H800、A

摘要:在當(dāng)今的技術(shù)領(lǐng)域中,我們面對著眾多挑戰(zhàn)和機(jī)遇。從LLAMA、LM、AIGC、CHATGLM到LLVM、LLM、LLMs、GLM,我們見證了語言模型的快速發(fā)展。NLP和ChatGPT等技術(shù)正在推動自然語言處理的進(jìn)步。而A100、H100、H800、A800等GPU顯卡則為大規(guī)模模型訓(xùn)練提供了強(qiáng)大的算力支持。AGI的實(shí)現(xiàn)成為我們追求的目標(biāo),而HPC、GPU、CPU、CPU+GPU等多元異構(gòu)算力則成為實(shí)現(xiàn)這一目標(biāo)的關(guān)鍵。藍(lán)海大腦超級大模型訓(xùn)練GPU集群為通用人工智能新紀(jì)元帶來了新的可能性,使得大型語言模型的訓(xùn)練變得更加高效和可行。在這個充滿挑戰(zhàn)和機(jī)遇的領(lǐng)域中,我們不斷探索和創(chuàng)新,為通用人工智能的實(shí)現(xiàn)努力著。

2023年科創(chuàng)圈的頂尖技術(shù)無疑是大模型,據(jù)科技部新一代人工智能發(fā)展研究中心發(fā)布的《中國人工智能大模型地圖研究報告》顯示,我國已發(fā)布79個參數(shù)規(guī)模超過10億的大模型,幾乎形成了百模大戰(zhàn)的局面。在大模型研發(fā)方面,中國14個省區(qū)市都在積極開展工作,其中北京擁有38個項(xiàng)目,廣東擁有20個項(xiàng)目。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

目前,自然語言處理是大模型研發(fā)最活躍的領(lǐng)域,其次是多模態(tài)領(lǐng)域,而在計算機(jī)視覺和智能語音等領(lǐng)域大模型相對較少。大學(xué)、科研機(jī)構(gòu)和企業(yè)等不同創(chuàng)新主體都參與了大模型的研發(fā),但學(xué)術(shù)界和產(chǎn)業(yè)界之間的合作研發(fā)仍有待加強(qiáng)。

隨著人工智能大模型參數(shù)量從億級增長到萬億級,人們對支撐大模型訓(xùn)練所需的超大規(guī)模算力和網(wǎng)絡(luò)連接的重要性越來越關(guān)注。大模型的訓(xùn)練任務(wù)需要龐大的GPU服務(wù)器集群提供計算能力,并通過網(wǎng)絡(luò)進(jìn)行海量數(shù)據(jù)交換。然而,即使單個GPU性能強(qiáng)大,如果網(wǎng)絡(luò)性能跟不上,整個算力集群的計算能力也會大幅下降。

一般認(rèn)為HPC 系統(tǒng)的運(yùn)行速度通常要比商用臺式機(jī)、筆記本電腦或服務(wù)器系統(tǒng)快一百萬倍以上。當(dāng)我們談?wù)摳咝阅苡嬎銜r,性能一般是指計算系統(tǒng)及時處理大量數(shù)據(jù)或進(jìn)行復(fù)雜計算的能力。 HPC 系統(tǒng)通常設(shè)計用于處理極大的工作負(fù)載并高速執(zhí)行計算,非常適合科學(xué)研究、金融建模和其他計算密集型任務(wù)等應(yīng)用程序。在衡量 HPC 系統(tǒng)的性能時,通常會考慮處理器性能、內(nèi)存性能、I/O性能及網(wǎng)絡(luò)性能等因素。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

多元算力:CPU+GPU

ChatGPT廣受歡迎使得智算中心的關(guān)注度再次上升,GPU同時也成為各大公司爭相爭奪的對象。GPU不僅是智算中心的核心,也在超算領(lǐng)域得到廣泛的應(yīng)用。根據(jù)最新一屆TOP500榜單(于2023年5月下旬公布)顯示:

  • 使用加速器或協(xié)處理器的系統(tǒng)從上一屆的179個增加到185個,其中150個系統(tǒng)采用英偉達(dá)(NVIDIA)的Volta(如V100)或Ampere(如A100)GPU

  • 在榜單的前10名中,有7個系統(tǒng)使用GPU,在前5名中,只有第二名沒有使用GPU。

當(dāng)然,CPU仍然是不可或缺的。以榜單前10名為例,AMC EPYC家族處理器占據(jù)4個位置,英特爾至強(qiáng)家族處理器和IBM的POWER9各占據(jù)2個位置,而ARM也有1個位置(富士通A64FX)位居第二位。

通用算力和智能算力相輔相成,可以滿足多樣化的計算需求。以歐洲高性能計算聯(lián)合事業(yè)(EuroHPC JU)正在部署的MareNostrum 5為例:基于第四代英特爾至強(qiáng)可擴(kuò)展處理器的通用算力計劃將于2023年6月開放服務(wù),而基于NVIDIA Grace CPU的"下一代"通用算力以及由第四代英特爾至強(qiáng)可擴(kuò)展處理器和NVIDIA Hopper GPU(如H100)組成的加速算力,則計劃于2023年下半年投入使用。

一、GPU:大芯片與小芯片

盡管英偉達(dá)在GPU市場上占據(jù)著統(tǒng)治地位,但AMD和英特爾并未放棄競爭。以最新的TOP500榜單前10名為例,其中4個基于AMC EPYC家族處理器的系統(tǒng)中,有2個搭配AMD Instinct MI250X和NVIDIA A100,前者排名較高,分別位居第一和第三位。

然而,在人工智能應(yīng)用方面,英偉達(dá)GPU的優(yōu)勢顯著。在GTC 2022上發(fā)布的NVIDIA H100 Tensor Core GPU進(jìn)一步鞏固其領(lǐng)先地位。H100 GPU基于英偉達(dá)Hopper架構(gòu),采用臺積電(TSMC)N4制程,擁有高達(dá)800億個晶體管,并在計算、存儲和連接方面全面提升:

  • 132個SM(流式多處理器)和第四代Tensor Core使性能翻倍;

  • 比前一代更大的50MB L2緩存和升級到HBM3的顯存構(gòu)成新的內(nèi)存子系統(tǒng);

  • 第四代NVLink總帶寬達(dá)到900GB/s,支持NVLink網(wǎng)絡(luò),PCIe也升級到5.0。

在2023年1月,英特爾也推出代號為Ponte Vecchio的英特爾數(shù)據(jù)中心GPU Max系列,與第四代英特爾至強(qiáng)可擴(kuò)展處理器和英特爾至強(qiáng)CPU Max系列一起發(fā)布。英特爾數(shù)據(jù)中心GPU Max系列利用英特爾的Foveros和EMIB技術(shù),在單個產(chǎn)品上整合47個小芯片,集成超過1000億個晶體管,擁有高達(dá)408MB的L2緩存和128GB的HBM2e顯存,充分體現(xiàn)芯片模塊化的理念。

二、CPU:性能核與能效核

通用算力的發(fā)展趨勢是多元化的,以滿足不同應(yīng)用場景的需求。在手機(jī)、PC和其他終端產(chǎn)品中,經(jīng)過驗(yàn)證的"大小核"架構(gòu)逐漸成為主流,而在服務(wù)器CPU市場也開始流行起來。然而,服務(wù)器的特點(diǎn)是集群作戰(zhàn),并不迫切需要在同一款CPU內(nèi)部實(shí)現(xiàn)大小核的組合。主流廠商正通過提供全是大核或全是小核的CPU來滿足不同客戶的需求,其中大核注重單核性能,適合縱向擴(kuò)展,而小核注重核數(shù)密度,適合橫向擴(kuò)展。

作為big.LITTLE技術(shù)的發(fā)明者,ARM將異構(gòu)核的理念引入服務(wù)器CPU市場,并已經(jīng)有一段時間。ARM的Neoverse平臺分為三個系列:

  • Neoverse V系列用于構(gòu)建高性能CPU,提高每核心性能,適用于高性能計算、人工智能機(jī)器學(xué)習(xí)加速等工作負(fù)載;

  • Neoverse N系列注重橫向擴(kuò)展性能,提供經(jīng)過優(yōu)化的平衡CPU設(shè)計,以提供理想的每瓦性能,適用于橫向擴(kuò)展云、企業(yè)網(wǎng)絡(luò)、智能網(wǎng)卡DPU、定制ASIC加速器、5G基礎(chǔ)設(shè)施以及電源和空間受限的邊緣場景;

  • Neoverse E系列旨在以最小的功耗支持高數(shù)據(jù)吞吐量,面向網(wǎng)絡(luò)數(shù)據(jù)平面處理器、低功耗網(wǎng)關(guān)的5G部署。

這些系列的設(shè)計旨在滿足不同領(lǐng)域和應(yīng)用的需求。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

在規(guī)模較大的云計算中心、智算中心和超級計算中心等應(yīng)用場景中,可以將大小核架構(gòu)在數(shù)據(jù)中心市場上的實(shí)踐歸納為兩個系列:V系列側(cè)重單核性能的縱向擴(kuò)展(Scale-up)而N系列側(cè)重多核性能的橫向擴(kuò)展(Scale-out)。

在這些應(yīng)用場景中,V系列產(chǎn)品的代表包括64核的AWS Graviton3(推測為V1)和72核的NVIDIA Grace CPU(V2)而N系列產(chǎn)品除阿里云的128核倚天710(推測為N2)外,還在DPU領(lǐng)域得到廣泛應(yīng)用。最近發(fā)布的AmpereOne采用Ampere Computing公司自研的A1核,最多擁有192個核心,更接近Neoverse N系列的設(shè)計風(fēng)格。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

英特爾在面向投資者的會議上也公布類似的規(guī)劃:

  • 2023年第四季度推出第五代英特爾至強(qiáng)可擴(kuò)展處理器(代號Emerald Rapids)

  • 2024年推出的代號為Granite Rapids的下一代產(chǎn)品。這些處理器將延續(xù)目前的性能核(P-Core)路線。另外,2024年上半年推出的代號為Sierra Forest的CPU將是第一代能效核(E-Core)至強(qiáng)處理器,擁有144個核心。

第五代英特爾至強(qiáng)可擴(kuò)展處理器與第四代共享平臺易于遷移,而Granite Rapids和Sierra Forest將采用英特爾的3納米制程。P-Core和E-Core的組合已經(jīng)在英特爾的客戶端CPU上得到驗(yàn)證,兩者之間的一個重要區(qū)別是否支持超線程。E-Core每個核心只有一個線程注重能效,適用于追求更高物理核密度的云原生應(yīng)用。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

AMD 的策略大同小異:

  • 2022年11月發(fā)布代號為Genoa的第四代EPYC處理器,采用5納米的Zen 4核心,最高可達(dá)96個核心。

  • 2023年6月AMD推出代號為Bergamo的“云原生”處理器,據(jù)傳擁有多達(dá)128個核心,通過縮小核心和緩存來提供更高的核心密度。

雖然性能核和能效核這兩條路線之間存在著核心數(shù)量的差異,但增加核心數(shù)是共識。隨著CPU核心數(shù)量的持續(xù)增長,對內(nèi)存帶寬的要求也越來越高,僅僅升級到DDR5內(nèi)存是不夠的。AMD的第四代EPYC處理器(Genoa)已將每個CPU的DDR通道數(shù)量從8條擴(kuò)展到12條,Ampere Computing也有類似的規(guī)劃。

然而,擁有超過100個核心的CPU已經(jīng)超出了一些企業(yè)用戶的實(shí)際需求,而每個CPU的12條內(nèi)存通道在雙路配置下也給服務(wù)器主板設(shè)計帶來新的挑戰(zhàn)。在多種因素的影響下,單路服務(wù)器在數(shù)據(jù)中心市場的份額是否會有顯著增長,這仍然需要拭目以待。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

AMD 第四代 EPYC 處理器擁有 12 個 DDR5 內(nèi)存通道,但單路(2DPC)和雙路(1DPC)配置都不超過24個內(nèi)存槽,比 8 內(nèi)存通道 CPU 的雙路配置(32 個內(nèi)存槽)還要少。換言之,單 CPU 的內(nèi)存通道數(shù)增加了,雙路配置的內(nèi)存槽數(shù)反而減少

三、GPU和CPU芯片相比誰更復(fù)雜

在大規(guī)模并行計算方面,高端GPU(如NVIDIA的A100或AMD的Radeon Instinct MI100)和高端CPU(如Intel的Xeon系列或AMD的EPYC系列)都具有各自的復(fù)雜性。GPU擁有大量的CUDA核心或流處理器,專注于并行計算,以支持高性能的并行任務(wù)。而高端CPU則具有更多的核心、更高的頻率和復(fù)雜的超線程技術(shù),以提供強(qiáng)大的通用計算能力。下面從應(yīng)用場景、晶體管數(shù)量、架構(gòu)設(shè)計幾個維度來分析。

1、應(yīng)用場景

GPU擁有大量的計算核心、專用存儲器和高速數(shù)據(jù)傳輸通道,其設(shè)計注重于滿足圖形渲染和計算密集型應(yīng)用的需求,強(qiáng)調(diào)大規(guī)模并行計算、內(nèi)存訪問和圖形數(shù)據(jù)流處理。GPU的核心理念是并行處理,通過擁有更多的處理單元,能夠同時執(zhí)行大量并行任務(wù)。這使得GPU在處理可并行化的工作負(fù)載(如圖形渲染、科學(xué)計算和深度學(xué)習(xí))時表現(xiàn)出色。相比之下,CPU專注于通用計算和廣泛的應(yīng)用領(lǐng)域,通常具有多個處理核心、高速緩存層次和復(fù)雜的指令集體系結(jié)構(gòu)。

2、晶體管數(shù)量

頂級的GPU通常擁有更多的晶體管,這是因?yàn)樗鼈冃枰罅康牟⑿刑幚韱卧獊碇С指咝阅苡嬎恪Ee例來說,NVIDIA的A100 GPU擁有約540億個晶體管,而AMD的EPYC 7742 CPU則包含約390億個晶體管。晶體管數(shù)量的差異反映了GPU在并行計算方面的重要性和專注度。

3、架構(gòu)設(shè)計

從架構(gòu)和設(shè)計的角度來看,CPU通常被認(rèn)為更復(fù)雜。CPU需要處理各種不同類型的任務(wù),并且需要優(yōu)化以盡可能快地執(zhí)行這些任務(wù)。為了實(shí)現(xiàn)這一目標(biāo),CPU采用了許多復(fù)雜的技術(shù),如流水線、亂序執(zhí)行、分支預(yù)測和超線程等。這些技術(shù)旨在提高CPU的性能和效率。

相比之下,頂級的GPU可能在硬件規(guī)模(如晶體管數(shù)量)上更大,但在架構(gòu)和設(shè)計上相對簡化。GPU的設(shè)計注重于大規(guī)模并行計算和圖形數(shù)據(jù)流處理,其架構(gòu)更加專注和優(yōu)化于這些特定的任務(wù)。

  • GPU架構(gòu)

GPU具有一些關(guān)鍵的架構(gòu)特性。

首先,它擁有大量的并行處理單元(核心),每個處理單元可以同時執(zhí)行指令。如NVIDIA的Turing架構(gòu)具有數(shù)千個并行處理單元,也稱為CUDA核心。其次,GPU采用分層的內(nèi)存架構(gòu),包括全局內(nèi)存、共享內(nèi)存、本地內(nèi)存和常量內(nèi)存等。這些內(nèi)存類型用于緩存數(shù)據(jù),以減少對全局內(nèi)存的訪問延遲。另外,GPU利用硬件進(jìn)行線程調(diào)度和執(zhí)行,保持高效率。在NVIDIA的GPU中,線程以warp(32個線程)的形式進(jìn)行調(diào)度和執(zhí)行。此外,還擁有一些特殊的功能單元,如紋理單元和光柵化單元,這些單元專為圖形渲染而設(shè)計。最新的GPU還具有為深度學(xué)習(xí)和人工智能設(shè)計的特殊單元,如張量核心和RT核心。此外,GPU采用了流多處理器和SIMD(單指令多數(shù)據(jù)流)架構(gòu),使得一條指令可以在多個數(shù)據(jù)上并行執(zhí)行。

具體的GPU架構(gòu)設(shè)計因制造商和產(chǎn)品線而異,例如NVIDIA的Turing和Ampere架構(gòu)與AMD的RDNA架構(gòu)存在一些關(guān)鍵差異。然而,所有的GPU架構(gòu)都遵循并行處理的基本理念。

  • CPU架構(gòu)

CPU(中央處理單元)的架構(gòu)設(shè)計涉及多個領(lǐng)域,包括硬件設(shè)計、微體系結(jié)構(gòu)和指令集設(shè)計等。

指令集架構(gòu)(ISA)是CPU的基礎(chǔ),它定義了CPU可以執(zhí)行的操作以及如何編碼這些操作。常見的ISA包括x86(Intel和AMD)、ARM和RISC-V?,F(xiàn)代CPU采用流水線技術(shù),將指令分解為多個階段,以提高指令的吞吐量。CPU還包含緩存和內(nèi)存層次結(jié)構(gòu),以減少訪問內(nèi)存的延遲。亂序執(zhí)行和寄存器重命名是現(xiàn)代CPU的關(guān)鍵優(yōu)化手段,可以提高指令的并行執(zhí)行能力和解決數(shù)據(jù)冒險問題。分支預(yù)測是一種優(yōu)化技術(shù),用于預(yù)測條件跳轉(zhuǎn)指令的結(jié)果,以避免因等待跳轉(zhuǎn)結(jié)果而產(chǎn)生的停頓?,F(xiàn)代CPU通常具有多個處理核心,每個核心可以獨(dú)立執(zhí)行指令,并且一些CPU還支持多線程技術(shù),可以提高核心的利用率。

算存互連:Chiplet與 CXL

2022年3月,通用處理器市場的核心參與者,包括Intel、AMD、ARM等,共同發(fā)布新的互聯(lián)標(biāo)準(zhǔn)UCIe(Universal Chiplet Interconnect Express通用小芯片互連通道),旨在解決Chiplet的行業(yè)標(biāo)準(zhǔn)化問題。這一標(biāo)準(zhǔn)的推出將有助于推動Chiplet技術(shù)的發(fā)展和應(yīng)用。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

由于標(biāo)準(zhǔn)的主導(dǎo)者與PCIe和CXL(Compute Express Link)已經(jīng)有密切的關(guān)系,因此UCIe非常強(qiáng)調(diào)與PCIe/CXL的協(xié)同,提供在協(xié)議層本地端進(jìn)行PCIe和CXL協(xié)議映射的功能。與CXL的協(xié)同說明UCIe的目標(biāo)不僅僅是解決芯片制造中的互聯(lián)互通問題,而是希望芯片與設(shè)備、設(shè)備與設(shè)備之間的交互是無縫的。

在UCIe 1.0標(biāo)準(zhǔn)中展現(xiàn)兩種層面的應(yīng)用:Chiplet(封裝內(nèi))和Rack space(封裝外)。這意味著UCIe可以在芯片內(nèi)部實(shí)現(xiàn)Chiplet之間的互聯(lián),同時也可以在封裝外部實(shí)現(xiàn)芯片與設(shè)備之間的互聯(lián)。這種靈活性使得UCIe能夠適應(yīng)不同的應(yīng)用場景。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

UCIe 規(guī)劃的機(jī)架連接交給CXL

一、CXL:內(nèi)存的解耦與擴(kuò)展

相對于PCIe,CXL最重要的價值在于減少各子系統(tǒng)內(nèi)存的訪問延遲(理論上PCIe的延遲為100納秒級別而CXL為10納秒級別)。例如GPU訪問系統(tǒng)內(nèi)存時,這對于設(shè)備之間的大容量數(shù)據(jù)交換至關(guān)重要。這種改進(jìn)主要源于兩個方面:

首先,PCIe在設(shè)計之初并沒有考慮緩存一致性問題。當(dāng)通過PCIe進(jìn)行跨設(shè)備的DMA讀寫數(shù)據(jù)時,在操作延遲期間,內(nèi)存數(shù)據(jù)可能已經(jīng)發(fā)生變化,因此需要額外的驗(yàn)證過程,這增加了指令復(fù)雜度和延遲。而CXL通過CXL.cache和CXL.memory協(xié)議解決緩存一致性問題,簡化操作也減少延遲。

其次,PCIe的初衷是針對大流量進(jìn)行優(yōu)化,針對大數(shù)據(jù)塊(512字節(jié)、1KB、2KB、4KB)進(jìn)行優(yōu)化,希望減少指令開銷。而CXL則針對64字節(jié)傳輸進(jìn)行優(yōu)化,對于固定大小的數(shù)據(jù)塊而言操作延遲較低。換句話說,PCIe的協(xié)議特點(diǎn)更適合用于以NVMe SSD為代表的塊存儲設(shè)備,而對于注重字節(jié)級尋址能力的計算型設(shè)備CXL更為適合。

除充分釋放異構(gòu)計算的算力,CXL還讓內(nèi)存池化的愿景看到了標(biāo)準(zhǔn)化的希望。CXL Type 3設(shè)備的用途是內(nèi)存緩沖,利用CXL.io和CXL.memory的協(xié)議實(shí)現(xiàn)擴(kuò)展遠(yuǎn)端內(nèi)存。在擴(kuò)展后,系統(tǒng)內(nèi)存的帶寬和容量即為本地內(nèi)存和CXL內(nèi)存模塊的疊加。

在新一代CPU普遍支持的CXL 1.0/1.1中,CXL內(nèi)存模塊首先實(shí)現(xiàn)主機(jī)級的內(nèi)存擴(kuò)展,試圖突破傳統(tǒng)CPU內(nèi)存控制器的發(fā)展瓶頸。CPU核心數(shù)量增長的速度遠(yuǎn)遠(yuǎn)快于內(nèi)存通道的增加速度是其中的原因。

在過去的十年間CPU的核心數(shù)量從8到12個增長到了60甚至96個核心,而每個插槽CPU的內(nèi)存通道數(shù)僅從4通道增加到8或12通道。每個通道的內(nèi)存在此期間也經(jīng)歷三次大的迭代,帶寬大約增加1.5到2倍,存儲密度大約增加4倍。從發(fā)展趨勢來看,每個CPU核心所能分配到的內(nèi)存通道數(shù)量在明顯下降,每個核心可以分配的內(nèi)存容量和內(nèi)存帶寬也有所下降。這是內(nèi)存墻的一種表現(xiàn)形式,導(dǎo)致CPU核心無法充分獲取數(shù)據(jù)以處于滿負(fù)荷的運(yùn)行狀態(tài),從而導(dǎo)致整體計算效率下降。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

二、UCIe 與異構(gòu)算力 

隨著人工智能時代的到來,異構(gòu)計算已經(jīng)成為常態(tài)。原則上只要功率密度允許,這些異構(gòu)計算單元的高密度集成可以由UCIe完成。除集成度的考慮,標(biāo)準(zhǔn)化的Chiplet還帶來功能和成本的靈活性。對于不需要的單元,在制造時可以不參與封裝,而對于傳統(tǒng)處理器而言,無用的單元常常成為無用的"暗硅",意味著成本的浪費(fèi)。一個典型的例子是DSA,如英特爾第四代可擴(kuò)展至強(qiáng)處理器中的若干加速器,用戶可以付費(fèi)開啟,但是如果用戶不付費(fèi),這些DSA其實(shí)已經(jīng)制造出來。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

UCle 的 In package 本質(zhì)就是將整個芯片封裝視作主板

UCIe包括協(xié)議層(Protocol Layer)、適配層(Adapter Layer)和物理層(Physical Layer)。協(xié)議層支持PCIe 6.0、CXL 2.0和CXL 3.0同時也支持用戶自定義的協(xié)議。根據(jù)不同的封裝等級,UCIe還提供不同的Package模塊。通過使用UCIe的適配層和PHY替換PCIe/CXL的PHY和數(shù)據(jù)包可以實(shí)現(xiàn)更低功耗和性能更優(yōu)的Die-to-Die互連接口。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

UCIe考慮了兩種不同等級的封裝:標(biāo)準(zhǔn)封裝(Standard Package)和先進(jìn)封裝(Advanced Package)。這兩種封裝在凸塊間距、傳輸距離和能耗方面存在數(shù)量級的差異。例如,對于先進(jìn)封裝,凸塊間距(Bump Pitch)為25~55μm,代表采用硅中介層的2.5D封裝技術(shù)特點(diǎn)。以英特爾的EMIB為例,當(dāng)前的凸塊間距約為50μm,未來將演進(jìn)至25μm甚至10μm。臺積電的InFO、CoWoS等也具有類似的規(guī)格和演進(jìn)趨勢。而標(biāo)準(zhǔn)封裝(2D)的規(guī)格則對應(yīng)目前應(yīng)用最廣泛的有機(jī)載板。

不同封裝的信號密度也存在本質(zhì)差異。標(biāo)準(zhǔn)封裝模塊對應(yīng)的是16對數(shù)據(jù)線(TX、RX),而高級封裝模塊則包含64對數(shù)據(jù)線。每32個數(shù)據(jù)管腳還額外提供2個用于Lane修復(fù)的管腳。如果需要更大的帶寬,可以擴(kuò)展更多的模塊并且這些模塊的頻率是可以獨(dú)立設(shè)置的。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

需要特別提到的是,UCIe與高速PCIe的深度集成使其更適合高性能應(yīng)用。實(shí)際上,SoC(片上系統(tǒng))是一個廣義的概念而UCIe面向的是宏觀系統(tǒng)級的集成。傳統(tǒng)觀念中適合低成本、高密度的SoC可能需要集成大量的收發(fā)器、傳感器、塊存儲設(shè)備等。例如,一些面向邊緣場景的推理應(yīng)用和視頻流處理的IP設(shè)計企業(yè)非常活躍,這些IP可能需要更靈活的商品化落地方式。由于UCIe不考慮相對低速設(shè)備的集成,低速、低成本接口的標(biāo)準(zhǔn)化仍然有空間。

如何對I/O進(jìn)行性能調(diào)優(yōu)

在日常Linux維護(hù)中,大家深知I/O性能對系統(tǒng)的重要影響。經(jīng)過多項(xiàng)優(yōu)化后,系統(tǒng)的瓶頸通常會出現(xiàn)在數(shù)據(jù)庫上;而即使對數(shù)據(jù)庫進(jìn)行了多種優(yōu)化,最終的瓶頸仍然會落在I/O操作上。然而,與CPU的發(fā)展相比,I/O性能的進(jìn)展明顯滯后。流行技術(shù)如Memcached和NoSQL等,都以直接或間接方式規(guī)避I/O瓶頸,從而提高系統(tǒng)性能。這些技術(shù)通過優(yōu)化數(shù)據(jù)訪問,致力于提升I/O效率。

一、I/O 到底是什么?

比如在編寫代碼時使用鍵盤輸入,而顯示器則用于輸出圖案,這就是典型的I/O操作。我們常關(guān)注的磁盤I/O指的是硬盤和內(nèi)存之間的數(shù)據(jù)輸入輸出。當(dāng)我們讀取本地文件時,需要將磁盤中的數(shù)據(jù)拷貝到內(nèi)存中;而修改本地文件時,需要將修改后的數(shù)據(jù)拷貝回磁盤。網(wǎng)絡(luò)I/O則指的是網(wǎng)卡與內(nèi)存之間的數(shù)據(jù)輸入輸出。當(dāng)網(wǎng)絡(luò)上的數(shù)據(jù)到達(dá)時,網(wǎng)卡需要將數(shù)據(jù)拷貝到內(nèi)存中;而當(dāng)我們要發(fā)送數(shù)據(jù)給網(wǎng)絡(luò)上的其他人時,需要將數(shù)據(jù)從內(nèi)存拷貝到網(wǎng)卡中。

最終,我們的指令是由CPU執(zhí)行的,這是因?yàn)镃PU與內(nèi)存之間的交互速度遠(yuǎn)高于CPU與外部設(shè)備直接交互的速度。因此,所有I/O操作都涉及與內(nèi)存的交互。即使假設(shè)沒有內(nèi)存,讓CPU直接與外部設(shè)備交互,這仍然可以視為I/O操作??偨Y(jié)來說,I/O指的是內(nèi)存與外部設(shè)備之間的數(shù)據(jù)交互,即數(shù)據(jù)的拷貝過程。

二、創(chuàng)建 socket

在Linux中,服務(wù)端首先需要創(chuàng)建一個套接字(socket)。在Linux中,一切皆文件,因此創(chuàng)建的套接字也是一個文件,并且每個文件都有一個整數(shù)型的文件描述符(fd)來唯一標(biāo)識該文件。通過調(diào)用socket(int domain, int type, int protocol)函數(shù)來創(chuàng)建套接字。

參數(shù)domain用于選擇通信的協(xié)議族,例如選擇IPv4通信還是IPv6通信等。參數(shù)type用于選擇套接字的類型,可以是字節(jié)流套接字、數(shù)據(jù)報套接字等。參數(shù)protocol用于指定使用的協(xié)議。通常情況下,可以將protocol設(shè)為0,因?yàn)橥ㄟ^前面兩個參數(shù)可以推斷出所要使用的協(xié)議。

例如,調(diào)用socket(AF_INET, SOCK_STREAM, 0)表示使用IPv4通信,并使用字節(jié)流套接字,可以推斷出所使用的協(xié)議為TCP協(xié)議。該函數(shù)的返回值為一個整數(shù)類型,實(shí)際上就是所創(chuàng)建套接字的文件描述符(fd)。

三、bind

在創(chuàng)建了一個socket之后,我們需要為它指定一個地址和端口,這樣其他應(yīng)用程序才能找到它并與其進(jìn)行通信。為此,我們可以使用bind函數(shù)來將地址和端口與socket進(jìn)行綁定。

bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)函數(shù)的參數(shù)中,sockfd表示我們創(chuàng)建的socket的文件描述符。執(zhí)行了bind操作之后,我們的socket就可以被其他應(yīng)用程序訪問了,因?yàn)樗呀?jīng)與指定的地址和端口進(jìn)行了綁定。

簡而言之,通過調(diào)用bind函數(shù),我們可以為socket指定一個地址和端口,從而使其可以被其他應(yīng)用程序找到并進(jìn)行通信。

四、listen

在執(zhí)行了socket和bind之后,創(chuàng)建的socket處于closed狀態(tài),即不對外監(jiān)聽。為了讓socket能夠監(jiān)聽客戶端的連接請求,我們需要調(diào)用listen方法。

int listen(int sockfd, int backlog)函數(shù)用于將socket置于被動監(jiān)聽狀態(tài)。我們需要傳入創(chuàng)建的socket的文件描述符(sockfd),并指定一個backlog參數(shù)來表示監(jiān)聽隊(duì)列的大小。關(guān)于backlog的解釋有三種:

1、socket有一個隊(duì)列,用于存放已完成的連接和半連接。backlog表示這個隊(duì)列的大小。

2、socket有兩個隊(duì)列,分別為已完成的連接隊(duì)列和半連接隊(duì)列。backlog表示這兩個隊(duì)列大小之和。

3、socket有兩個隊(duì)列,分別為已完成的連接隊(duì)列和半連接隊(duì)列。backlog僅表示已完成的連接隊(duì)列的大小。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

五、accept

現(xiàn)在,我們已經(jīng)初始化好了監(jiān)聽套接字。在這個狀態(tài)下,當(dāng)客戶端連接到服務(wù)器時,我們需要處理這些已經(jīng)完成建立連接的請求。

根據(jù)之前的分析,一旦三次握手完成,建立的連接會被加入到已完成連接隊(duì)列中。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

在這種情況下,我們需要使用accept方法從已完成連接隊(duì)列中獲取連接并進(jìn)行處理。

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)函數(shù)的返回值是已完成連接的socket的文件描述符。通過這個文件描述符,我們可以對該連接進(jìn)行通信操作。如果已完成連接隊(duì)列中沒有可用的連接,調(diào)用accept的線程將會被阻塞,等待連接的到來。

使用accept方法可以從已完成連接隊(duì)列中獲取連接,并返回連接的socket文件描述符。通過這個文件描述符,我們可以進(jìn)行通信操作。如果沒有可用的連接,調(diào)用accept的線程將會被阻塞。至此,服務(wù)端的通信流程基本完成,接下來我們可以看一下客戶端的操作。

六、Connect

客戶端在建立連接時也需要創(chuàng)建一個socket,并調(diào)用connect方法進(jìn)行連接操作。在TCP協(xié)議下,經(jīng)典的三次握手操作開始進(jìn)行。當(dāng)客戶端創(chuàng)建完socket并調(diào)用connect之后,連接進(jìn)入了SYN_SEND狀態(tài)。一旦收到服務(wù)端的SYN+ACK響應(yīng),連接狀態(tài)就變?yōu)镋STABLISHED,這表示三次握手已經(jīng)完成。

int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen)函數(shù)用于在客戶端與服務(wù)端建立連接時,需要指定遠(yuǎn)程的地址和端口。一旦三次握手完成,就可以開始進(jìn)行通信了。在客戶端這邊,不需要調(diào)用bind操作,系統(tǒng)會自動選擇源IP和隨機(jī)端口。

通過一幅圖來總結(jié)建立連接的操作,我們可以看到兩個阻塞點(diǎn):

1、connect:需要阻塞等待三次握手的完成。

2、accept:需要等待可用的已完成連接,如果已完成連接隊(duì)列為空,則被阻塞。

七、read、write

一旦連接建立成功,我們就可以開始發(fā)送和接收消息了。讓我們來看一下:

1、read函數(shù)用于讀取數(shù)據(jù),從服務(wù)端的角度來看,它等待客戶端的請求。如果客戶端沒有發(fā)送請求,調(diào)用read會進(jìn)入阻塞等待狀態(tài),因?yàn)闆]有數(shù)據(jù)可讀取,這是很容易理解的。

2、write函數(shù)用于寫入數(shù)據(jù)。通常情況下,服務(wù)端在接收到客戶端的請求后,會進(jìn)行一些邏輯處理,然后將結(jié)果返回給客戶端。這個寫入操作也可能會被阻塞。

有人可能會問,為什么read在讀取不到數(shù)據(jù)時會阻塞等待,而write也會阻塞呢?因?yàn)槲覀兪褂玫氖荰CP協(xié)議,TCP協(xié)議需要確保數(shù)據(jù)的可靠、有序傳輸,并提供端到端的流量控制。因此,發(fā)送并不是直接將數(shù)據(jù)發(fā)送出去,而是先將數(shù)據(jù)拷貝到TCP的發(fā)送緩沖區(qū)中,由TCP自行控制發(fā)送的時間和邏輯,可能還包括重傳等操作。

如果我們發(fā)送數(shù)據(jù)的速度過快,導(dǎo)致接收方無法及時處理,接收方會通過TCP協(xié)議告知發(fā)送方:“別發(fā)了!我忙不過來了。”發(fā)送緩沖區(qū)是有大小限制的,如果發(fā)送緩沖區(qū)已滿,繼續(xù)調(diào)用write函數(shù)寫入數(shù)據(jù)將會被阻塞。換句話說,當(dāng)緩沖區(qū)滿了,就不能再寫入數(shù)據(jù)了。

綜上所述,無論是read還是write都有可能發(fā)生阻塞。read阻塞等待數(shù)據(jù)可讀,write阻塞等待發(fā)送緩沖區(qū)有空間可寫入。

小結(jié)一下,在 HPC 中性能是一個多方面的概念,涵蓋了很多因素,包括處理器、內(nèi)存、I/O 和網(wǎng)絡(luò)性能。HPC 系統(tǒng)的目標(biāo)是優(yōu)化所有這些因素,為需要執(zhí)行的特定任務(wù)或應(yīng)用程序提供最高級別的性能。

藍(lán)海大腦高性能大模型訓(xùn)練平臺

藍(lán)海大腦高性能大模型訓(xùn)練平臺利用工作流體作為中間熱量傳輸?shù)拿浇?將熱量由熱區(qū)傳遞到遠(yuǎn)處再進(jìn)行冷卻。支持多種硬件加速器,包括CPU、GPU、FPGA和AI等,能夠滿足大規(guī)模數(shù)據(jù)處理和復(fù)雜計算任務(wù)的需求。采用分布式計算架構(gòu),高效地處理大規(guī)模數(shù)據(jù)和復(fù)雜計算任務(wù),為深度學(xué)習(xí)、高性能計算、大模型訓(xùn)練、大型語言模型(LLM)算法的研究和開發(fā)提供強(qiáng)大的算力支持。具有高度的靈活性和可擴(kuò)展性,能夠根據(jù)不同的應(yīng)用場景和需求進(jìn)行定制化配置。可以快速部署和管理各種計算任務(wù),提高了計算資源的利用率和效率。

突破極限!構(gòu)建高性能計算驅(qū)動的超級大模型訓(xùn)練GPU集群,開啟通用人工智能新紀(jì)元

一、為什么需要大模型?

1、模型效果更優(yōu)

大模型在各場景上的效果均優(yōu)于普通模型

2、創(chuàng)造能力更強(qiáng)

大模型能夠進(jìn)行內(nèi)容生成(AIGC),助力內(nèi)容規(guī)?;a(chǎn)

3、靈活定制場景

通過舉例子的方式,定制大模型海量的應(yīng)用場景

4、標(biāo)注數(shù)據(jù)更少

通過學(xué)習(xí)少量行業(yè)數(shù)據(jù),大模型就能夠應(yīng)對特定業(yè)務(wù)場景的需求

二、平臺特點(diǎn)

1、異構(gòu)計算資源調(diào)度

一種基于通用服務(wù)器和專用硬件的綜合解決方案,用于調(diào)度和管理多種異構(gòu)計算資源,包括CPU、GPU等。通過強(qiáng)大的虛擬化管理功能,能夠輕松部署底層計算資源,并高效運(yùn)行各種模型。同時充分發(fā)揮不同異構(gòu)資源的硬件加速能力,以加快模型的運(yùn)行速度和生成速度。

2、穩(wěn)定可靠的數(shù)據(jù)存儲

支持多存儲類型協(xié)議,包括塊、文件和對象存儲服務(wù)。將存儲資源池化實(shí)現(xiàn)模型和生成數(shù)據(jù)的自由流通,提高數(shù)據(jù)的利用率。同時采用多副本、多級故障域和故障自恢復(fù)等數(shù)據(jù)保護(hù)機(jī)制,確保模型和數(shù)據(jù)的安全穩(wěn)定運(yùn)行。

3、高性能分布式網(wǎng)絡(luò)

提供算力資源的網(wǎng)絡(luò)和存儲,并通過分布式網(wǎng)絡(luò)機(jī)制進(jìn)行轉(zhuǎn)發(fā),透傳物理網(wǎng)絡(luò)性能,顯著提高模型算力的效率和性能。

4、全方位安全保障

在模型托管方面,采用嚴(yán)格的權(quán)限管理機(jī)制,確保模型倉庫的安全性。在數(shù)據(jù)存儲方面,提供私有化部署和數(shù)據(jù)磁盤加密等措施,保證數(shù)據(jù)的安全可控性。同時,在模型分發(fā)和運(yùn)行過程中,提供全面的賬號認(rèn)證和日志審計功能,全方位保障模型和數(shù)據(jù)的安全性。

三、常用配置

1、A800工作站常用配置

CPU:Intel 8358P 2.6G 11.2UFI 48M 32C 240W *2

內(nèi)存:DDR4 3200 64G *32

數(shù)據(jù)盤:960G 2.5 SATA 6Gb R SSD *2

硬盤:3.84T 2.5-E4x4R SSD *2

網(wǎng)絡(luò):雙口10G光纖網(wǎng)卡(含模塊)*1

           雙口25G SFP28無模塊光纖網(wǎng)卡(MCX512A-ADAT )*1

GPU:HV HGX A800 8-GPU 8OGB *1

電源:3500W電源模塊*4

其他:25G SFP28多模光模塊 *2

        單端口200G HDR HCA卡(型號:MCX653105A-HDAT) *4

         2GB SAS 12Gb 8口 RAID卡 *1

         16A電源線纜國標(biāo)1.8m *4

         托軌 *1

         主板預(yù)留PCIE4.0x16接口 *4

         支持2個M.2 *1

         原廠質(zhì)保3年 *1

2、A100工作站常用配置

CPU:Intel Xeon Platinum 8358P_2.60 GHz_32C 64T_230W *2

RAM:64GB DDR4 RDIMM服務(wù)器內(nèi)存 *16

SSD1:480GB 2.5英寸SATA固態(tài)硬盤 *1

SSD2:3.84TB 2.5英寸NVMe固態(tài)硬盤 *2

GPU:NVIDIA TESLA A100 80G SXM *8

網(wǎng)卡1:100G 雙口網(wǎng)卡IB 邁絡(luò)思 *2

網(wǎng)卡2:25G CX5雙口網(wǎng)卡 *1

3、H100工作站常用配置

CPU:英特爾至強(qiáng)Platinum 8468 48C 96T 3.80GHz 105MB 350W *2

內(nèi)存:動態(tài)隨機(jī)存取存儲器64GB DDR5 4800兆赫 *24

存儲:固態(tài)硬盤3.2TB U.2 PCIe第4代 *4

GPU :Nvidia Vulcan PCIe H100 80GB *8

平臺 :HD210 *1

散熱 :CPU+GPU液冷一體散熱系統(tǒng) *1

網(wǎng)絡(luò) :英偉達(dá)IB 400Gb/s單端口適配器 *8

電源:2000W(2+2)冗余高效電源 *1

4、H800工作站常用配置

CPU:Intel Xeon Platinum 8468 Processor,48C64T,105M Cache 2.1GHz,350W *2

內(nèi)存 :64GB 3200MHz RECC DDR4 DIMM *32

系統(tǒng)硬盤: intel D7-P5620 3.2T NVMe PCle4.0x4 3DTLCU.2 15mm 3DWPD *4

GPU: NVIDIA Tesla H800 -80GB HBM2 *8

GPU網(wǎng)絡(luò): NVIDIA 900-9×766-003-SQO PCle 1-Port IB 400 OSFP Gen5 *8

存儲網(wǎng)絡(luò) :雙端口 200GbE IB *1

網(wǎng)卡 :25G網(wǎng)絡(luò)接口卡 雙端口 *1

(本內(nèi)容屬于網(wǎng)絡(luò)轉(zhuǎn)載,文中涉及圖片等內(nèi)容如有侵權(quán),請聯(lián)系編輯刪除。市場有風(fēng)險,選擇需謹(jǐn)慎!此文僅供參考,不作買賣及投資依據(jù)。)

原創(chuàng)文章,作者:陳晨,如若轉(zhuǎn)載,請注明出處:http://2079x.cn/article/573296.html

陳晨陳晨管理團(tuán)隊(duì)

相關(guān)推薦