欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探索AIGC未來(lái):CPU源碼優(yōu)化、多GPU編程與中國(guó)算力瓶頸與發(fā)展

GPU視覺(jué)識(shí)別 ? 來(lái)源:GPU視覺(jué)識(shí)別 ? 作者:GPU視覺(jué)識(shí)別 ? 2023-12-08 11:49 ? 次閱讀

人工智能;大數(shù)據(jù)技術(shù);AIGC;Turbo;DALL·E 3;多模態(tài)大模型;MLLM;LLM;Agent;Llama2;國(guó)產(chǎn)GPU芯片;GPU;CPU;高性能計(jì)算機(jī);邊緣計(jì)算;大模型顯存占用;5G;深度學(xué)習(xí);A100;H100;A800;H800;L40s;Intel;英偉達(dá);算力

近年來(lái),AIGC的技術(shù)取得了長(zhǎng)足的進(jìn)步,其中最為重要的技術(shù)之一是基于源代碼的CPU調(diào)優(yōu),可以有效地提高人工智能模型的訓(xùn)練速度和效率,從而加快了人工智能的應(yīng)用進(jìn)程。同時(shí),多GPU編程技術(shù)也在不斷發(fā)展,大大提高人工智能模型的計(jì)算能力,更好地滿足實(shí)際應(yīng)用的需求。

本文將分析AIGC的最新進(jìn)展,深入探討以上話題,以及中國(guó)算力產(chǎn)業(yè)的瓶頸和趨勢(shì)。

AIGC發(fā)展現(xiàn)狀

AIGC產(chǎn)業(yè)在上半年經(jīng)歷“百模大戰(zhàn)”和“百花齊放”的階段后,現(xiàn)在正站在從“玩具”到“工具”的關(guān)鍵時(shí)期。大模型市場(chǎng)格局發(fā)生深刻變化,行業(yè)關(guān)注焦點(diǎn)也轉(zhuǎn)向人工智能發(fā)展的“終極命題”——應(yīng)用與商業(yè)化落地。AIGC研發(fā)范式的變革從根本上提高數(shù)據(jù)生產(chǎn)效率,降低使用者和開(kāi)發(fā)者的門(mén)檻。

為提升模型的能力和效用,行業(yè)共同關(guān)注放大模型能力的有效途徑,如微調(diào)、提示工程、搜索增強(qiáng)生成、AI Agent等技術(shù)手段。同時(shí),開(kāi)源模型迅速發(fā)展,產(chǎn)品向終端延伸,結(jié)合更多AI應(yīng)用技術(shù),推動(dòng)應(yīng)用場(chǎng)景多元化。然而,由于政策面向C端設(shè)置準(zhǔn)入門(mén)檻,標(biāo)準(zhǔn)體系覆蓋多個(gè)行業(yè),強(qiáng)調(diào)數(shù)據(jù)、算法、模型和安全因素的重要性,因此“百模大戰(zhàn)”回歸理性,行業(yè)格局邁入整合階段。

2023 Q3國(guó)內(nèi)AIGC行業(yè)發(fā)生融資事件35起,涉及公司33家,投資機(jī)構(gòu)51家。融資金額39.61億人民幣,種子輪~天使輪21家(占比63.64%)。通用大模型(6起)和工具平臺(tái)(6起)兩個(gè)細(xì)分賽道相對(duì)活躍。在應(yīng)用層中,元宇宙/數(shù)字人(5起)和營(yíng)銷(5起)是融資事件最頻繁的細(xì)分領(lǐng)域。有1家國(guó)內(nèi)AIGC企業(yè)完成上市——第四范式(決策類人工智能公司)。2023年Q3國(guó)內(nèi)AIGC行業(yè)發(fā)生1起并購(gòu)事件——美團(tuán)收購(gòu)光年之外,融資額20.65億元。

一、技術(shù)迭代

1、多模態(tài)大模型DALL·E 3帶來(lái)產(chǎn)業(yè)沖擊

多模態(tài)大語(yǔ)言模型(MLLM)是一種將文本、圖像、音頻視頻等多模態(tài)信息結(jié)合訓(xùn)練的模型,相比大語(yǔ)言模型(LLM)更符合人類感知世界的方式。通過(guò)多模態(tài)輸入的支持,用戶可以更靈活的方式與智能助手進(jìn)行交互,并利用強(qiáng)大的大模型作為大腦來(lái)執(zhí)行多模態(tài)任務(wù)。

DALL·E 3能夠更好地捕捉語(yǔ)義描述的細(xì)微差異,實(shí)現(xiàn)提示詞的完美遵循,并高效避免混淆詳細(xì)請(qǐng)求中的元素,在畫(huà)面呈現(xiàn)方面取得明顯進(jìn)步。同時(shí),文生圖模型與ChatGPT的結(jié)合,極大地減少了提示工程的約束。

wKgZomVykj-ATMEHAAAAK9URceg840.gif

2、長(zhǎng)文本技術(shù)增強(qiáng)產(chǎn)品用戶體驗(yàn)

LLM中的“上下文長(zhǎng)度”是指大語(yǔ)言模型在生成預(yù)測(cè)時(shí)考慮的輸入文本長(zhǎng)度。更長(zhǎng)的文本建模能力使模型能夠觀察到更長(zhǎng)的上下文,避免重要信息的丟失。大模型的應(yīng)用效果取決于兩個(gè)核心指標(biāo):模型參數(shù)量和上下文長(zhǎng)度。其中,上下文長(zhǎng)度決定大模型的“內(nèi)存”能力,長(zhǎng)文本可以提供更多上下文和細(xì)節(jié)信息來(lái)輔助模型判斷語(yǔ)義,減少歧義,提高歸納和推理的準(zhǔn)確性。

目前,國(guó)內(nèi)外對(duì)于文本長(zhǎng)度的探索還沒(méi)有達(dá)到“臨界點(diǎn)”,長(zhǎng)文本在未來(lái)的Agent和AI原生應(yīng)用中仍然扮演著重要角色。Agent需要依靠歷史信息進(jìn)行規(guī)劃和決策,而AI原生應(yīng)用需要依靠上下文來(lái)保持連貫、個(gè)性化的用戶體驗(yàn)。這也是為什么像月之暗面、OpenAI等大模型公司關(guān)注長(zhǎng)文本技術(shù)的原因。

wKgZomVykkCADeuVAAJGdmPMGck874.png

3、Llama2掀起大模型市場(chǎng)新格局

Llama是Meta發(fā)布的一款使用公開(kāi)數(shù)據(jù)集訓(xùn)練的大型語(yǔ)言模型,因其與開(kāi)源協(xié)議的兼容性和可復(fù)現(xiàn)性而受到AI社區(qū)歡迎。但受限于開(kāi)源協(xié)議,LLaMA僅限學(xué)術(shù)研究使用,不能用于商業(yè)用途。

相比Llama 1,Llama 2預(yù)訓(xùn)練語(yǔ)料庫(kù)增加40%,達(dá)到2萬(wàn)億Tokens。9月,Llama2的token已達(dá)32,768個(gè),并采用分組查詢注意力機(jī)制,對(duì)文本語(yǔ)義的理解更深入。在MMLU和GSM8K測(cè)試中,Llama 2 70B的性能接近GPT-3.5。

wKgZomVykj-ATMEHAAAAK9URceg840.gif

wKgaomVykkGAEVBhAAJYB74zQ0g037.png

4、AI Agent深入挖掘大模型潛力

Agent是指具有自主性、反應(yīng)性、社會(huì)性、預(yù)動(dòng)性、慎思性和認(rèn)知性等智能特征的軟件或硬件實(shí)體,等于大模型+記憶+主動(dòng)規(guī)劃+工具。AI Agent能夠理解、規(guī)劃、執(zhí)行和自我調(diào)整,解決更復(fù)雜的問(wèn)題。與LLM相比,AI Agent能夠獨(dú)立思考并調(diào)用工具逐步完成目標(biāo),區(qū)別于RPA的是其能夠處理未知環(huán)境信息。

wKgZomVykj-ATMEHAAAAK9URceg840.gif

wKgZomVykkGAXXINAAOZCm7OEZQ475.png

AI Agent與其他技術(shù)選型方案發(fā)展及優(yōu)劣勢(shì)比較

二、技術(shù)趨勢(shì)

1、擁抱開(kāi)源精神,國(guó)產(chǎn)模型的崛起已成燎原之勢(shì)

在國(guó)家的大力支持和頭部廠商的推動(dòng)下,國(guó)產(chǎn)模型已成為大語(yǔ)言模型陣營(yíng)中的重要力量。盡管起步較晚,且面臨國(guó)外高端GPU芯片的圍堵,但國(guó)產(chǎn)模型的崛起之勢(shì)已成燎原?;A(chǔ)的互聯(lián)網(wǎng)大廠積極推動(dòng)開(kāi)源生態(tài)體系的構(gòu)建。

wKgZomVykj-ATMEHAAAAK9URceg840.gif

wKgaomVykkKAJInvAAQO2s3orzo766.png

國(guó)內(nèi)AI大模型發(fā)展進(jìn)程 (截至2023年Q3)

2、大模型產(chǎn)品向終端延伸,推動(dòng)應(yīng)用場(chǎng)景多元化發(fā)展

大模型開(kāi)源、多模態(tài)和Agent等技術(shù)將帶來(lái)全新、個(gè)性化、人性化的交互體驗(yàn)。未來(lái),大模型將部署在手機(jī)、PC、汽車、人形機(jī)器人等終端,解決云端AI在成本、能耗、性能、隱私、安全和個(gè)性化等方面的問(wèn)題,并拓寬自動(dòng)駕駛、智慧教育、智慧家居等場(chǎng)景的多元化應(yīng)用。然而,如何在端側(cè)實(shí)現(xiàn)輕量部署和軟硬件深度融合仍是難點(diǎn)問(wèn)題。

wKgZomVykj-ATMEHAAAAK9URceg840.gif

wKgZomVykkKAfK5bAAReBp0utAc138.png

企業(yè)私有化部署大模型綜合成本持續(xù)降低

大模型應(yīng)用落地成本包括數(shù)據(jù)、模型和應(yīng)用開(kāi)發(fā)成本。模型成本包括授權(quán)成本和算力成本。隨著Llama2推動(dòng)國(guó)內(nèi)模型的商用免費(fèi)化,MaaS逐漸被市場(chǎng)接受,授權(quán)成本過(guò)高的壁壘正在消失。通過(guò)QLoRA微調(diào)和GPTQ量化,中小企業(yè)也可以使用千億級(jí)模型,算力成本大幅降低。企業(yè)私有化部署綜合成本持續(xù)降低,有利于大模型對(duì)B端市場(chǎng)的滲透。

wKgZomVykj-ATMEHAAAAK9URceg840.gif

wKgaomVykkOAK9NLAAPympCadOc120.png

三、如何確定大模型顯存占用?

在部署大模型時(shí),顯存占用是個(gè)關(guān)鍵問(wèn)題。大模型因其巨大規(guī)模,要么因顯存溢出而無(wú)法運(yùn)行,要么因模型過(guò)大導(dǎo)致推理速度慢。優(yōu)化大模型的推理與優(yōu)化小模型CNN的推理有所不同。下面將主要探討如何計(jì)算大模型的顯存占用。

以流行的LLama2大模型為例,主要有7B、13B、70B三個(gè)版本。B(Billion)是十億,M(Million)是百萬(wàn),所以LLama2這類大模型可稱為十億、百億級(jí)大模型。

對(duì)于深度學(xué)習(xí)模型,精度通常有float32、float16、int8、int4等。后面的int8、int4等低精度主要用于推理加速。比如,一個(gè)float32會(huì)占用4個(gè)字節(jié)32個(gè)比特,往后就減半,如int8是1字節(jié)占用8比特,int4的占用空間會(huì)更加小。參數(shù)量和模型精度可以用來(lái)計(jì)算模型的顯存占用。以LLama2-13B為例:

對(duì)于float32精度:13 * 10^9 * 4 / 1024^3 約等于 48.42G
對(duì)于float16精度:13 * 10^9 * 2 / 1024^3 約等于 24.21G

以此類推,計(jì)算LLama2-7B的顯存占用。

對(duì)于float32精度:7 * 10^9 * 4 / 1024^3 約等于 26.08G;

對(duì)于float16精度顯存減半:約等于 13G;

對(duì)于int8精度再減半:約等于6.5G;

對(duì)于int4精度再減半:約等于3.2G。

可見(jiàn)低比特量化在大模型部署顯存管理中的重要性。上述推理顯存占用只適用于模型前向推理,不適用于模型訓(xùn)練。訓(xùn)練過(guò)程中還會(huì)受梯度、優(yōu)化器參數(shù)、bs等因素影響。一般經(jīng)驗(yàn)來(lái)說(shuō),訓(xùn)練時(shí)的顯存占用會(huì)是推理時(shí)的好多倍,甚至十幾倍。上述推理顯存占用是理論值,實(shí)際肯定會(huì)更多一些,因此需要預(yù)留一些余量。例如,實(shí)測(cè)LLama2-13B時(shí),理論值約為48.21G,但實(shí)際需要大約52G的顯存。當(dāng)然,這種方法也適用于CNN模型的前向推理顯存占用計(jì)算。

基于源代碼的CPU調(diào)優(yōu)

對(duì)于高性能應(yīng)用,如云服務(wù)、科學(xué)計(jì)算和3A游戲等,硬件基礎(chǔ)至關(guān)重要。忽視硬件因素可能導(dǎo)致性能瓶頸。標(biāo)準(zhǔn)算法和數(shù)據(jù)結(jié)構(gòu)在某些場(chǎng)景下可能無(wú)法提供最佳性能。

一、CPU前端優(yōu)化

隨著“扁平化”數(shù)據(jù)結(jié)構(gòu)的普及,鏈表逐漸被淘汰。傳統(tǒng)鏈表每個(gè)節(jié)點(diǎn)動(dòng)態(tài)分配內(nèi)存,導(dǎo)致內(nèi)存訪問(wèn)延遲和碎片化。這使得遍歷鏈表比遍歷數(shù)組更耗時(shí)。有些數(shù)據(jù)結(jié)構(gòu)(如二叉樹(shù))有類似鏈表的天然結(jié)構(gòu),使用指針追蹤實(shí)現(xiàn)可能更高效。另外,更高效的數(shù)據(jù)結(jié)構(gòu)版本如boost::flat_map 和 boost::flat_set也存在。

特定問(wèn)題的最優(yōu)算法在特定場(chǎng)景中可能不是最好的選擇。例如,二分搜索在排序數(shù)組中查找元素很高效,但分支預(yù)測(cè)錯(cuò)誤可能導(dǎo)致其在大規(guī)模數(shù)據(jù)中表現(xiàn)不佳。因此,在處理小規(guī)模整型數(shù)組時(shí),線性搜索可能更有效??傊?,針對(duì)高性能應(yīng)用,需要深入理解硬件和算法性能,并靈活選擇和優(yōu)化合適的算法和數(shù)據(jù)結(jié)構(gòu)以適應(yīng)不同場(chǎng)景。

“數(shù)據(jù)驅(qū)動(dòng)”優(yōu)化是一種重要的調(diào)優(yōu)技術(shù),基于對(duì)程序處理數(shù)據(jù)的深入理解。專注于數(shù)據(jù)的分布和在程序中的轉(zhuǎn)化方式。其中一個(gè)典型的例子是將數(shù)組結(jié)構(gòu)體(SOA)轉(zhuǎn)換為結(jié)構(gòu)體數(shù)組(AOS)。選擇哪種布局取決于代碼訪問(wèn)數(shù)據(jù)的方式。如果程序遍歷數(shù)據(jù)結(jié)構(gòu)并僅訪問(wèn)字段b,則SOA更有效,這主要是由于所有內(nèi)存訪問(wèn)都是按順序執(zhí)行;如果程序遍歷數(shù)據(jù)結(jié)構(gòu)并對(duì)對(duì)象的所有字段(即a、b和c)進(jìn)行大量操作,則AOS更佳,因?yàn)樗谐蓡T都可能保存在相同的緩存行中,減少緩存行讀取,提高內(nèi)存帶寬利用率。要進(jìn)行此類優(yōu)化,需要了解程序?qū)⑻幚砟男?shù)據(jù)和數(shù)據(jù)的分布情況,并相應(yīng)地修改程序。

wKgZomVykkOAbJqLAAHzB_4NxDA334.png

另一個(gè)重要的數(shù)據(jù)驅(qū)動(dòng)優(yōu)化方法是“小尺寸優(yōu)化”,旨在為容器預(yù)先分配固定量的內(nèi)存,以避免動(dòng)態(tài)內(nèi)存分配。該方法在LLVM基礎(chǔ)設(shè)施中廣泛應(yīng)用,并可顯著提升性能(如對(duì)于SmallVector,boost::static_vector也是基于相同概念實(shí)現(xiàn))?,F(xiàn)代CPU是非常復(fù)雜的設(shè)備,幾乎不可能預(yù)測(cè)某段代碼的運(yùn)行方式。CPU指令的執(zhí)行受制于眾多因素,包括許多變化的組件。

1、機(jī)器碼布局

機(jī)器碼布局指編譯器將源代碼轉(zhuǎn)化為串行的字節(jié)列。由于編譯器會(huì)影響到二進(jìn)制文件的性能,因此在將源代碼翻譯為機(jī)器碼時(shí),會(huì)考慮到指令在內(nèi)存中的放置偏移位置。

2、基本塊

基本塊是指具有單個(gè)入口和出口的指令序列,可以有多個(gè)前驅(qū)和后繼,但在基本塊中間沒(méi)有任何指令可以跳出基本塊。這種結(jié)構(gòu)確保了基本塊中的每條代碼只會(huì)被執(zhí)行一次,從而大大減少控制流圖分析和轉(zhuǎn)換的問(wèn)題。

3、基本塊布局

// hot path

if (cond)

coldFunc();

// hot path again

如果條件cond通常為真,那么選擇默認(rèn)布局,因?yàn)榱硪粋€(gè)布局會(huì)導(dǎo)致兩次而不是一次跳轉(zhuǎn)。coldFunc是錯(cuò)誤處理函數(shù),不太可能經(jīng)常執(zhí)行,因此選擇保持熱點(diǎn)代碼間的直通,并將選取分支轉(zhuǎn)化為未被選取分支。選擇這種布局的原因如下:

1)CPU每個(gè)時(shí)鐘可以執(zhí)行2個(gè)未被選擇的分支,但每2個(gè)時(shí)鐘周期才能執(zhí)行一個(gè)被選取的分支,因此未被選取的分支比被選取時(shí)耗時(shí)更少。

2)所有熱點(diǎn)代碼都是連續(xù)的,沒(méi)有緩存行碎片化問(wèn)題,因此可以更充分利用指令和微操作緩存。

3)每個(gè)被選取的跳轉(zhuǎn)指令都意味著跳轉(zhuǎn)之后的字節(jié)都是無(wú)效的,因此被選取的分支對(duì)于讀取單元來(lái)說(shuō)也更耗時(shí)。

4、基本塊對(duì)齊

性能因指令在內(nèi)存中的偏移而變化。若循環(huán)跨越多條緩存行,CPU前端可能會(huì)出現(xiàn)性能問(wèn)題。因此,可以使用nop指令將循環(huán)提前,使其整個(gè)循環(huán)位于一條緩存行中。

LLVM使用-mllvm-align-all-blocks對(duì)齊基本塊,但可能造成性能劣化。插入nop指令會(huì)增加程序開(kāi)銷,尤其在關(guān)鍵路徑上。盡管nop指令不需要執(zhí)行,但仍需從內(nèi)存中讀取、解碼和執(zhí)行,消耗前端數(shù)據(jù)結(jié)構(gòu)和記賬緩沖區(qū)空間。

為精確控制對(duì)齊,可使用ALIGN匯編指令。開(kāi)發(fā)人員先生成匯編列表,然后插入ALIGN指令以滿足特定實(shí)驗(yàn)場(chǎng)景的需求。

5、函數(shù)拆分

函數(shù)拆分是為了優(yōu)化在熱點(diǎn)路徑具有復(fù)雜CFG和大量冷代碼的函數(shù)。通過(guò)將冷代碼移動(dòng)到單獨(dú)的函數(shù)中,可以避免在運(yùn)行時(shí)加載不必要的代碼,從而改善內(nèi)存占用情況。

在優(yōu)化后的代碼中,將原來(lái)的函數(shù)拆分為兩個(gè)函數(shù),一個(gè)包含熱點(diǎn)代碼,另一個(gè)包含冷代碼。通過(guò)將冷代碼移動(dòng)到單獨(dú)的函數(shù)中,可以避免在運(yùn)行時(shí)加載不必要的代碼,從而改善內(nèi)存占用情況。同時(shí),使用__attribute__((noinline))禁止內(nèi)聯(lián)冷函數(shù),以避免冷函數(shù)被內(nèi)聯(lián)到熱點(diǎn)代碼中,從而影響性能。

通過(guò)將熱點(diǎn)代碼和冷代碼分離,可以更好地利用CPU前端數(shù)據(jù)結(jié)構(gòu)(指令緩存和DSB),提高CPU的利用率。同時(shí),將新函數(shù)放在.text段之外,可以避免在運(yùn)行時(shí)加載不必要的代碼,從而改善內(nèi)存占用情況。

6、函數(shù)分組

熱點(diǎn)函數(shù)可以聚集在一起,以提高CPU前端緩存的利用率,降低緩存行的讀取需求。鏈接器負(fù)責(zé)規(guī)劃程序中所有函數(shù)的排列布局,LLD鏈接器通過(guò)--symbol-ordering-file優(yōu)化函數(shù)布局。HFSort工具能根據(jù)剖析數(shù)據(jù)自動(dòng)生成分區(qū)排序文件。

7、基于剖析文件的編譯優(yōu)化

大多數(shù)編譯器具備一組轉(zhuǎn)換功能,可根據(jù)剖析數(shù)據(jù)來(lái)調(diào)整算法,這被稱為PGO(Profile-Directed Optimization)。剖析數(shù)據(jù)生成有兩種方式:代碼插樁和基于采樣的剖析。

1)利用LLVM編譯器通過(guò)-fprofile-instr-generate參數(shù)生成插樁代碼,再使用-fprofile-inst-use參數(shù)利用剖析數(shù)據(jù)重新編譯程序,生成PGO調(diào)優(yōu)的二進(jìn)制文件。

2)基于采樣生成編譯器所需的剖析數(shù)據(jù),然后通過(guò)AutoFDO工具將linux perf生成的采樣數(shù)據(jù)轉(zhuǎn)換為GCC和LLVM編譯器可理解的形式。但編譯器會(huì)假設(shè)所有負(fù)載表現(xiàn)相同。

8、對(duì)ITLB的優(yōu)化

內(nèi)存中的虛地址到物理地址轉(zhuǎn)換是前端優(yōu)化的關(guān)鍵領(lǐng)域之一。通過(guò)將性能關(guān)鍵代碼映射到大頁(yè)上,可以減輕ITLB(指令翻譯緩沖)的壓力。這需要重新鏈接二進(jìn)制文件,確保代碼段在適當(dāng)?shù)捻?yè)邊界對(duì)齊。除使用大頁(yè),還可以采用其他技術(shù)來(lái)優(yōu)化指令緩存性能,如重新排列函數(shù)以使熱點(diǎn)函數(shù)更集中,使用LTO(鏈接時(shí)間優(yōu)化)/IPO(內(nèi)聯(lián)函數(shù)優(yōu)化)來(lái)減小熱點(diǎn)區(qū)域的大小,使用PGO(基于剖析的編譯優(yōu)化)并避免過(guò)度內(nèi)聯(lián)。

wKgaomVykkSALyBiAACjhhCR-HY585.png

二、CPU后端優(yōu)化

在計(jì)算機(jī)處理過(guò)程中,前端完成取指和譯碼后,如果后端資源不足無(wú)法處理新的微操作,會(huì)導(dǎo)致前端無(wú)法繼續(xù)交付微操作。例如,當(dāng)數(shù)據(jù)緩存未命中或除法單元過(guò)載時(shí),后端無(wú)法高效處理指令,從而造成前端停滯。

1、存儲(chǔ)bound

當(dāng)應(yīng)用程序進(jìn)行大量?jī)?nèi)存訪問(wèn)并花費(fèi)較長(zhǎng)時(shí)間等待內(nèi)存訪問(wèn)完成時(shí),被視為存儲(chǔ)bound。這意味著需要優(yōu)化存儲(chǔ)訪問(wèn)情況,減少存儲(chǔ)訪問(wèn)次數(shù)或升級(jí)存儲(chǔ)子系統(tǒng)。

在TMA中,存儲(chǔ)bound會(huì)統(tǒng)計(jì)CPU流水線由于按需加載或存儲(chǔ)指令而阻塞的部分槽位。解決此類性能問(wèn)題的第一步是定位導(dǎo)致高“存儲(chǔ)bound”指標(biāo)的訪存操作,并識(shí)別具體的訪存操作。然后開(kāi)始進(jìn)行調(diào)優(yōu)。

1)緩存友好的數(shù)據(jù)類型

關(guān)于緩存友好算法和數(shù)據(jù)結(jié)構(gòu)是性能關(guān)鍵要素之一,重點(diǎn)在于時(shí)間和空間局部性原則,目標(biāo)是從緩存中高效地讀取所需的數(shù)據(jù)。

按順序訪問(wèn)數(shù)據(jù)

利用緩存空間局部性的最佳方法是順序訪問(wèn)內(nèi)存。標(biāo)準(zhǔn)實(shí)現(xiàn)二分搜索不會(huì)利用空間局部性,而解決這個(gè)問(wèn)題的方法之一是Eytzinger布局存儲(chǔ)數(shù)組元素。其思想是維護(hù)一個(gè)隱式二叉搜索樹(shù),并使用類似廣度優(yōu)先搜索的布局將二叉搜索樹(shù)打包到一個(gè)數(shù)組中。

使用適當(dāng)容器

幾乎所有語(yǔ)言都提供各種現(xiàn)成的容器,理解它們底層存儲(chǔ)機(jī)制和性能影響至關(guān)重要。在處理數(shù)據(jù)時(shí),需要根據(jù)代碼的具體情況來(lái)選擇合適的數(shù)據(jù)存儲(chǔ)方式。

打包數(shù)據(jù)

提高內(nèi)存層次利用率的一種方式是使數(shù)據(jù)更加緊湊。打包數(shù)據(jù)的一個(gè)經(jīng)典例子就是使用位存儲(chǔ),可以極大地減少來(lái)回傳輸?shù)膬?nèi)存數(shù)量,同時(shí)節(jié)省緩存空間。然而,由于b和a與c共享一個(gè)機(jī)器字,編譯器需要執(zhí)行移位操作。在額外計(jì)算的開(kāi)銷比低效內(nèi)存轉(zhuǎn)移開(kāi)銷低的情況下,打包數(shù)據(jù)是值得的。

對(duì)于結(jié)構(gòu)體或類中的字段布局,程序員可以通過(guò)重新排列來(lái)減少內(nèi)存的使用,同時(shí)避免由編譯器添加結(jié)構(gòu)體填充。例如,如果有一個(gè)結(jié)構(gòu)體包含一個(gè)布爾值和一個(gè)整數(shù),最好將整數(shù)放在前面,因?yàn)檫@樣可以使用整數(shù)的位來(lái)存儲(chǔ)布爾值,從而節(jié)省內(nèi)存。

對(duì)齊與填充

當(dāng)變量存儲(chǔ)在能被其大小整除的內(nèi)存地址時(shí),訪問(wèn)效率最高。對(duì)齊可能導(dǎo)致未使用的字節(jié)形成空位,降低內(nèi)存帶寬利用率。為避免邊緣情況如緩存爭(zhēng)用和偽共享,需要填充數(shù)據(jù)結(jié)構(gòu)成員。例如,兩個(gè)線程訪問(wèn)同一結(jié)構(gòu)體的不同字段時(shí),緩存一致性問(wèn)題可能導(dǎo)致程序運(yùn)行速度明顯降低。通過(guò)填充方法,可確保結(jié)構(gòu)體的不同字段位于不同的緩存行。當(dāng)使用malloc進(jìn)行動(dòng)態(tài)分配時(shí),要確保返回的內(nèi)存地址滿足平臺(tái)目標(biāo)的最小對(duì)齊要求。最重要的是,對(duì)于SIMD代碼,當(dāng)使用編譯器向量化內(nèi)建函數(shù)時(shí),地址通常要被16、32或64整除。

動(dòng)態(tài)內(nèi)存分配

malloc的替代方案往往更快、更可擴(kuò)展,更能有效地處理內(nèi)存碎片問(wèn)題。動(dòng)態(tài)內(nèi)存分配的一個(gè)挑戰(zhàn)在于,多個(gè)線程可能同時(shí)嘗試申請(qǐng)內(nèi)存,導(dǎo)致效率降低。

為解決此問(wèn)題,可以使用自定義分配器加速內(nèi)存分配。這類分配器的優(yōu)勢(shì)在于開(kāi)銷較低,因?yàn)楸苊饬嗣看蝺?nèi)存分配都進(jìn)行系統(tǒng)調(diào)用。同時(shí),也具有高度靈活性,允許開(kāi)發(fā)者根據(jù)操作系統(tǒng)的內(nèi)存區(qū)域來(lái)實(shí)現(xiàn)自己的分配策略。一種策略是維護(hù)兩個(gè)不同的分配器,各自負(fù)責(zé)熱數(shù)據(jù)和冷數(shù)據(jù)的分配。將熱數(shù)據(jù)放在一起可以共享高速緩存行,從而提高內(nèi)存帶寬利用率和空間局部性。同時(shí),這種策略還可以提高TLB利用率,因?yàn)闊釘?shù)據(jù)占用的內(nèi)存頁(yè)更少。此外,自定義內(nèi)存分配器還可以利用線程本地存儲(chǔ)來(lái)實(shí)現(xiàn)每個(gè)線程的獨(dú)立分配,從而消除線程間的同步問(wèn)題。

針對(duì)存儲(chǔ)器層次調(diào)優(yōu)代碼

某些應(yīng)用程序的性能取決于特定層緩存的大小,最著名的例子是使用循環(huán)分塊來(lái)改進(jìn)矩陣乘法。

2)顯式內(nèi)存預(yù)取

當(dāng)arr數(shù)組規(guī)模較大時(shí),硬件預(yù)取可能無(wú)法識(shí)別訪存模式并提前獲取所需數(shù)據(jù)。為在計(jì)算j與arrp[j]請(qǐng)求之間的時(shí)間窗口內(nèi)手動(dòng)添加預(yù)取指令,可使用__builtin_prefetch,如下所示:

for (int i = 0; i < N; ++i) {
int j = calNextIndex();
__builtin_prefetch(arr + j, 0, 1);
// ...
doSomeExtensiveComputation();
// ...
x = arr[j];
}

為使預(yù)取有效,需提前插入預(yù)取指示,確保用于計(jì)算的值在計(jì)算時(shí)已加載到緩存中,同時(shí)避免過(guò)早插入預(yù)取提示以避免污染緩存。

顯式內(nèi)存預(yù)取不可移植,一個(gè)平臺(tái)上的性能提升無(wú)法保證在另一個(gè)平臺(tái)上也有相同效果。此外,顯式預(yù)取指令會(huì)增加代碼大小并增加CPU前端的壓力。

3)針對(duì)DTLB優(yōu)化

TLB分為ITLB和DTLB在L1,統(tǒng)一TLB在L2。L1 ITLB未命中時(shí)延很小,通常被亂序執(zhí)行隱藏。統(tǒng)一TLB未命中會(huì)調(diào)用頁(yè)遍歷器,可能導(dǎo)致性能損失。

Linux默認(rèn)頁(yè)面大小為4KB,增大頁(yè)大小可減少TLB條目和未命中次數(shù)。Intel 64和AMD 64支持2MB和1GB巨型頁(yè)。使用大頁(yè)的TLB更緊湊,遍歷內(nèi)核頁(yè)表的代價(jià)減少。

在Linux系統(tǒng)中,應(yīng)用程序使用大頁(yè)的方法有顯式大頁(yè)和透明大頁(yè)。使用libhugetlbfs庫(kù)可動(dòng)態(tài)分配大頁(yè)內(nèi)存。開(kāi)發(fā)者可以通過(guò)以下方式控制對(duì)大頁(yè)的訪問(wèn):帶MAP_HUGETLB參數(shù)使用mmap;掛載hugetlbfs文件系統(tǒng)中的文件使用mmap;對(duì)SHM_HUGETLB參數(shù)使用shmget。

2、計(jì)算bound

主要有兩種性能瓶頸:硬件計(jì)算資源短缺和軟件指令依賴關(guān)系。前者指執(zhí)行單元過(guò)載或執(zhí)行端口爭(zhēng)用,發(fā)生在負(fù)載頻繁執(zhí)行大量繁重指令時(shí);后者指程序數(shù)據(jù)流或指令流中的依賴關(guān)系限制了性能。下面討論函數(shù)內(nèi)聯(lián)、向量化和循環(huán)優(yōu)化等常見(jiàn)優(yōu)化手段,旨在減少執(zhí)行指令總量,提高性能。

1)函數(shù)內(nèi)聯(lián)

內(nèi)聯(lián)函數(shù)不僅可以消除函數(shù)調(diào)用的開(kāi)銷,還可以擴(kuò)展編譯器分析的范圍,進(jìn)行更多優(yōu)化。但內(nèi)聯(lián)也可能增加編譯后文件的大小和編譯時(shí)間。編譯器通?;诔杀灸P蛠?lái)決定是否內(nèi)聯(lián)函數(shù),例如LLVM會(huì)考慮計(jì)算成本和調(diào)用次數(shù)。一般而言,小函數(shù)、單一調(diào)用點(diǎn)的函數(shù)更可能被內(nèi)聯(lián),而大型函數(shù)和遞歸函數(shù)通常不會(huì)被內(nèi)聯(lián)。通過(guò)指針調(diào)用的函數(shù)可以用內(nèi)聯(lián)來(lái)代替直接調(diào)用。開(kāi)發(fā)者可以使用特殊提示(如C++ 11的gnu::always_inline)來(lái)強(qiáng)制內(nèi)聯(lián)函數(shù)。另一種方法是剖析數(shù)據(jù)來(lái)識(shí)別潛在的內(nèi)聯(lián)對(duì)象,特別是分析函數(shù)的參數(shù)傳遞和返回頻率。

2)循環(huán)優(yōu)化

循環(huán)是程序中執(zhí)行最頻繁的代碼段,因此大部分執(zhí)行時(shí)間都在循環(huán)中消耗。循環(huán)的性能受到內(nèi)存延遲、內(nèi)存帶寬或計(jì)算能力的限制。屋頂線模型是一個(gè)很好的基于硬件理論最大值的評(píng)估不同循環(huán)的方法,TMA分析是另一種處理這種瓶頸的方法。

低層優(yōu)化

通過(guò)將循環(huán)中永遠(yuǎn)不會(huì)改變的表達(dá)式移到循環(huán)外,進(jìn)行循環(huán)不變量外提,有助于提高算術(shù)強(qiáng)度性能。循環(huán)展開(kāi)可以增加指令級(jí)并行,同時(shí)減少循環(huán)開(kāi)銷,但不建議開(kāi)發(fā)者手動(dòng)展開(kāi)任何循環(huán),因?yàn)榫幾g器非常擅長(zhǎng)并以最佳方式展開(kāi)循環(huán)。借助亂序執(zhí)行,處理器具有“內(nèi)嵌的展開(kāi)器”。循環(huán)強(qiáng)度折疊使用開(kāi)銷更小的指令代替開(kāi)銷高的指令,應(yīng)用于所有循環(huán)變量的表達(dá)式和數(shù)組索引,編譯器通過(guò)分析變量的值在循環(huán)迭代中的演變方式來(lái)實(shí)現(xiàn)。此外,如果循環(huán)內(nèi)部有不變的判斷條件,將其移到循環(huán)外,即進(jìn)行循環(huán)判斷外提,也有助于提高性能。

高層優(yōu)化

此類優(yōu)化策略會(huì)深度改變循環(huán)結(jié)構(gòu),并可能影響多個(gè)嵌套循環(huán)的整體性能。其根本目的是提升內(nèi)存訪問(wèn)效率,解決內(nèi)存帶寬和時(shí)延的瓶頸問(wèn)題。為實(shí)現(xiàn)這個(gè)目標(biāo),可以采用以下幾種策略:通過(guò)交換嵌套循環(huán)的順序,使得對(duì)多維數(shù)組元素的內(nèi)存訪問(wèn)更加有序,從而消除帶寬和時(shí)延的限制;將多維循環(huán)的執(zhí)行范圍合理拆分為多個(gè)循環(huán)塊,使得每塊數(shù)據(jù)的訪問(wèn)能夠與CPU緩存的大小相適配,從而優(yōu)化跨步幅訪存的內(nèi)存帶寬和時(shí)延;對(duì)于可以合并的情況,將多個(gè)獨(dú)立的循環(huán)合并在一起,以減少循環(huán)開(kāi)銷,同時(shí)改善內(nèi)存訪問(wèn)的時(shí)間局部性。

但需要注意的是,循環(huán)合并并不總是能提高性能,有時(shí)候?qū)⒀h(huán)拆分為多條路徑、預(yù)過(guò)濾數(shù)據(jù)、對(duì)數(shù)據(jù)進(jìn)行排序和重組等可能更有效。拆分循環(huán)有助于解決在大循環(huán)中發(fā)生的緩存高度爭(zhēng)用問(wèn)題,還可以減少寄存器壓力,并且可以借助編譯器對(duì)小循環(huán)進(jìn)行進(jìn)一步的單獨(dú)優(yōu)化。

3)發(fā)現(xiàn)循環(huán)優(yōu)化的機(jī)會(huì)

編譯優(yōu)化報(bào)告顯示轉(zhuǎn)換失敗,需要查看由應(yīng)用程序剖析文件生成的匯編代碼的熱點(diǎn)部分。優(yōu)化的策略應(yīng)從簡(jiǎn)單的方案開(kāi)始嘗試,然后開(kāi)發(fā)者需明確循環(huán)中的瓶頸,并基于硬件理論最大值評(píng)估性能。可以使用屋頂線模型來(lái)確定需要分析的瓶頸點(diǎn),然后嘗試各種變換。

4)使用循環(huán)優(yōu)化框架

多面體框架可用于檢查循環(huán)轉(zhuǎn)換的合法性并自動(dòng)轉(zhuǎn)換循環(huán)。Polly是基于LLVM的高層循環(huán)和數(shù)據(jù)局部性優(yōu)化器及優(yōu)化基礎(chǔ)設(shè)施,采用基于整數(shù)多面體的抽象數(shù)學(xué)表示來(lái)分析和優(yōu)化程序的內(nèi)存訪問(wèn)模式。要啟用Polly,需要用戶通過(guò)顯式的編譯器選項(xiàng)(-mllvm -polly)來(lái)啟用,因?yàn)長(zhǎng)LVM基礎(chǔ)設(shè)施的標(biāo)準(zhǔn)流水線并未默認(rèn)啟用Polly。

3、向量化

使用SIMD指令可以顯著提高未向量化代碼的運(yùn)行速度。性能分析的重點(diǎn)之一是確保關(guān)鍵代碼能夠被編譯器正確向量化。如果編譯器無(wú)法生成所需的匯編指令,可以使用編譯器內(nèi)建函數(shù)重寫(xiě)代碼片段。使用編譯器內(nèi)建函數(shù)的代碼與內(nèi)聯(lián)后的匯編代碼類似,可讀性較差。通常可以通過(guò)使用編譯注解等方式來(lái)指導(dǎo)編譯器進(jìn)行自動(dòng)向量化。編譯器可以進(jìn)行三種向量化操作:內(nèi)循環(huán)自動(dòng)向量化、外循環(huán)向量化和超字向量化。

1)編譯器自動(dòng)向量化

編譯器自動(dòng)向量化受到多種因素阻礙,包括編程語(yǔ)言的固有語(yǔ)義和處理器向量操作的限制。這些因素導(dǎo)致編譯器難以有效地將循環(huán)轉(zhuǎn)換為向量化的代碼。然而,通過(guò)合法性檢查、收益檢查和轉(zhuǎn)換三個(gè)階段,可以逐步優(yōu)化代碼并提高程序的運(yùn)行速度。在合法性檢查階段,評(píng)估循環(huán)向量化是否滿足一系列條件,以確保生成的代碼正確且有效。在收益檢查階段,比較不同的向量化因子并選擇最優(yōu)的方案,同時(shí)考慮代碼的執(zhí)行成本和效率。最后,在轉(zhuǎn)換階段,將通過(guò)插入向量化的保護(hù)代碼來(lái)啟用向量化執(zhí)行,并優(yōu)化代碼以提高運(yùn)行速度。

2)探索向量化的機(jī)會(huì)

分析程序中的熱點(diǎn)循環(huán),檢查編譯器已進(jìn)行哪些優(yōu)化,最簡(jiǎn)單方法是查看編譯器向量化標(biāo)記。當(dāng)循環(huán)無(wú)法向量化時(shí),編譯器會(huì)給出失敗原因。另一種方法是檢查程序的匯編輸出,分析剖析工具的輸出更好。雖然查看匯編費(fèi)時(shí),但該技能回報(bào)高,因?yàn)榭蓮膮R編代碼中發(fā)現(xiàn)次優(yōu)代碼、缺乏向量化、次優(yōu)向量化因子、執(zhí)行不必要計(jì)算等。

向量化標(biāo)記能清晰解釋問(wèn)題及編譯器不能向量化代碼的原因。gcc 10.2可輸出優(yōu)化報(bào)告(使用參數(shù)-fopt-info啟用)。開(kāi)發(fā)者應(yīng)意識(shí)到向量化代碼的隱藏成本,尤其是AVX512可能導(dǎo)致大幅降頻。對(duì)于循環(huán)次數(shù)小的循環(huán),強(qiáng)制向量化程序使用小向量化因子或計(jì)數(shù)展開(kāi)以減少循環(huán)處理的元素?cái)?shù)量。

多GPU編程

CUDA提供多GPU編程的功能,包括在一個(gè)或多個(gè)進(jìn)程中管理多設(shè)備,使用統(tǒng)一的虛擬尋址直接訪問(wèn)其他設(shè)備內(nèi)存,GPUDirect,以及使用流和異步函數(shù)實(shí)現(xiàn)的多設(shè)備計(jì)算通信重疊。

一、從一個(gè)GPU到多GPU

在處理大規(guī)模數(shù)據(jù)集時(shí),使用多GPU是提高計(jì)算效率和吞吐量的有效方式。多GPU系統(tǒng)通過(guò)不同的連接方式,如通過(guò)PCIe總線或在集群中的網(wǎng)絡(luò)交換機(jī)連接,來(lái)實(shí)現(xiàn)高效的GPU間通信。在多GPU應(yīng)用程序中,工作負(fù)載的分配和數(shù)據(jù)交換模式是關(guān)鍵因素。最基本的模式是各問(wèn)題分區(qū)在獨(dú)立GPU上運(yùn)行,而更復(fù)雜的模式則需要考慮數(shù)據(jù)如何在設(shè)備間進(jìn)行最優(yōu)移動(dòng)以避免數(shù)據(jù)復(fù)制到主機(jī)再?gòu)?fù)制到另一GPU。

1、在多GPU上執(zhí)行

CUDA的cudaGetDeviceCount函數(shù)可確定系統(tǒng)內(nèi)可用的CUDA設(shè)備數(shù)量。在利用CUDA與多GPU協(xié)作的應(yīng)用程序中,必須顯式指定目標(biāo)GPU。使用cudaSetDevice(int id)函數(shù)可設(shè)置當(dāng)前設(shè)備,該函數(shù)將具有特定ID的設(shè)備設(shè)置為當(dāng)前設(shè)備,與其他設(shè)備無(wú)同步,因此開(kāi)銷較低。

如果在首個(gè)CUDA API調(diào)用前未顯示調(diào)用cudaSetDevice函數(shù),則當(dāng)前設(shè)備將自動(dòng)設(shè)置為設(shè)備0。選定當(dāng)前設(shè)備后,所有CUDA運(yùn)算將應(yīng)用于此設(shè)備,包括:從主線程分配的設(shè)備內(nèi)存、由CUDA運(yùn)行時(shí)函數(shù)分配的主機(jī)內(nèi)存、由主機(jī)線程創(chuàng)建的流或事件以及由主機(jī)線程啟動(dòng)的內(nèi)核。

多GPU適用于以下場(chǎng)景:?jiǎn)喂?jié)點(diǎn)的單線程、單節(jié)點(diǎn)的多線程、單節(jié)點(diǎn)的多進(jìn)程以及多節(jié)點(diǎn)的多進(jìn)程。以下代碼展示如何在主機(jī)線程中執(zhí)行內(nèi)核和內(nèi)存拷貝:

for (int i = 0; i < ngpus; i++) { ?

cudaSetDevice(i);

kernel<<>>(...);

cudaMemcpyAsync();

}

由于循環(huán)中的內(nèi)核啟動(dòng)和數(shù)據(jù)傳輸是異步的,因此在每次操作后,控制將快速返回至主機(jī)線程。

2、點(diǎn)對(duì)點(diǎn)通信

在計(jì)算能力2.0或以上的設(shè)備上,64位應(yīng)用程序執(zhí)行的內(nèi)核可以直接訪問(wèn)連接到同一PCIe根節(jié)點(diǎn)的GPU全局內(nèi)存,但需使用CUDA點(diǎn)對(duì)點(diǎn)API進(jìn)行設(shè)備間直接通信,該功能需要CUDA4.0或更高版本。點(diǎn)對(duì)點(diǎn)訪問(wèn)和傳輸是CUDA P2P API支持的兩種模式,但當(dāng)GPU連接到不同PCIe根節(jié)點(diǎn)時(shí),將不允許直接點(diǎn)對(duì)點(diǎn)訪問(wèn),此時(shí)可使用CUDA P2P API進(jìn)行點(diǎn)對(duì)點(diǎn)傳輸,但數(shù)據(jù)傳輸會(huì)通過(guò)主機(jī)內(nèi)存進(jìn)行。

1)啟用點(diǎn)對(duì)點(diǎn)訪問(wèn)

點(diǎn)對(duì)點(diǎn)訪問(wèn)允許GPU直接引用連接到同一PCIe根節(jié)點(diǎn)的其他GPU設(shè)備內(nèi)存上的數(shù)據(jù)。使用cudaDeviceCanAccessPeer檢查設(shè)備是否支持P2P,設(shè)備能直接訪問(wèn)對(duì)等設(shè)備全局內(nèi)存則返回1,否則返回0。在兩個(gè)設(shè)備間,必須使用cudaDeviceEnablePeerAccess顯式啟用點(diǎn)對(duì)點(diǎn)內(nèi)存訪問(wèn),該函數(shù)允許當(dāng)前設(shè)備到peerDevice的點(diǎn)對(duì)點(diǎn)訪問(wèn),授權(quán)的訪問(wèn)是單向的。點(diǎn)對(duì)點(diǎn)訪問(wèn)保持啟用狀態(tài),直到被cudaDeviceDisablePeerAccess顯式禁用。32位應(yīng)用程序不支持點(diǎn)對(duì)點(diǎn)訪問(wèn)。

2)點(diǎn)對(duì)點(diǎn)內(nèi)存復(fù)制

在兩個(gè)設(shè)備之間啟用對(duì)等訪問(wèn)后,可以使用cudaMemcpyPeerAsync函數(shù)異步復(fù)制設(shè)備上的數(shù)據(jù)。該函數(shù)將數(shù)據(jù)從源設(shè)備srcDev傳輸?shù)侥繕?biāo)設(shè)備dstDev。如果srcDev和dstDev連接在同一PCIe根節(jié)點(diǎn)上,數(shù)據(jù)傳輸將沿著PCIe的最短路徑執(zhí)行,無(wú)需通過(guò)主機(jī)內(nèi)存中轉(zhuǎn)。

3、多GPU間同步

多GPU應(yīng)用程序中,流和事件與單一設(shè)備關(guān)聯(lián),典型工作流程包括:選擇GPU集、為每個(gè)設(shè)備創(chuàng)建流和事件、分配設(shè)備資源、通過(guò)流啟動(dòng)任務(wù)、查詢和等待任務(wù)完成并清空資源。只有與流關(guān)聯(lián)的設(shè)備才能啟動(dòng)內(nèi)核和記錄事件。內(nèi)存拷貝可在任何流中進(jìn)行,與設(shè)備和當(dāng)前狀態(tài)無(wú)關(guān)。即使流或事件與當(dāng)前設(shè)備不相關(guān),也可以查詢或同步它們。

二、多GPU間細(xì)分計(jì)算

1、在多設(shè)備上分配內(nèi)存

在分配多個(gè)設(shè)備任務(wù)之前,首先需要確定系統(tǒng)中的可用GPU數(shù)量。通過(guò)cudaGetDeviceCount獲取GPU數(shù)量并打印。

接下來(lái),為每個(gè)設(shè)備聲明所需的內(nèi)存和流。使用cudaSetDevice為每個(gè)設(shè)備分配內(nèi)存和流。

對(duì)于每個(gè)設(shè)備,分配一定大小的主機(jī)內(nèi)存和設(shè)備內(nèi)存,并創(chuàng)建流。為了在設(shè)備和主機(jī)之間進(jìn)行異步數(shù)據(jù)傳輸,還需要分配鎖頁(yè)內(nèi)存。

最后,使用循環(huán)為每個(gè)設(shè)備執(zhí)行以下操作:

1)設(shè)置當(dāng)前設(shè)備

2)分配設(shè)備內(nèi)存:cudaMalloc

3)分配主機(jī)內(nèi)存:cudaMallocHost

4)創(chuàng)建流:cudaStreamCreate

這樣,就為每個(gè)設(shè)備分配了內(nèi)存和流,準(zhǔn)備好進(jìn)行任務(wù)分配和數(shù)據(jù)傳輸。

2、單主機(jī)線程分配工作

// 在設(shè)備間分配操作之前,為每個(gè)設(shè)備初始化主機(jī)數(shù)組的狀態(tài)

for (int i = 0; i < ngpus; i++)

{

cudaSetDevice(i);

initial(h_A[i], iSize);

initial(h_B[i], iSize);

}

// 在多個(gè)設(shè)備間分配數(shù)據(jù)和計(jì)算

for (int i = 0; i < ngpus; i++)

{

cudaSetDevice(i);

cudaMemcpyAsync(d_A[i], h_A[i], iBytes, cudaMemcpyHostToDevice, streams[i]);

cudaMemcpyAsync(d_B[i], h_B[i], iBytes, cudaMemcpyHostToDevice, streams[i]);

iKernel<<>>(d_A[i], d_B[i], d_C[i], iSize);

cudaMemcpyAsync(gpuRef[i], d_C[i], iBytes, cudaMemcpyDeviceToHost, stream[i]);

}

cudaDeviceSynchronize();

這個(gè)循環(huán)遍歷多個(gè)GPU,為設(shè)備異步地復(fù)制輸入數(shù)組。然后在想要的流中操作iSize個(gè)數(shù)據(jù)元素以便啟動(dòng)內(nèi)核。最后,設(shè)備發(fā)出異步拷貝命令,把結(jié)果從內(nèi)核返回到主機(jī)。因?yàn)樗械脑囟际钱惒降?,所以控制?huì)立即返回到主機(jī)線程。

三、多個(gè)GPU上的點(diǎn)對(duì)點(diǎn)通信

下面將測(cè)試兩個(gè)GPU之間的單向內(nèi)存復(fù)制;兩個(gè)GPU之間的雙向內(nèi)存和內(nèi)核中對(duì)等設(shè)備內(nèi)存的訪問(wèn)3種情況;

1、實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)訪問(wèn)

首先,必須對(duì)所有設(shè)備啟用雙向點(diǎn)對(duì)點(diǎn)訪問(wèn),代碼如下;

// 啟動(dòng)雙向點(diǎn)對(duì)點(diǎn)訪問(wèn)權(quán)限

inline void enableP2P(int ngpus)

{

for (int i = 0; i < ngpus; i++)

{

cudaSetDevice(i)

for (int j = 0; j < ngpus; j++)

{

if (i == j)

continue;

int peer_access_available = 0;

cudaDeviceCanAccessPeer(&peer_access_available, i, j);

if (peer_access_avilable)

{

cudaDeviceEnablePeerAccess(j, i);

printf(" > GP%d enbled direct access to GPU%dn", i, j);

}

else

printf("(%d, %d)n", i, j);

}

}

}

函數(shù)enbleP2P遍歷所有設(shè)備對(duì)(i,j),如果支持點(diǎn)對(duì)點(diǎn)訪問(wèn),則使用cudaDeviceEnablePeerAccess函數(shù)啟用雙向點(diǎn)對(duì)點(diǎn)訪問(wèn)。

2、點(diǎn)對(duì)點(diǎn)內(nèi)存復(fù)制

不能啟用點(diǎn)對(duì)點(diǎn)訪問(wèn)的最有可能的原因是它們沒(méi)有連接到同一個(gè)PCIe根節(jié)點(diǎn)上。如果兩個(gè)GPU之間不支持點(diǎn)對(duì)點(diǎn)訪問(wèn),那么這兩個(gè)設(shè)備之間的點(diǎn)對(duì)點(diǎn)內(nèi)存復(fù)制將通過(guò)主機(jī)內(nèi)存中轉(zhuǎn),從而降低了性能。

啟用點(diǎn)對(duì)點(diǎn)訪問(wèn)后,下面的代碼在兩個(gè)設(shè)備間執(zhí)行ping-pong同步內(nèi)存復(fù)制,次數(shù)為100次。

// ping-pong undirectional gmem copy

cudaEventRecord(start, 0);

for (int i = 0; u < 100; i++)

{

if (i % 2 == 0)

cudaMemcpy(d_src[1], drc[0], iBytes, cudaMemcpyDeviceToHost);

else

cudaMemcpy(d_src[0], drc[1], iBytes, cudaMemcpyDeviceToHost);

}

請(qǐng)注意,在內(nèi)存復(fù)制之前沒(méi)有指定設(shè)備,因?yàn)榭缭O(shè)備的內(nèi)存復(fù)制不需要顯式地設(shè)定當(dāng)前設(shè)備。如果在內(nèi)存復(fù)制前指定了設(shè)備,也不會(huì)影響它的行為。

如需衡量設(shè)備之間數(shù)據(jù)傳輸?shù)男阅?,需要把啟?dòng)和停止事件記錄在同一設(shè)備上,并將ping-pong內(nèi)存復(fù)制包含在內(nèi)。然后,用cudaEventElapsedTime計(jì)算兩個(gè)事件之間消耗的時(shí)間。

// ping-pong undirectional gmem copy

cudaEventRecord(start, 0);

for (int i = 0; u < 100; i++)

{

if (i % 2 == 0)

cudaMemcpy(d_src[1], drc[0], iBytes, cudaMemcpyDeviceToHost);

else

cudaMemcpy(d_src[0], drc[1], iBytes, cudaMemcpyDeviceToHost);

}

cudaEventRecord(start, 0);

for (int i = 0; u < 100; i++)

{

...

}

cudaSetDevice(0);

cudaEventRecord(stop, 0);

cudaEventSynchronize(stop);

float elapsed_time_ms;

cudaEventElapsedTime(&elapsed_time_ms, start, stop);

elapsed_time_ms /= 100;

printf("Ping-pong unidirectional cudaMemcpy: tt %8.2f ms", elapsed_time_ms);

printf("performance: %8.2f GB/sn", (float)iBytes / (elapsed_time_ms * 1e6f));

因?yàn)镻CIe總線支持任何兩個(gè)端點(diǎn)之間的全雙工通道,所以也可以使用異步復(fù)制函數(shù)來(lái)進(jìn)行雙向的且點(diǎn)對(duì)點(diǎn)的內(nèi)存復(fù)制。

// bidirectional asynchronous gmem copy

for (int i = 0; u < 100; i++)

{

if (i % 2 == 0)

cudaMemcpyAsync(d_src[1], drc[0], iBytes, cudaMemcpyDeviceToHost);

else

cudaMemcpyAsync(d_rcv[0], drcv[1], iBytes, cudaMemcpyDeviceToHost);

}

注意,由于PCIe總線是一次兩個(gè)方向上使用的,所以獲得的帶寬增加了一倍。

中國(guó)算力產(chǎn)業(yè)發(fā)展及瓶頸

一、市場(chǎng)規(guī)模:服務(wù)器作為算力載體,受益云計(jì)算需求提升

1、產(chǎn)業(yè)鏈:下游各領(lǐng)域算力需求帶動(dòng)服務(wù)器產(chǎn)業(yè)發(fā)展

服務(wù)器產(chǎn)業(yè)鏈上游主要是電子材料及零部件/配套。中游為各類服務(wù)器產(chǎn)品,包括云服務(wù)器、智能服務(wù)器、邊緣服務(wù)器、儲(chǔ)存服務(wù)器。下游需求主體為數(shù)據(jù)中心服務(wù)商、互聯(lián)網(wǎng)企業(yè)、政府部門(mén)、金融機(jī)構(gòu)、電信運(yùn)營(yíng)商等。

wKgZomVykkSAU32IAAIUtpudNPE083.png

服務(wù)器產(chǎn)業(yè)鏈全景圖

2、云計(jì)算:算力應(yīng)用互聯(lián)網(wǎng)需求最大,其次為政府、服務(wù)等

在通用算力領(lǐng)域,互聯(lián)網(wǎng)行業(yè)依然是算力需求最大的行業(yè),占據(jù)了通用算力的39%。電信行業(yè)加大了對(duì)算力基礎(chǔ)設(shè)施的投入,算力份額首次超過(guò)政府行業(yè),位列第二。而政府、服務(wù)、金融、制造、教育、運(yùn)輸?shù)刃袠I(yè)位列三到八位。

wKgaomVykkWAS_9sAABvpEv-ntQ681.png

在智能算力領(lǐng)域,互聯(lián)網(wǎng)行業(yè)對(duì)數(shù)據(jù)處理和模型訓(xùn)練的需求持續(xù)增長(zhǎng),成為智能算力需求最大的行業(yè),占據(jù)了智能算力的53%。服務(wù)行業(yè)正在快速?gòu)膫鹘y(tǒng)模式轉(zhuǎn)向新興智慧模式,其算力份額占比位列第二。而政府、電信、制造、教育、金融、運(yùn)輸?shù)刃袠I(yè)分列第三到八位。

wKgZomVykkWAC9uEAABpsW40oZo107.png

2、云計(jì)算:中國(guó)市場(chǎng)增速快于全球,預(yù)計(jì)2025年突破萬(wàn)億元

根據(jù)Gartner數(shù)據(jù),2022年全球云計(jì)算市場(chǎng)規(guī)模達(dá)到4910億美元,同比增長(zhǎng)19%,但較2021年同比下降13.5%。而根據(jù)中國(guó)信息通信研究院的統(tǒng)計(jì),2022年中國(guó)云計(jì)算市場(chǎng)規(guī)模達(dá)到4550億元,同比增長(zhǎng)40.91%。

wKgaomVykkWAGghdAAKFsi3XfNY343.png

全球云計(jì)算市場(chǎng)規(guī)模及增速

云計(jì)算仍然是新技術(shù)融合和業(yè)態(tài)發(fā)展的重要推動(dòng)力。預(yù)計(jì)在大模型和算力需求的刺激下,市場(chǎng)將繼續(xù)保持穩(wěn)定增長(zhǎng),到2026年全球云計(jì)算市場(chǎng)將突破萬(wàn)億美元。相比全球19%的增速,中國(guó)云計(jì)算市場(chǎng)仍處于快速發(fā)展階段,在大經(jīng)濟(jì)頹勢(shì)下仍保持較高的抗風(fēng)險(xiǎn)能力,預(yù)計(jì)到2025年我國(guó)云計(jì)算整體市場(chǎng)規(guī)模將突破萬(wàn)億元。

wKgZomVykkaAAOsYAAJWkSbgIIo961.png

中國(guó)云計(jì)算市場(chǎng)規(guī)模及增速

3、服務(wù)器:銷售端頭部集中,采購(gòu)端以科技巨頭為主

根據(jù)IDC之前公布的數(shù)據(jù),2022年中國(guó)服務(wù)器市場(chǎng)的主要供應(yīng)商包括浪潮信息、新華三、超聚變、寧暢和中興通訊。

wKgaomVykkaAKR8XAAF_tgxTnPs762.png

2022年中國(guó)服務(wù)器市份額情況

國(guó)內(nèi)AI服務(wù)器行業(yè)采用CPU+加速芯片的架構(gòu)形式,在進(jìn)行模型訓(xùn)練和推斷時(shí)具有效率優(yōu)勢(shì)。浪潮信息在國(guó)內(nèi)市場(chǎng)份額較高,其次為新華三、寧暢、安擎等。

wKgZomVykkeAFMHxAAEdy4_OkvQ058.png

2022年中國(guó)AI服務(wù)器市份額情況

隨著云計(jì)算、移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等技術(shù)的興起,互聯(lián)網(wǎng)巨頭逐漸取代政府和銀行等部門(mén)成為服務(wù)器的主要采購(gòu)方。在2012年之前,服務(wù)器的下游客戶主要是政府、銀行等金融機(jī)構(gòu)、電信和其他大型企業(yè)。然而,現(xiàn)在服務(wù)器的下游客戶主要以科技巨頭為主,如海外亞馬遜、微軟、谷歌以及國(guó)內(nèi)阿里、騰訊等為代表的云計(jì)算巨頭逐步成為服務(wù)器市場(chǎng)的主要采購(gòu)客戶。

wKgaomVykkeAP26gAAPySzGuRME805.png

2022年中國(guó)主要云廠商服務(wù)器規(guī)模

根據(jù)IDC的預(yù)測(cè)數(shù)據(jù),2023年全球服務(wù)器市場(chǎng)規(guī)模同比幾乎持平,而2024年及以后服務(wù)器市場(chǎng)將保持8-11%的增速,預(yù)計(jì)到2027年市場(chǎng)規(guī)模將達(dá)到1780億美元。

wKgZomVykkiAVogJAAGKacPTXwA826.png

2022-2027E全球服務(wù)器市場(chǎng)規(guī)模(億美元)

2022年中國(guó)服務(wù)器市場(chǎng)規(guī)模約為273.4億美元,同比增長(zhǎng)9%,增速有所放緩。根據(jù)華經(jīng)產(chǎn)業(yè)研究院的數(shù)據(jù),2023年市場(chǎng)規(guī)模將達(dá)到308億美元,增速為13%。隨著東數(shù)西算項(xiàng)目的推進(jìn)、海量數(shù)據(jù)運(yùn)算和存儲(chǔ)需求的快速增長(zhǎng)等因素的影響,中國(guó)服務(wù)器整體的采購(gòu)需求將進(jìn)一步增加。IDC預(yù)測(cè),到2027年中國(guó)AI服務(wù)器市場(chǎng)規(guī)模將達(dá)到164億美元。

wKgaomVykkiAS8GrAAHF3ot8Jzw647.png

2016-2023E中國(guó)服務(wù)器市場(chǎng)規(guī)模(億美元)

二、底層關(guān)鍵: CPU是服務(wù)器的大腦,國(guó)產(chǎn)替代空間廣闊

1、作用關(guān)鍵:CPU是服務(wù)器的大腦,GPU并行計(jì)算能力很強(qiáng)

CPU是服務(wù)器的控制中心,負(fù)責(zé)完成布局謀略、發(fā)號(hào)施令、控制行動(dòng)等任務(wù),其結(jié)構(gòu)包括運(yùn)算器、控制單元、寄存器、高速緩存器和通訊的總線。GPU由于圖形渲染、數(shù)值分析、AI推理等底層邏輯需要將繁重的數(shù)學(xué)任務(wù)拆解,利用GPU多流處理器機(jī)制,將大量運(yùn)算拆解為小運(yùn)算,并行處理。CPU和GPU是兩種不同的處理器,CPU是程序控制、順序執(zhí)行的通用處理器,而GPU是用于特定領(lǐng)域分析的專用處理器,受CPU控制。在許多終端設(shè)備中,CPU和GPU通常集成在一個(gè)芯片中,同時(shí)具備CPU或GPU處理能力。

wKgZomVykkmAKIi-AAIRW48PMiM114.png

GPU投入更多晶體管進(jìn)行數(shù)據(jù)處理,并行運(yùn)算能力強(qiáng)

2、價(jià)值關(guān)鍵:CPU、GPU占據(jù)各類服務(wù)器的硬件成本高

服務(wù)器的硬件成本構(gòu)成上,CPU及芯片組、內(nèi)存和外部存儲(chǔ)是主要部分:在普通服務(wù)器中,CPU及芯片組約占32%,內(nèi)存約占27%,外部存儲(chǔ)約占18%,其他硬件約占23%。而在AI服務(wù)器上,GPU的成本占比則遠(yuǎn)高于其他部分,可能接近整體成本的70%。從普通服務(wù)器升級(jí)到AI訓(xùn)練服務(wù)器時(shí),其他單臺(tái)服務(wù)器價(jià)值量增量較大的部件包括內(nèi)存、SSD、PCB、電源等,都有數(shù)倍的提升。

wKgaomVykkqAMzwUAAdr-IVe7rY037.png

服務(wù)器內(nèi)部拆解示意圖

3、處理器:CPU主導(dǎo)地位,GPU增長(zhǎng)迅猛

根據(jù)Yole Intelligence的報(bào)告,預(yù)計(jì)到2028年處理器市場(chǎng)的收入將達(dá)到2420億美元,復(fù)合年增長(zhǎng)率為8%。CPU市場(chǎng)的主導(dǎo)地位將得到鞏固,2028年市場(chǎng)規(guī)模將達(dá)到970億美元,復(fù)合年增長(zhǎng)率為6.9%。GPU市場(chǎng)也將實(shí)現(xiàn)顯著增長(zhǎng),2028年市場(chǎng)規(guī)模將達(dá)到550億美元,復(fù)合年增長(zhǎng)率為16.5%。在處理器市場(chǎng)上,英特爾、AMD、英偉達(dá)等巨頭以及紫光展銳主導(dǎo)著市場(chǎng)。在國(guó)內(nèi)外服務(wù)器所使用的處理器方面,英特爾、AMD、英偉達(dá)、龍芯、兆芯、鯤鵬、海光、飛騰、申威、昇騰等占主導(dǎo)地位。

wKgZomVykkqAWBZmAAX2B29mQXE337.png

2022-2028年按處理器類型劃分的處理器收入預(yù)測(cè)

4、我國(guó)在美國(guó)多輪制裁下不斷進(jìn)行科技攻堅(jiān)

自2019年5月至2020年9月,美國(guó)政府對(duì)華為實(shí)施多輪制裁,導(dǎo)致華為5G手機(jī)芯片供應(yīng)被切斷,華為手機(jī)銷量大幅下滑。此后,美國(guó)針對(duì)我國(guó)半導(dǎo)體領(lǐng)域的限制不斷升級(jí)。然而,華為最新旗艦機(jī)型采用了7nm工藝的麒麟9000s芯片,標(biāo)志著中國(guó)在芯片設(shè)計(jì)和制造領(lǐng)域的里程碑。

2023年10月17日,美國(guó)商務(wù)部工業(yè)和安全局公布了新的尖端芯片出口管制規(guī)則,共計(jì)近500頁(yè),全面限制美國(guó)芯片巨頭如英偉達(dá)、英特爾等生產(chǎn)的“特供版”芯片出口到中國(guó)及40余個(gè)國(guó)家。此外,還更新了半導(dǎo)體設(shè)備和技術(shù)相關(guān)的“長(zhǎng)臂管轄”,擴(kuò)大荷蘭***企業(yè)ASML不可對(duì)華出口機(jī)型范圍,并限制波及中國(guó)之外20余個(gè)國(guó)家。同時(shí),將壁仞科技、摩爾線程等13個(gè)中國(guó)實(shí)體加入美國(guó)管制清單,限制中國(guó)企業(yè)通過(guò)代工廠生產(chǎn)先進(jìn)芯片。

wKgaomVykkuAYEwoAAwh11wxTA4295.png

10月17日美國(guó)商務(wù)部工業(yè)和安全局公布管制新規(guī)

三、算力的瓶頸在哪里,機(jī)會(huì)就會(huì)在哪里

算力是現(xiàn)代計(jì)算機(jī)技術(shù)的核心,其瓶頸主要存在于數(shù)據(jù)傳輸和存儲(chǔ)方面。目前,計(jì)算機(jī)普遍采用馮諾依曼架構(gòu),數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)計(jì)算分開(kāi),算力容易被卡在數(shù)據(jù)傳輸,而非真正的計(jì)算。算力分為四層,每一層都需要解決如何讓數(shù)據(jù)連接更快的問(wèn)題。

1、GPU內(nèi)部

GPU內(nèi)部的計(jì)算單元與顯存之間的數(shù)據(jù)傳輸是性能提升的瓶頸,同時(shí)多個(gè)GPU間的協(xié)同計(jì)算也受到數(shù)據(jù)傳輸速度的限制。傳統(tǒng)GPU通常采用GDDR內(nèi)存,這種內(nèi)存是平面封裝,導(dǎo)致數(shù)據(jù)傳輸速度跟不上GPU的計(jì)算速度。為解決這一問(wèn)題,升級(jí)后的方案采用HBM內(nèi)存技術(shù)。HBM內(nèi)存是垂直封裝,能夠提供更大的帶寬,從而將數(shù)據(jù)更快地傳輸?shù)紾PU的計(jì)算單元中。例如,HBM2的帶寬高達(dá)256GB/s,比傳統(tǒng)的GDDR內(nèi)存快十倍以上。

2、AI服務(wù)器

每臺(tái)AI服務(wù)器都由多個(gè)GPU組成(4個(gè)、8個(gè)甚至更多),GPU需要進(jìn)行協(xié)同計(jì)算。然而,它們之間的數(shù)據(jù)傳輸速度成為性能的瓶頸。在這方面,英偉達(dá)GPU連接技術(shù)最為先進(jìn),使用的是其NVLink協(xié)議,每秒傳輸速度高達(dá)50GB。華為也擁有自己的HCCS協(xié)議,帶寬表現(xiàn)不錯(cuò),每秒30GB,與英偉達(dá)沒(méi)有量級(jí)的差異。然而,其他傳統(tǒng)的服務(wù)器只采用PCIe 5標(biāo)準(zhǔn)接口,每通道傳輸速度只有4GB,不到英偉達(dá)的十分之一。因此,為提高數(shù)據(jù)傳輸速度并解決該瓶頸問(wèn)題,需要采用更先進(jìn)的技術(shù)和協(xié)議。

3、數(shù)據(jù)中心

數(shù)據(jù)中心由上百甚至上千臺(tái)AI服務(wù)器組成計(jì)算集群,服務(wù)器之間需要快速的數(shù)據(jù)連接。英偉達(dá)采用專用的InfiniBand網(wǎng)絡(luò),而其他廠商則使用ROC高速以太網(wǎng)網(wǎng)絡(luò)。盡管這兩種網(wǎng)絡(luò)在物理層都使用光纖連接,但都離不開(kāi)光模塊。無(wú)論是數(shù)據(jù)發(fā)送還是接收,無(wú)論是服務(wù)器端還是交換機(jī)端,都需要光模塊。今年,光模塊的技術(shù)從400G升級(jí)到800G,因?yàn)閲?guó)內(nèi)廠商在光模塊制造領(lǐng)域的占比很高,因此這一塊的業(yè)績(jī)能夠真正實(shí)現(xiàn),導(dǎo)致光模塊技術(shù)在算力領(lǐng)域被炒作得最多。

4、數(shù)據(jù)網(wǎng)絡(luò)

不同地點(diǎn)和城市的數(shù)據(jù)中心可以組成一個(gè)龐大的算力網(wǎng)絡(luò),通過(guò)調(diào)度和統(tǒng)籌,終端用戶輕松地使用最快且最便宜的算力資源。目前,算力網(wǎng)絡(luò)的發(fā)展趨勢(shì)是采用云-邊-端的架構(gòu),旨在解決數(shù)據(jù)傳輸?shù)膯?wèn)題。其中,邊緣計(jì)算是最為熱門(mén)的技術(shù)之一。邊緣計(jì)算并不僅僅是指手機(jī)和智能車輛,而是指在傳統(tǒng)的云計(jì)算中心之外,更靠近終端地方增加一層直接計(jì)算能力,以節(jié)省數(shù)據(jù)傳輸?shù)某杀竞蜁r(shí)間。因此,未來(lái)的大趨勢(shì)是云的AI算力、邊緣的AI算力和用戶端的AI算力相互結(jié)合,共同推動(dòng)人工智能技術(shù)的發(fā)展。

藍(lán)海大腦深度學(xué)習(xí)大數(shù)據(jù)平臺(tái)

藍(lán)海大腦深度學(xué)習(xí)大數(shù)據(jù)平臺(tái)是面向多源空間數(shù)據(jù)的處理平臺(tái),集成存儲(chǔ)、計(jì)算和數(shù)據(jù)處理軟件,具有高效、易操作、低成本、多層次擴(kuò)展和快速部署等顯著優(yōu)勢(shì),在測(cè)繪、農(nóng)業(yè)、林業(yè)、水利、環(huán)保等領(lǐng)域大大提升圖像處理能力,保護(hù)投資,高效應(yīng)對(duì)大數(shù)據(jù)挑戰(zhàn),加速業(yè)務(wù)突破和轉(zhuǎn)型。

一、主要技術(shù)指標(biāo)

可 靠 性:平均故障間隔時(shí)間MTBF≥15000 h

工作溫度:5~40 ℃

工作濕度:35 %~80 %

存儲(chǔ)溫度:-40~55 ℃

存儲(chǔ)濕度:20 %~90 %

聲 噪:≤35dB

wKgZomVykkuAG6GTAAlcSZ5ucjM405.png

二、特點(diǎn)及優(yōu)勢(shì):

基于統(tǒng)一的整體架構(gòu),采用先進(jìn)成熟可靠的技術(shù)與軟硬件平臺(tái),保證基礎(chǔ)數(shù)據(jù)平臺(tái)易擴(kuò)展、易升級(jí)、易操作、易維護(hù)等特性?;跇I(yè)界熱門(mén),且領(lǐng)先的 Spark 技術(shù),極速提高平臺(tái)的整體計(jì)算性能。

支持基礎(chǔ)數(shù)據(jù)模型、應(yīng)用分析模型、前端應(yīng)用的擴(kuò)展性;支持在統(tǒng)一系統(tǒng)架構(gòu)中服務(wù)器、存儲(chǔ)、I/O 設(shè)備等的可擴(kuò)展性。

制定并實(shí)施基礎(chǔ)數(shù)據(jù)平臺(tái)高可用性方案、運(yùn)行管理監(jiān)控制度、運(yùn)行維護(hù)制度、故障處理預(yù)案等,保證系統(tǒng)在多用戶、多節(jié)點(diǎn)等復(fù)雜環(huán)境下的可靠性。

高效性:在規(guī)定時(shí)間內(nèi)完成數(shù)據(jù)寫(xiě)入操作,并將數(shù)據(jù)寫(xiě)入對(duì)數(shù)據(jù)分析的影響降到最低;提升實(shí)現(xiàn)規(guī)劃要求的數(shù)據(jù)查詢和統(tǒng)計(jì)分析速度。

數(shù)據(jù)質(zhì)量貫穿基礎(chǔ)數(shù)據(jù)平臺(tái)系統(tǒng)建設(shè)的每個(gè)環(huán)節(jié),基礎(chǔ)數(shù)據(jù)平臺(tái)系統(tǒng)通過(guò)合理的數(shù)據(jù)質(zhì)量管理解決方案保證數(shù)據(jù)質(zhì)量。

按國(guó)家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、安全規(guī)范等實(shí)現(xiàn)數(shù)據(jù)安全管理。

統(tǒng)一的管理平臺(tái),對(duì)系統(tǒng)進(jìn)行相應(yīng)的性能管理和日志監(jiān)控。

人機(jī)接口靈活多樣的展現(xiàn)方式,最終用戶只需進(jìn)行適當(dāng)?shù)呐嘤?xùn)就可以方便地使用新的分析工具,減少 IT 人員的工作量,加強(qiáng)集群監(jiān)管的時(shí)效性。

具有超強(qiáng)影像處理能力,每天(24小時(shí))可處理多達(dá)500景對(duì)(全色和多光譜)高分一號(hào)影像數(shù)據(jù)。

廣泛適用于基礎(chǔ)測(cè)繪、農(nóng)業(yè)、林業(yè)、水利、環(huán)保等領(lǐng)域,適合常規(guī)模式下產(chǎn)品生產(chǎn)和應(yīng)急模式下快速影像圖生成。

針對(duì)大數(shù)據(jù)原始技術(shù)存在的問(wèn)題,藍(lán)海大腦大數(shù)據(jù)平臺(tái)從企業(yè)應(yīng)用角度出發(fā),對(duì) Apache Hadoop 進(jìn)行了系列技術(shù)開(kāi)發(fā),形成了適應(yīng)企業(yè)級(jí)應(yīng)用的一站式大數(shù)據(jù)平臺(tái),從而滿足各類企業(yè)的要求:

超大數(shù)據(jù)的分布式存儲(chǔ)、流數(shù)據(jù)實(shí)時(shí)計(jì)算要求

滿足大數(shù)據(jù)的高并發(fā)、低延遲查詢請(qǐng)求

分布式應(yīng)用系統(tǒng)異常故障時(shí),業(yè)務(wù)切換

系統(tǒng)線性擴(kuò)展時(shí),無(wú)需增加開(kāi)發(fā)工作,實(shí)現(xiàn)無(wú)成本擴(kuò)展

三、常用配置推薦

1、CPU:

- Intel Xeon Gold 8358P 32C/64T 2.6GHz 48MB,DDR4 3200,Turbo,HT 240W

- Intel Xeon Platinum 8458P 28C/56T 2.7GHz 38.5MB,DDR4 2933,Turbo,HT 205W

- Intel Xeon Platinum 8468 Processor 48C/64T 2.1GHz 105M Cache 350W

- AMD EPYC? 7742 64C/128T,2.25GHz to 3.4GHz,256MB,DDR4 3200MT/s,225W

- AMD EPYC? 9654 96C/192T,2.4GHz to 3.55GHz to 3.7GHz,384MB,DDR5 4800MT/s,360W

- Intel Xeon Platinum 8350C 32C/64T 2.6GHz 48MB,DDR4 3200,Turbo,HT 240W

- Intel Xeon Gold 6240R 24C/48T,2.4GHz,35.75MB,DDR4 2933,Turbo,HT,165W.1TB

- Intel Xeon Gold 6258R 28C/56T,2.7GHz,38.55MB,DDR4 2933,Turbo,HT,205W.1TB

- Intel Xeon W-3265 24C/48T 2.7GHz 33MB 205W DDR4 2933 1TB

- Intel Xeon Platinum 8280 28C/56T 2.7GHz 38.5MB,DDR4 2933,Turbo,HT 205W 1TB

- Intel Xeon Platinum 9242 48C/96T 3.8GHz 71.5MB L2,DDR4 3200,HT 350W 1TB

- Intel Xeon Platinum 9282 56C/112T 3.8GHz 71.5MB L2,DDR4 3200,HT 400W 1TB

2、GPU:

- NVIDIA A100, NVIDIA GV100

- NVIDIA L40S GPU 48GB

- NVIDIA NVLink-A100-SXM640GB

- NVIDIA HGX A800 80GB

- NVIDIA Tesla H800 80GB HBM2

- NVIDIA A800-80GB-400Wx8-NvlinkSW

- NVIDIA RTX 3090, NVIDIA RTX 3090TI

- NVIDIA RTX 8000, NVIDIA RTX A6000

- NVIDIA Quadro P2000,NVIDIA Quadro P2200

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10908

    瀏覽量

    213111
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4783

    瀏覽量

    129395
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    653

    瀏覽量

    29494
  • 大數(shù)據(jù)
    +關(guān)注

    關(guān)注

    64

    文章

    8910

    瀏覽量

    137828
  • AIGC
    +關(guān)注

    關(guān)注

    1

    文章

    367

    瀏覽量

    1616
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GPU租用平臺(tái)有什么好處

    當(dāng)今,GPU租用平臺(tái)為科研機(jī)構(gòu)、企業(yè)乃至個(gè)人開(kāi)發(fā)者提供了靈活高效的解決方案。下面,AI部落小編帶您深入探討
    的頭像 發(fā)表于 02-07 10:39 ?111次閱讀

    中心的如何衡量?

    作為當(dāng)下科技發(fā)展的重要基礎(chǔ)設(shè)施,其的衡量關(guān)乎其能否高效支撐人工智能、大數(shù)據(jù)分析等智能應(yīng)用的運(yùn)行。以下是對(duì)智中心算衡量的詳細(xì)闡述:一、
    的頭像 發(fā)表于 01-16 14:03 ?542次閱讀
    <b class='flag-5'>算</b>智<b class='flag-5'>算</b>中心的<b class='flag-5'>算</b><b class='flag-5'>力</b>如何衡量?

    芯片 高性能 CPUGPUNPU 微架構(gòu)分析》第3篇閱讀心得:GPU革命:從圖形引擎到AI加速器的蛻變

    CPU、GPU的演進(jìn)歷程,AI專用芯片或?qū)⒁I(lǐng)未來(lái)計(jì)算平臺(tái)的新方向。正如愛(ài)因斯坦所說(shuō):\"想象比知識(shí)更重要\" —— 在芯片設(shè)計(jì)領(lǐng)域,創(chuàng)新思維帶來(lái)的突破往往令人驚嘆。
    發(fā)表于 11-24 17:12

    【「芯片 | 高性能 CPU/GPU/NPU 微架構(gòu)分析」閱讀體驗(yàn)】--了解芯片GPU

    著色器(Pixel shader)是圖形流水線中相當(dāng)強(qiáng)大的功能單元,因?yàn)樗梢詾槊總€(gè)片段執(zhí)行復(fù)雜的計(jì)算,從而為最終渲染的圖像添加細(xì)節(jié)和視覺(jué)效果。 DirectX API推動(dòng) GPU 演進(jìn)
    發(fā)表于 11-03 12:55

    【一文看懂】大白話解釋“GPUGPU

    隨著大模型的興起,“GPU”這個(gè)詞正頻繁出現(xiàn)在人工智能、游戲、圖形設(shè)計(jì)等工作場(chǎng)景中,什么是GPU,它與CPU的區(qū)別是什么?以及到底什么是
    的頭像 發(fā)表于 10-29 08:05 ?1013次閱讀
    【一文看懂】大白話解釋“<b class='flag-5'>GPU</b>與<b class='flag-5'>GPU</b><b class='flag-5'>算</b><b class='flag-5'>力</b>”

    未來(lái)邊緣GPU在車聯(lián)網(wǎng)中的創(chuàng)新應(yīng)用

    發(fā)展提供了強(qiáng)大的技術(shù)支撐。未來(lái)邊緣GPU在車聯(lián)網(wǎng)中的應(yīng)用及創(chuàng)新,將有力推動(dòng)車聯(lián)網(wǎng)技術(shù)的快速發(fā)展
    的頭像 發(fā)表于 10-25 08:08 ?384次閱讀
    <b class='flag-5'>未來(lái)</b>邊緣<b class='flag-5'>GPU</b><b class='flag-5'>算</b><b class='flag-5'>力</b>在車聯(lián)網(wǎng)中的創(chuàng)新應(yīng)用

    芯片 高性能 CPU/GPU/NPU 微架構(gòu)分析》第1-4章閱讀心得——之巔:從基準(zhǔn)測(cè)試到CPU微架構(gòu)的深度探索

    ,全面評(píng)估了芯片在實(shí)際AI工作負(fù)載中的表現(xiàn)。這兩項(xiàng)基準(zhǔn)測(cè)試共同構(gòu)成了一個(gè)全面的評(píng)估體系,推動(dòng)了芯片設(shè)計(jì)向多樣化和專用化方向發(fā)展。 2 流水線與分支預(yù)測(cè):CPU的華爾茲 第二章詳細(xì)介
    發(fā)表于 10-19 01:21

    GPU租用平臺(tái)是什么

    GPU租用平臺(tái)是一種基于云計(jì)算的服務(wù)模式,它允許用戶通過(guò)互聯(lián)網(wǎng)按需租用高性能GPU資源,而無(wú)需自行購(gòu)買(mǎi)、部署和維護(hù)這些硬件。
    的頭像 發(fā)表于 10-16 10:15 ?313次閱讀

    【「芯片 | 高性能 CPU/GPU/NPU 微架構(gòu)分析」閱讀體驗(yàn)】--全書(shū)概覽

    本帖最后由 1653149838.791300 于 2024-10-16 22:19 編輯 感謝平臺(tái)提供的書(shū)籍,厚厚的一本,很有分量,感謝作者的傾力付出成書(shū)。 本書(shū)主要講芯片CPU
    發(fā)表于 10-15 22:08

    中國(guó)大會(huì)召開(kāi),業(yè)界首個(gè)高質(zhì)量評(píng)估體系發(fā)布

    北京2024年9月28日?/美通社/ -- 9月27日,我國(guó)產(chǎn)業(yè)領(lǐng)域的頂級(jí)盛會(huì)——中國(guó)大會(huì)在鄭州召開(kāi),會(huì)上浪潮信息聯(lián)合信通院發(fā)布了《
    的頭像 發(fā)表于 09-28 16:50 ?297次閱讀
    <b class='flag-5'>中國(guó)</b><b class='flag-5'>算</b><b class='flag-5'>力</b>大會(huì)召開(kāi),業(yè)界首個(gè)<b class='flag-5'>算</b><b class='flag-5'>力</b>高質(zhì)量評(píng)估體系發(fā)布

    弘信電子集團(tuán):破解中國(guó)瓶頸的燧弘模式

    一場(chǎng)匯聚政府領(lǐng)導(dǎo)、人工智能領(lǐng)域頂尖專家學(xué)者和行業(yè)領(lǐng)軍代表的高峰論壇——“中國(guó)高峰論壇”在北京清華科技園紫荊會(huì)議中心盛大舉行。本次論壇由燧弘華創(chuàng)和安聯(lián)通攜手慶陽(yáng)市人民政府、甘肅省人工智能與
    的頭像 發(fā)表于 09-20 10:32 ?848次閱讀

    名單公布!【書(shū)籍評(píng)測(cè)活動(dòng)NO.43】 芯片 | 高性能 CPU/GPU/NPU 微架構(gòu)分析

    。本書(shū)對(duì)華為等廠商推出的NPU芯片設(shè)計(jì)也做了架構(gòu)描述,中國(guó)也擁有獨(dú)立自主知識(shí)產(chǎn)權(quán)的高芯片,并且支持芯片、高帶寬互連。本書(shū)也回顧了近20年來(lái)主流的
    發(fā)表于 09-02 10:09

    服務(wù)器為什么選擇GPU

    隨著人工智能技術(shù)的快速普及,需求日益增長(zhǎng)。智中心的服務(wù)器作為支撐大規(guī)模數(shù)據(jù)處理和計(jì)算的核心設(shè)備,其性能優(yōu)化顯得尤為關(guān)鍵。而GPU服務(wù)器
    的頭像 發(fā)表于 07-25 08:28 ?837次閱讀
    <b class='flag-5'>算</b><b class='flag-5'>力</b>服務(wù)器為什么選擇<b class='flag-5'>GPU</b>

    AIGC需求革命,邊緣計(jì)算將不再“邊緣”

    AI瓶頸下邊緣計(jì)算崛起
    的頭像 發(fā)表于 04-22 14:51 ?413次閱讀

    能RADXA微服務(wù)器試用體驗(yàn)】Radxa Fogwise 1684X Mini 規(guī)格

    通過(guò)網(wǎng)絡(luò)可以了解到,能RADXA微服務(wù)器的具體規(guī)格: 處理器:BM1684X :高達(dá)32Tops INT8峰值 內(nèi)存:16GB L
    發(fā)表于 02-28 11:21