RM新时代网站-首页

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

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

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

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

jf_9aVl32Dp ? 來(lái)源:Arm軟件開發(fā)者 ? 作者:Arm軟件開發(fā)者 ? 2023-05-28 09:35 ? 次閱讀

作者:Sunita Nadampalli

新一代的CPU因?yàn)閮?nèi)置了專門的指令,在機(jī)器學(xué)習(xí)(ML)推理方面提供了顯著的性能提升。結(jié)合它們的靈活性、高速開發(fā)和低運(yùn)營(yíng)成本,這些通用處理器為其他現(xiàn)有硬件解決方案提供了一種替代選擇。

AWS、Arm、Meta等公司幫助優(yōu)化了基于Arm處理器的PyTorch 2.0推理性能。因此,我們很高興地宣布,AWS Graviton基于實(shí)例的PyTorch 2.0推理性能比之前的PyTorch版本提高了3.5倍,Resnet50的速度(請(qǐng)參見下圖),BERT的速度提高了1.4倍,使Graviton基于實(shí)例成為AWS上這些模型最快的計(jì)算優(yōu)化實(shí)例。

0ad6ddf6-fccc-11ed-90ce-dac502259ad0.jpg

AWS使用基于AWS Graviton3的Amazon Elastic Cloud Compute C7g實(shí)例進(jìn)行PyTorch推理,相對(duì)于可比較的EC2實(shí)例,跨Torch Hub Resnet50和多個(gè)Hugging Face模型,可節(jié)省高達(dá)50%的成本,如下圖所示。

這是因?yàn)锳WS Graviton3處理器是最新一代定制的AWS Graviton處理器,可為Amazon Elastic Compute Cloud(Amazon EC2)中的工作負(fù)載提供最佳價(jià)格性能。它們提供高達(dá)2倍的浮點(diǎn)性能、高達(dá)2倍的加密性能和高達(dá)3倍的ML性能,包括對(duì)PyTorch的支持。

0afdb3cc-fccc-11ed-90ce-dac502259ad0.jpg

此外,推理的延遲也減少了,如下圖所示。

0b24be04-fccc-11ed-90ce-dac502259ad0.jpg

我們?cè)贕raviton上的其他工作負(fù)載中也看到了類似的價(jià)格性能優(yōu)勢(shì)趨勢(shì),例如使用FFmpeg進(jìn)行視頻編碼(https://aws.amazon.com/blogs/opensource/optimized-video-encoding-with-ffmpeg-on-aws-graviton-processors/)。

優(yōu)化細(xì)節(jié)

優(yōu)化集中在三個(gè)關(guān)鍵領(lǐng)域:

  1. GEMM內(nèi)核 - PyTorch通過OneDNN后端(以前稱為MKL-DNN)支持Arm Compute Library(ACL)GEMM內(nèi)核,用于基于Arm的處理器。ACL庫(kù)為Neon和SVE優(yōu)化了GEMM內(nèi)核,適用于fp32和bfloat16格式。這些內(nèi)核提高了SIMD硬件利用率并降低了端到端推理延遲。

  2. bfloat16支持 - Graviton3中的bfloat16支持允許有效部署使用bfloat16,fp32和AMP(自動(dòng)混合精度)訓(xùn)練的模型。標(biāo)準(zhǔn)fp32模型通過OneDNN快速數(shù)學(xué)模式使用bfloat16內(nèi)核,無(wú)需模型量化,與不帶bfloat16快速數(shù)學(xué)支持的現(xiàn)有fp32模型推理相比,性能提高了兩倍。

  3. 原始緩存 - 我們還為conv、matmul和inner product運(yùn)算符實(shí)現(xiàn)了原始緩存,以避免冗余的GEMM內(nèi)核初始化和張量分配開銷。

如何利用這些優(yōu)化

最簡(jiǎn)單的方法是使用Amazon Elastic Compute Cloud(Amazon EC2)C7g實(shí)例或Amazon SageMaker上的AWS Deep Learning Containers(DLC)。DLC可在Amazon Elastic Container Registry(Amazon ECR)上提供AWS Graviton或x86。有關(guān)SageMaker的更多詳細(xì)信息,請(qǐng)參閱在基于AWS Graviton的實(shí)例上運(yùn)行機(jī)器學(xué)習(xí)推理工作負(fù)載(https://aws.amazon.com/blogs/machine-learning/run-machine-learning-inference-workloads-on-aws-graviton-based-instances-with-amazon-sagemaker/)以及Amazon SageMaker添加了八個(gè)基于Graviton的實(shí)例以進(jìn)行模型部署(https://aws.amazon.com/about-aws/whats-new/2022/10/amazon-sagemaker-adds-new-graviton-based-instances-model-deployment/)。

使用AWS DLC

要使用AWS DLC,請(qǐng)使用以下代碼:

udo apt-get update
sudo apt-get -y install awscli docker


# Login to ECR to avoid image download throttling
aws ecr get-login-password --region us-east-1 
| docker login --username AWS 
  --password-stdin 763104351884.dkr.ecr.us-east-1.amazonaws.com


# Pull the AWS DLC for pytorch
# Graviton
docker pull 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference-graviton:2.0.0-cpu-py310-ubuntu20.04-ec2


# x86
docker pull 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:2.0.0-cpu-py310-ubuntu20.04-ec2

如果您喜歡通過pip安裝PyTorch,請(qǐng)從官方repo安裝PyTorch 2.0 wheel。在這種情況下,在啟動(dòng)PyTorch之前,您將需要設(shè)置兩個(gè)環(huán)境變量,如下面的代碼所述,以激活Graviton優(yōu)化。

使用Python wheel

要使用Python wheel,請(qǐng)參考以下代碼:

# Install Python
sudo apt-get update
sudo apt-get install -y python3 python3-pip


# Upgrade pip3 to the latest version
python3 -m pip install --upgrade pip


# Install PyTorch and extensions
python3 -m pip install torch
python3 -m pip install torchvision torchaudio torchtext


# Turn on Graviton3 optimization
export DNNL_DEFAULT_FPMATH_MODE=BF16
export LRU_CACHE_CAPACITY=1024

運(yùn)行推斷

可以使用PyTorch TorchBench測(cè)量CPU推理性能改進(jìn),或比較不同的實(shí)例類型:

# Pre-requisite: 
# pull and run the AWS DLC
# or 
# pip install PyTorch2.0 wheels and set the previously mentioned environment variables


# Clone PyTorch benchmark repo
git clone https://github.com/pytorch/benchmark.git


# Setup Resnet50 benchmark
cd benchmark
python3 install.py resnet50


# Install the dependent wheels
python3 -m pip install numba


# Run Resnet50 inference in jit mode. On successful completion of the inference runs,
# the script prints the inference latency and accuracy results
python3 run.py resnet50 -d cpu -m jit -t eval --use_cosine_similarity

性能基準(zhǔn)測(cè)試

您可以使用AmazonSageMaker推理推薦實(shí)用程序(https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender.html)來(lái)自動(dòng)化不同實(shí)例之間的性能基準(zhǔn)測(cè)試。使用推理推薦程序,您可以找到實(shí)時(shí)推理端點(diǎn),該端點(diǎn)可以為給定的ML模型以最低的成本提供最佳性能。我們通過在生產(chǎn)端點(diǎn)上部署模型,使用推理推薦器筆記本收集了前面的數(shù)據(jù)。有關(guān)推理推薦程序的更多詳細(xì)信息,請(qǐng)參閱GitHub repo(https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-inference-recommender/huggingface-inference-recommender/huggingface-inference-recommender.ipynb)。我們?yōu)檫@篇文章測(cè)試了以下模型:ResNet50圖像分類(https://pytorch.org/hub/pytorch_vision_resnet/)、DistilBERT情緒分析(https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english)、RoBERTa填充掩碼(https://huggingface.co/roberta-base)和RoBERTa情緒分析(https://huggingface.co/cardiffnlp/twitter-roberta-base-sentiment)。

結(jié)論

AWS通過Torch Hub Resnet50中基于AWS Graviton3的亞馬遜彈性云計(jì)算C7g實(shí)例,以及相對(duì)于可比EC2實(shí)例的多個(gè)擁抱人臉模型,為PyTorch推理節(jié)省了高達(dá)50%的成本。這些實(shí)例可在SageMaker和AmazonEC2上獲得。AWS Graviton技術(shù)指南(https://github.com/aws/aws-graviton-getting-started)提供了優(yōu)化的庫(kù)和最佳實(shí)踐列表,這些庫(kù)和最佳做法將幫助您在不同的工作負(fù)載中使用Graviton實(shí)例實(shí)現(xiàn)成本效益。

如果您發(fā)現(xiàn)在AWS Graviton上沒有觀察到類似性能提升的用例,請(qǐng)?jiān)贏WS Gravaton技術(shù)指南(https://github.com/aws/aws-graviton-getting-started)上提交問題,讓我們了解它。我們將繼續(xù)添加更多性能改進(jìn),使Graviton成為使用PyTorch進(jìn)行推理的最具成本效益和效率的通用處理器。


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

    關(guān)注

    68

    文章

    10851

    瀏覽量

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

    關(guān)注

    66

    文章

    8402

    瀏覽量

    132540
  • AWS
    AWS
    +關(guān)注

    關(guān)注

    0

    文章

    431

    瀏覽量

    24350
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    807

    瀏覽量

    13193

原文標(biāo)題:使用AWS Graviton處理器優(yōu)化的PyTorch 2.0推理

文章出處:【微信號(hào):Arm軟件開發(fā)者,微信公眾號(hào):Arm軟件開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    強(qiáng)悍的AWS Graviton4處理器及其背后的Arm Neoverse

    電子發(fā)燒友網(wǎng)報(bào)道(文/吳子鵬)在今年的亞馬遜re:Invent 2024大會(huì)上,該公司正式對(duì)外發(fā)布了旗下第四代自研Arm芯片——Graviton4。作為目前最強(qiáng)大的Graviton處理器
    的頭像 發(fā)表于 12-19 00:04 ?453次閱讀

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

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

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

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

    在Ubuntu 18.04 for Arm上運(yùn)行的TensorFlow和PyTorch的Docker映像

    TensorFlow和PyTorch是兩個(gè)最流行的機(jī)器學(xué)習(xí)框架。兩者在 Arm 上的使用都在增加,從像 Raspberry Pi 這樣的小型系統(tǒng)到用于服務(wù)和高性能計(jì)算 (HPC) 的大型系統(tǒng)。盡管
    發(fā)表于 10-14 14:25

    基于亞馬遜自研的 Arm 處理器 Graviton2

    據(jù)悉,AWS C6g 所用的 Graviton2 處理器是亞馬遜第二代自研 Arm 芯片。對(duì)于高性能計(jì)算領(lǐng)域,x86 架構(gòu)處理器雖然在性能上強(qiáng)于 Arm 架構(gòu)
    發(fā)表于 08-10 14:30 ?854次閱讀

    AWS Arm 架構(gòu)處理器首次落地中國(guó)區(qū)域:比同配置 X86 實(shí)例性價(jià)比提高 40%

    1 月 28 日消息,亞馬遜云服務(wù)(AWS)正式宣布,由 AWS Graviton2 處理器提供支持的 Amazon Elastic Compute Cloud (Amazon EC2
    的頭像 發(fā)表于 01-28 16:22 ?2487次閱讀

    亞馬遜云原生自研處理器Graviton 2正式落地中國(guó)

    1月28日,亞馬遜云服務(wù)(AWS)宣布,旗下的云原生自研處理器Graviton 2正式落地中國(guó)。這是AWS自研的、原生為云而設(shè)計(jì)開發(fā)的芯片,也是AW
    的頭像 發(fā)表于 01-29 10:23 ?2138次閱讀

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

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

    專用處理能力驅(qū)動(dòng)基于Arm架構(gòu)的云計(jì)算時(shí)代并支持AWS Graviton不斷創(chuàng)新

    AWS也同時(shí)展示了基于Graviton3處理器的C7g云實(shí)例,現(xiàn)已開放預(yù)覽。C7g是由Arm? Neoverse?驅(qū)動(dòng)、首個(gè)支持DDR5的云實(shí)例,可提供更多的內(nèi)存帶寬,帶來(lái)更高的性能。
    發(fā)表于 12-06 16:25 ?1074次閱讀
    專用<b class='flag-5'>處理</b>能力驅(qū)動(dòng)基于Arm架構(gòu)的云計(jì)算時(shí)代并支持<b class='flag-5'>AWS</b> <b class='flag-5'>Graviton</b>不斷創(chuàng)新

    ?使用AWS Graviton降低Amazon SageMaker推理成本

    Amazon SageMaker(https://aws.amazon.com/sagemaker/)提供了多種機(jī)器學(xué)習(xí)(ML)基礎(chǔ)設(shè)施和模型部署選項(xiàng),以幫助滿足您的ML推理需求。它是一個(gè)完全
    的頭像 發(fā)表于 05-28 09:31 ?733次閱讀
    ?使用<b class='flag-5'>AWS</b> <b class='flag-5'>Graviton</b>降低Amazon SageMaker<b class='flag-5'>推理</b>成本

    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>

    INT8量子化PyTorch x86處理器

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

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

    2.0優(yōu)化PyTorch推理AWS引力子處理器
    的頭像 發(fā)表于 08-31 14:27 ?604次閱讀
    <b class='flag-5'>2.0</b><b class='flag-5'>優(yōu)化</b><b class='flag-5'>PyTorch</b><b class='flag-5'>推理</b>與<b class='flag-5'>AWS</b>引力子<b class='flag-5'>處理器</b>

    亞馬遜網(wǎng)絡(luò)服務(wù)即將推出第四代Graviton處理器

    7月10日,雅虎財(cái)經(jīng)獨(dú)家報(bào)道了亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)即將推出的重大技術(shù)進(jìn)展——其第四代Graviton處理器,即Graviton4芯片。這一重要信息由
    的頭像 發(fā)表于 07-10 15:51 ?612次閱讀

    Arm與AWS合作深化,AWS Graviton4展現(xiàn)顯著進(jìn)展

    :Invent 2024大會(huì)上,AWS進(jìn)一步展示了其基于Arm架構(gòu)的AWS Graviton4處理器的顯著進(jìn)展。AWS
    的頭像 發(fā)表于 12-18 14:17 ?90次閱讀
    RM新时代网站-首页