<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在基于 Arm Neoverse 的 AWS Graviton3 CPU 上實(shí)現(xiàn)出色性能

          在基于 Arm Neoverse 的 AWS Graviton3 CPU 上實(shí)現(xiàn)出色性能

          作者: 時(shí)間:2024-08-13 來源:Arm 收藏

          作者: 基礎(chǔ)設(shè)施事業(yè)部數(shù)據(jù)中心解決方案架構(gòu)師 Ravi Malhotra

          本文引用地址:http://www.ex-cimer.com/article/202408/461975.htm

          在過去一年里,生成式人工智能 (AI) 吸引了科技行業(yè)的目光,大家都在想方設(shè)法地將大語(yǔ)言模型 (LLM) 部署到其位于云端和邊緣側(cè)服務(wù)器上的應(yīng)用中。雖然 GPU 和加速器憑借優(yōu)異的性能,一直是這些部署任務(wù)的默認(rèn)首選平臺(tái)。但在推理領(lǐng)域,除了 GPU 和加速器之外,還有其他可行的選擇。長(zhǎng)期以來,CPU 一直被用于傳統(tǒng)的 AI 和機(jī)器學(xué)習(xí) (ML) 用例,由于 CPU 能夠處理廣泛多樣的任務(wù)且部署起來更加靈活,因此當(dāng)企業(yè)和開發(fā)者尋求將 LLM 集成到產(chǎn)品和服務(wù)中時(shí),CPU 成了熱門選擇。

          本文將介紹基于 Neoverse 的 Graviton3 CPU 在規(guī)?;`活運(yùn)行 Llama 3 [1] 和 Phi-3 [2] 等業(yè)內(nèi)標(biāo)準(zhǔn) LLM 方面的能力,并展示與其他基于 CPU 的服務(wù)器平臺(tái)相比的主要優(yōu)勢(shì)。

          Graviton3 上的 LLM 性能

          為了展示基于 平臺(tái)的服務(wù)器 CPU 在 LLM 推理方面的能力,Arm 軟件團(tuán)隊(duì)和我們的合作伙伴對(duì) llama.cpp 中實(shí)現(xiàn)的 int4 和 int8 內(nèi)核進(jìn)行了優(yōu)化,以利用這些較新的指令 [3] 。我們?cè)? Graviton3 平臺(tái)上進(jìn)行了多次實(shí)驗(yàn),以測(cè)量不同場(chǎng)景下對(duì)性能的影響,并將影響因素隔離開。

          所有實(shí)驗(yàn)均在 AWS r7g.16xlarge 實(shí)例上進(jìn)行,該實(shí)例帶有 64 個(gè)虛擬 CPU (vCPU) 和 512 GB 的內(nèi)存。所用的模型是經(jīng)過 int4 量化的 Llama3-8B。

           

          提示詞處理

          提示詞詞元 (Token) 通常是并行處理的,即使對(duì)于單次操作 (batch=1),也會(huì)使用所有可用核心。在這方面,經(jīng)過 Arm 優(yōu)化,每秒處理的詞元數(shù)提升了 2.5 倍;在處理更大的批次大小時(shí),性能小幅提升。

          圖:提示詞處理經(jīng)優(yōu)化得到提升

           

          詞元生成

          詞元生成以自回歸的方式進(jìn)行,對(duì)于所需生成的輸出長(zhǎng)度高度敏感。在這方面,經(jīng)過 Arm 優(yōu)化,吞吐量最多可提高兩倍,有助于處理更大的批次大小。

          圖:詞元生成經(jīng)優(yōu)化得到提升

           

          延遲

          詞元生成的延遲對(duì) LLM 的交互式部署非常重要。對(duì)于下個(gè)詞元響應(yīng)時(shí)間 (time-to-next-token),100ms 的延遲是關(guān)鍵的目標(biāo)指標(biāo),這是基于人們每秒 5-10 個(gè)單詞的典型閱讀速度計(jì)算得出的。在下方圖表中,我們看到在單次操作和批量處理的場(chǎng)景下,AWS Graviton3 都能滿足 100ms 的延遲要求,因此適合于作為 LLM 的部署目標(biāo)。

          我們使用了兩組不同的模型 Llama3-8B 和 Phi-3-mini (3.8B),以展示不同規(guī)模的 LLM 的延遲情況。

          圖:AWS Graviton3 的下個(gè)詞元響應(yīng)時(shí)間延遲情況

          即使是在 2019 年推出的 AWS Graviton2 這樣的上一代 Arm 服務(wù)器平臺(tái)上,也能運(yùn)行多達(dá) 80 億參數(shù)的新 LLM,并且在單次操作和批量處理的場(chǎng)景下,均能滿足 100ms 的延遲要求。

          圖:AWS Graviton2 的下個(gè)詞元響應(yīng)時(shí)間延遲情況

          性能比較


          此外,我們使用經(jīng)過 int4 量化的 Llama3-8B 模型,比較了它在 AWS Graviton3 與在 AWS 上其他新一代服務(wù)器 CPU 的性能。


          AWS Graviton3:r7g.16xlarge,64 個(gè) vCPU,512 GB 內(nèi)存,3.43 美元/小時(shí)


          第四代 Intel Xeon:r7i.16xlarge,64 個(gè) vCPU,512 GB 內(nèi)存,4.23 美元/小時(shí)


          第四代 AMD EPYC:r7a.16xlarge,64 個(gè) vCPU(SMT 關(guān)閉),512 GB 內(nèi)存,4.87 美元/小時(shí)

          我們發(fā)現(xiàn),相較于其他兩款 CPU,在提示詞處理和詞元生成方面,AWS Graviton3 的性能高出三倍。

          圖:提示詞處理比較

          圖: 詞元生成比較

          同樣值得注意的是,AWS Graviton3 CPU 比第四代 x86 CPU 更具成本效益,這在 Graviton3 實(shí)例相對(duì)較低的定價(jià)中就有所體現(xiàn)。鑒于 LLM 對(duì)算力的要求已經(jīng)非常高,以單位價(jià)格詞元數(shù)量來計(jì)算總體擁有成本 (TCO),是推動(dòng) LLM 在數(shù)據(jù)中心內(nèi)廣泛采用的關(guān)鍵。

          在這一點(diǎn)上,AWS Graviton3 擁有顯著優(yōu)勢(shì),每美元詞元數(shù)量最高多了三倍,不僅在 CPU 中處于領(lǐng)先,也為希望在采用 LLM 的過程中逐步擴(kuò)大規(guī)模的用戶提供了令人信服的優(yōu)勢(shì)。

          圖:LLM 推理的 TCO 比較

          結(jié)論

          當(dāng)開發(fā)者想要在其應(yīng)用中部署專用 LLM 時(shí),服務(wù)器 CPU 為開發(fā)者提供了靈活、經(jīng)濟(jì)和簡(jiǎn)化的起點(diǎn)。Arm 新增了幾項(xiàng)關(guān)鍵特性,有助于顯著提升 LLM 的性能。得益于此,基于 Arm Neoverse 的服務(wù)器處理器(如 AWS Graviton3)不僅能提供優(yōu)于其他服務(wù)器 CPU 的 LLM 性能,還能為更多應(yīng)用開發(fā)者降低采用 LLM 的門檻。



          關(guān)鍵詞: Arm AWS

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();