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

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

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

2.0優(yōu)化PyTorch推理與AWS引力子處理器

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-31 14:27 ? 次閱讀

由來自AWS的蘇尼塔·納坦普alli 校對:Portnoy

新一代的CPU機(jī)器學(xué)習(xí)(ML)推論中,由于專門的內(nèi)置指令,其性能顯著改善。 這些普通用途處理器加上其靈活性、高速開發(fā)和低運(yùn)作成本,為其他現(xiàn)有硬件解決方案提供了替代 ML 推論解決方案。

AWS、Arm、Meta等幫助優(yōu)化了PyTorrch 2.0 武器化處理器的性能。 因此,我們高興地宣布,PyToch 2.0 武器基AWS Graviton案例的推論性能比先前的PyToch 釋放速度高達(dá)ResNet-50的3.5倍,比BERT速度高達(dá)1.4倍,使Graviton案例成為這些模型在AWS上最快速最優(yōu)化的計算實(shí)例(見下圖 ) 。

wKgaomTv-uKAYyFQAAH1Ukjgtys485.png

圖像1:通過從PyTorrch版本1.13升級到2.0(越高越好)實(shí)現(xiàn)相對速度的提高。

如下圖所示,我們測量到PyTorrch 以 Graviton3 為基礎(chǔ)的C7g 案例在火炬樞紐ResNet-50和多個擁抱面模型中產(chǎn)生的成本節(jié)約高達(dá)50%,而可比的以x86為基礎(chǔ)的計算優(yōu)化了亞馬遜EC2案例。對于該圖表,我們首先測量了五種案例類型的每百萬次計算成本。然后,我們將每百萬次計算成本的結(jié)果與C5.4x大案例(這是該圖表Y軸上的“1”的基線衡量標(biāo)準(zhǔn))標(biāo)準(zhǔn)化。

wKgaomTv-wmAFBThAADm3l74kAo049.png

圖像2圖2:不同AWS實(shí)例中的PyTorch推論的相對成本(較低者更好)。
資料來源:AWS ML博客。Graviton PyTerch2.0 推推性能.

與前面的推論成本比較圖相似,下圖顯示了相同五例類型的模型p90延遲度。我們將延遲值結(jié)果與C5.4x大實(shí)例(這是圖Y軸上的“1”基線測量標(biāo)準(zhǔn))正?;?。 c7g.4x大(AWS Graviton3)模型推導(dǎo)延遲度比C5.4x大、C6i4x大和C6a.4x大的延遲度高出50%。

wKgaomTv-xCAC2ROAADhBuqwOgE423.png

圖像 3:不同AWS實(shí)例中的PyTocher推論的相對延遲度(第90頁)(較低者更好)。
資料來源:AWS ML博客。Graviton PyTerch2.0 推推性能.

優(yōu)化詳情

PyTorrch 支持計算 Armá 建筑(ACL) GEMM 核心庫的計算, 通過 AArch64 平臺的 oneDNNN 后端( 原稱“ MKL- DNN ”) 計算 。 優(yōu)化主要針對 PyTorrch ATen CPU BLAS 、 fp32 和 bfloat16 的 ACL 內(nèi)核以及 1DN 原始緩存。 沒有前端 API 更改, 因此在應(yīng)用層面無需修改, 以使這些優(yōu)化適用于 Graviton3 實(shí)例 。

Py火點(diǎn)級優(yōu)化

我們擴(kuò)展了ATen CPU BLAS 接口, 通過 anDNN 后端加速 Aarch64 平臺的更多操作員和高壓配置。 下圖突出顯示( 橙色) 優(yōu)化組件, 改善了 Aarch64 平臺上的 PyTorrch 推斷性能 。

wKgaomTv-z6AalZIAAGv823Nh3w752.png

圖像 4 圖像 4:PyTorrch軟件堆加亮(橙色)AArch64平臺上為改進(jìn)推論性能而優(yōu)化的組件

ACL 內(nèi)核和 BFloat16 FFmatath 模式

ACL 圖書館為 fp32 和 bfloat 16 格式提供 Neon 和 SVE 優(yōu)化的 GEMM 內(nèi)核: 這些內(nèi)核提高了SIMD 硬件的利用率,并將結(jié)束時間縮短到最終推導(dǎo)延遲。 Graviton 3 的 bloat 16 支持使使用 bfloat 16 fp32 和 自動混合精密( AMP) 培訓(xùn)的模型得到有效部署。 標(biāo)準(zhǔn)的 fp32 模型通過 oneDNN FPmath 模式使用 bfloat 16 內(nèi)核,而沒有模型量化。 這些內(nèi)核的性能比現(xiàn)有的 fp32 模型推力快兩倍,沒有 bfloat16 FPmath 支持。 關(guān)于ACL GEM 內(nèi)核支持的更多細(xì)節(jié),請參見 ACL GEMM 內(nèi)核支持。Arm 計算庫 Github.

原始緩存

以下調(diào)序圖顯示了ACL運(yùn)算符是如何融入 oneDNN 后端的。 如圖所示, ACL 對象以 oneDNN 資源而不是原始對象來處理 ACL 對象。 這是因?yàn)?ACL 對象是明確和可變的 。 由于 ACL 對象是作為資源對象處理的, 因而無法以 oneDNN 支持的默認(rèn)原始緩沖特性來緩存 。 我們用“ 遞增”、“ 配制” 和“ 內(nèi)制產(chǎn)品” 運(yùn)算符在 ideep 操作員級別上進(jìn)行原始的遞歸, 以避免 GEMM 內(nèi)核啟動和 Exronor 分配管理 。

wKgZomTv-4-ACg8MAALw-FaexLs227.png

圖像5:呼叫序列圖表,顯示如何將 Armatia 建筑(ACL) GEMM GEMM 內(nèi)核計算庫整合到一個 DNN 后端

如何利用優(yōu)化

從官方回購中安裝 PyTorrch 2. 0 輪, 并設(shè)置環(huán)境變量, 以允許額外優(yōu)化 。

調(diào)

正在運(yùn)行一種推論

您可以使用 PyTork火炬燃燒以測量 CPU 推斷性能改進(jìn),或比較不同實(shí)例類型。

調(diào)

業(yè)績分析

現(xiàn)在, 我們將使用 PyTorrch 配置器分析 ResNet- 50 在 Graviton3 的 c7g 實(shí)例上的 ResNet- 50 的推論性能 。 我們用 PyTorrch 1. 13 和 PyTorrch 2. 0 運(yùn)行下面的代碼, 并在測量性能之前將幾處迭代的推論進(jìn)行 。

調(diào)

從火炬進(jìn)口模型樣本中導(dǎo)入的點(diǎn)火炬 樣本_input = [火炬.rand(1, 3, 224, 224)] 熱度_ 模型 = 模型.resnet50 (重量=模型.ResNet50_Weights.DEFAULAT) 模型 = 火炬.jit. stat. stript.jet.no_grad () 模型 = 模型.eval () 模型 = 火炬.jit.optimize_ for_ inference () 模型 :

我們用電壓儀查看剖面儀的結(jié)果,分析模型性能。

安裝以下 PyTollch 配置配置程序 Tensorboard 插件插件

pip 安裝火炬_ tb_ 色彩描述器

使用電壓板啟動

色色板 -- logdir=./logs

在瀏覽器中啟動以下內(nèi)容以查看剖析器輸出。 剖析器支持“ 概覽” 、 “ 操作器” 、 “ 跟蹤” 和“ 模塊” 的觀點(diǎn), 以洞察推論執(zhí)行 。

http://localhost:6006/

下圖是剖析器“ Trace” 視圖, 顯示調(diào)用堆和每個函數(shù)的執(zhí)行時間。 在剖析器中, 我們選擇了前方() 函數(shù)以獲得整個推算時間。 如圖所示, 以 Graviton3 為基礎(chǔ)的 7g 實(shí)例 ResNet- 50 模型的推算時間比 PyTorch 1. 13 高出 PyTorrch 2. 0 的三倍左右。

wKgZomTv-8SAWrkVAAO1rjmHFc4096.png

圖像 6: 剖析器跟蹤視圖: PyTorch 1. 13 和 PyTorch 2. 0 上的前穿墻長度

下一個圖表是“ 操作器” 視圖, 該視圖顯示 PyTorrch 操作器及其執(zhí)行時間列表。 與前面的 Trace 視圖類似, 操作器視圖顯示, 以 Graviton3 為基礎(chǔ)的 c7g 實(shí)例 ResNet- 50 模型的操作器主機(jī)運(yùn)行時間比 PyTorrch 1. 13 高出 3 倍左右 。

wKgZomTv_D6AOmySAAVHTBHi9oU887.png

圖像 7PyTorch 1. 13 和 PyTorch 2. 0 的主機(jī)時間

B. 基準(zhǔn)制定 " 擁抱模型 " 的基準(zhǔn)

您可以使用Amazon Sage-Maker 推斷建議在不同實(shí)例中自動設(shè)定性能基準(zhǔn)參數(shù)的實(shí)用性, 在不同實(shí)例中自動設(shè)定性能基準(zhǔn)。 使用推推建議, 您可以找到實(shí)時推論端點(diǎn), 該端點(diǎn)以給定 ML 模型的最低成本提供最佳性能。 我們通過在生產(chǎn)端點(diǎn)上部署模型, 收集了上述數(shù)據(jù) 。 關(guān)于推論建議方的更多細(xì)節(jié), 請參考亞馬孫 -- -- 種植者 -- -- 實(shí)例GitHub repo。我們?yōu)檫@個職位設(shè)定了以下模式基準(zhǔn):ResNet50 圖像分類,發(fā)盤感應(yīng)分析,RoBERTA 填充遮罩, 和RoBERTATA情緒分析.

結(jié) 結(jié) 結(jié) 結(jié)

對于PyTorrch 2. 0, 以 Graviton3為基礎(chǔ)的C7g實(shí)例是計算最符合成本效益的最優(yōu)化亞馬遜EC2案例的推論。師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師 師和亞馬遜 EC2。AWS 重力技術(shù)指南提供最佳圖書館和最佳做法清單,幫助您在不同工作量中利用Graviton案例實(shí)現(xiàn)成本效益。

如果您發(fā)現(xiàn)在Graviton沒有觀察到類似的績效收益的使用情況,請就Graviton的績效收益提出問題。啟動 aws -graviton - greviton - 啟動我們將繼續(xù)進(jìn)一步改進(jìn)性能,使以AWS Graviton為基礎(chǔ)的案例成為使用PyTorrch進(jìn)行推論的最具成本效益和效率的通用處理器。

收到確認(rèn)

我們還要感謝AWS的Ali Saidi(首席工程師)和Csaba Csoma(軟件開發(fā)經(jīng)理)、Ashok Bhat(產(chǎn)品經(jīng)理)、Nathan Sircombe(工程經(jīng)理)和Milos Puzovic(首席軟件工程師)在Graviton PyTorch推論優(yōu)化工作中的支持。 我們還要感謝Meta的Geeta Chauhan(應(yīng)用AI工程師領(lǐng)袖)在博客上提供的指導(dǎo)。

關(guān)于提交人

蘇尼塔·納坦普alli系A(chǔ)WS的ML工程師和軟件開發(fā)經(jīng)理。

安基思·古納帕在Meta(PyTorrch)是AI合伙人工程師。

審核編輯:湯梓紅

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

    關(guān)注

    68

    文章

    18927

    瀏覽量

    227231
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    28877

    瀏覽量

    266230
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131845
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    794

    瀏覽量

    13010
收藏 人收藏

    評論

    相關(guān)推薦

    Arm Neoverse V1的AWS Graviton3在深度學(xué)習(xí)推理工作負(fù)載方面的作用

    :具有 AWS Graviton3 處理器的 c7g.4xlarge 實(shí)例集群和具有 AWS Graviton2 處理器的 c6g.4xlarge 實(shí)例集群實(shí)現(xiàn)的 Resnet-50
    發(fā)表于 08-31 15:03

    AWS云中使用Arm處理器設(shè)計Arm處理器

    1、在AWS云中使用Arm處理器設(shè)計Arm處理器  Amazon Web Services (AWS) 宣布推出基于 Arm 的全新 AWS
    發(fā)表于 09-02 15:55

    通過Cortex來非常方便的部署PyTorch模型

    產(chǎn)中使用 PyTorch 意味著什么?根據(jù)生產(chǎn)環(huán)境的不同,在生產(chǎn)環(huán)境中運(yùn)行機(jī)器學(xué)習(xí)可能意味著不同的事情。一般來說,在生產(chǎn)中有兩類機(jī)器學(xué)習(xí)的設(shè)計模式:通過推理服務(wù)提供一個預(yù)測 API 。這是在通用軟件
    發(fā)表于 11-01 15:25

    地球引力位函數(shù)在流處理器上的實(shí)現(xiàn)與分析

    地球引力位函數(shù)在流處理器上的實(shí)現(xiàn)與分析 流處理器是新型高性能微處理器的代表之一。該文通過分析Imagine 流處理器體系結(jié)構(gòu),實(shí)現(xiàn)某衛(wèi)
    發(fā)表于 03-30 10:31 ?29次下載

    Blackfin處理器性能優(yōu)化

    Blackfin處理器性能優(yōu)化:Blackfin處理器性能優(yōu)化課程單元:Blackfin®處理器性能
    發(fā)表于 09-02 13:05 ?18次下載

    如何選擇嵌入式處理器推理

    在嵌入式系統(tǒng)中,推理可以在各種片上處理單元上運(yùn)行,如中央處理單元(CPU),GPU,數(shù)字信號處理器,F(xiàn)PGA邏輯,專用加速或這些選項(xiàng)的任意
    發(fā)表于 09-11 15:01 ?922次閱讀

    AWS基于Arm架構(gòu)的Graviton 2處理器落地中國

    Graviton 2處理器提供支持的Amazon Elastic Compute Cloud(Amazon EC2)M6g、C6g和R6g實(shí)例已在由光環(huán)新網(wǎng)運(yùn)營的AWS中國(北京)地區(qū)和由西云數(shù)據(jù)運(yùn)營
    的頭像 發(fā)表于 02-01 11:46 ?2986次閱讀

    使用AWS Graviton處理器優(yōu)化PyTorch 2.0推理

    新一代的CPU因?yàn)閮?nèi)置了專門的指令,在機(jī)器學(xué)習(xí)(ML)推理方面提供了顯著的性能提升。結(jié)合它們的靈活性、高速開發(fā)和低運(yùn)營成本,這些通用處理器為其他現(xiàn)有硬件解決方案提供了一種替代選擇。 AWS、Arm、Meta等公司幫助優(yōu)
    的頭像 發(fā)表于 05-28 09:35 ?613次閱讀
    使用<b class='flag-5'>AWS</b> Graviton<b class='flag-5'>處理器</b><b class='flag-5'>優(yōu)化</b>的<b class='flag-5'>PyTorch</b> <b class='flag-5'>2.0</b><b class='flag-5'>推理</b>

    PyTorch教程16.4之自然語言推理和數(shù)據(jù)集

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程16.4之自然語言推理和數(shù)據(jù)集.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 10:57 ?0次下載
    <b class='flag-5'>PyTorch</b>教程16.4之自然語言<b class='flag-5'>推理</b>和數(shù)據(jù)集

    PyTorch教程16.5之自然語言推理:使用注意力

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程16.5之自然語言推理:使用注意力.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 10:49 ?0次下載
    <b class='flag-5'>PyTorch</b>教程16.5之自然語言<b class='flag-5'>推理</b>:使用注意力

    PyTorch教程16.7之自然語言推理:微調(diào)BERT

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程16.7之自然語言推理:微調(diào)BERT.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 10:52 ?0次下載
    <b class='flag-5'>PyTorch</b>教程16.7之自然語言<b class='flag-5'>推理</b>:微調(diào)BERT

    PyTorch教程18.3之高斯過程推理

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程18.3之高斯過程推理.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 10:48 ?0次下載
    <b class='flag-5'>PyTorch</b>教程18.3之高斯過程<b class='flag-5'>推理</b>

    PyTorch教程23.3之使用AWS EC2實(shí)例

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程23.3之使用AWS EC2實(shí)例.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 18:10 ?0次下載
    <b class='flag-5'>PyTorch</b>教程23.3之使用<b class='flag-5'>AWS</b> EC2實(shí)例

    INT8量子化PyTorch x86處理器

    INT8量子化PyTorch x86處理器
    的頭像 發(fā)表于 08-31 14:27 ?749次閱讀
    INT8量子化<b class='flag-5'>PyTorch</b> x86<b class='flag-5'>處理器</b>

    AMD EPYC處理器:AI推理能力究竟有多強(qiáng)?

    如今,AMD EPYC處理器已經(jīng)成為最常被選擇用于AI推理的服務(wù)平臺,尤其是第四代Genoa EPYC 9004系列,執(zhí)行AI推理的能力又得到了巨大的飛躍。
    發(fā)表于 03-15 09:47 ?349次閱讀