日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用EAIS推理PyTorch模型(C++)

您可以在ECS實(shí)例(非GPU實(shí)例)上綁定一個(gè)彈性加速計(jì)算實(shí)例EAIS(EAIS可以為ECS實(shí)例提供GPU資源),即可生成一款新規(guī)格的GPU實(shí)例。相比直接購(gòu)買(mǎi)GPU實(shí)例,使用該方式可以為您靈活提供GPU資源并有效節(jié)省成本。如果您初次使用EAIS,可以通過(guò)本文內(nèi)容體驗(yàn)在ECS實(shí)例上使用EAIS通過(guò)C++程序推理PyTorch模型并獲得性能加速的完整使用流程,幫助您快速上手EAIS。

背景信息

本教程將引導(dǎo)您創(chuàng)建一個(gè)華東1(杭州)地域,eais.ei-a6.2xlarge規(guī)格的EAIS實(shí)例,并以公開(kāi)的resnet50模型和bert-base模型為例,帶您體驗(yàn)在基于圖像分類(lèi)和NLP的推理場(chǎng)景下,使用EAIS推理PyTorch模型并獲得性能加速的完整操作流程。如果您使用EAIS推理過(guò)程中遇到性能或者功能問(wèn)題,請(qǐng)聯(lián)系EAIS技術(shù)支持為您提供定制化的優(yōu)化方案。

本教程重點(diǎn)介紹使用C++程序推理PyTorch模型的過(guò)程,如需了解Python腳本推理PyTorch模型的過(guò)程,請(qǐng)參見(jiàn)使用EAIS推理PyTorch模型(Python)

與GPU實(shí)例(NVIDIA T4)相比,使用EAIS推理會(huì)明顯提升推理的性能。C++程序(依賴(lài)于libtorch)使用eais.ei-a6.2xlarge規(guī)格的EAIS實(shí)例與使用GPU實(shí)例(NVIDIA T4)推理的性能對(duì)比數(shù)據(jù)如下表所示。

說(shuō)明
  • 本文數(shù)據(jù)僅為示例,具體數(shù)據(jù)以您的實(shí)際推理結(jié)果為準(zhǔn)。

  • 您也可以參考eais-miniconda軟件包中提供的C++程序代碼,自行測(cè)試GPU實(shí)例(NVIDIA T4)推理的性能來(lái)與EAIS實(shí)例進(jìn)行比較。

推理模型

eais.ei-a6.2xlarge

GPU實(shí)例(NVIDIA T4)

EAIS比GPU實(shí)例(NVIDIA T4)提升的性能倍數(shù)

resnet50

2.20 ms

6.24 ms

2.84倍

bert-base

5.38 ms

8.32 ms

1.55倍

步驟一:創(chuàng)建并綁定ECS實(shí)例和EAIS實(shí)例

  1. 創(chuàng)建ECS實(shí)例。

    1. 登錄并前往ECS實(shí)例創(chuàng)建頁(yè)。

    2. 創(chuàng)建一個(gè)專(zhuān)有網(wǎng)絡(luò)類(lèi)型的ECS實(shí)例,來(lái)作為EAIS實(shí)例的綁定目標(biāo)。

      具體操作,請(qǐng)參見(jiàn)實(shí)例創(chuàng)建方式介紹。

      說(shuō)明

      ECS實(shí)例的操作系統(tǒng)推薦使用Ubuntu 18.04。

  2. 創(chuàng)建EAIS實(shí)例。

    1. 登錄EAIS控制臺(tái)。

    2. 在左側(cè)導(dǎo)航欄,選擇彈性加速計(jì)算實(shí)例 EAIS > 彈性加速計(jì)算實(shí)例列表。

      重要

      如果您的阿里云賬號(hào)未添加并授權(quán)AliyunServiceRoleForEais角色(角色權(quán)限策略為AliyunServiceRoleForEais),您需要先授權(quán)EAIS創(chuàng)建一個(gè)服務(wù)關(guān)聯(lián)角色后,再創(chuàng)建EAIS實(shí)例。具體操作,請(qǐng)參見(jiàn)服務(wù)關(guān)聯(lián)角色。

    3. 單擊創(chuàng)建彈性加速計(jì)算實(shí)例。

    4. 在EAIS實(shí)例購(gòu)買(mǎi)頁(yè)面,配置EAIS實(shí)例參數(shù),然后單擊立即購(gòu)買(mǎi)。

      創(chuàng)建EAIS實(shí)例.png配置項(xiàng)說(shuō)明如下:

      配置項(xiàng)

      配置示例

      地域

      華東1(杭州)

      實(shí)例名稱(chēng)

      eais_test

      實(shí)例規(guī)格

      eais.ei-a6.2xlarge

      專(zhuān)有網(wǎng)絡(luò)

      eais-vpc

      交換機(jī)

      eais-vswitch

      安全組

      eais-securitygroup

      資源組

      默認(rèn)資源組

    5. 確認(rèn)訂單頁(yè)面,選中服務(wù)協(xié)議右側(cè)的我已閱讀并同意彈性加速計(jì)算實(shí)例服務(wù)協(xié)議,然后單擊立即開(kāi)通eais 訂單確認(rèn)

  3. 綁定EAIS實(shí)例至ECS實(shí)例。

    1. 單擊管理控制臺(tái),前往EAIS控制臺(tái)。

    2. 在EAIS實(shí)例列表中,單擊實(shí)例eais_test所在操作列下的綁定。綁定EAIS.png

    3. 在對(duì)話(huà)框中,選擇待綁定的ECS實(shí)例。

    4. 單擊確定

      EAIS實(shí)例列表每15秒自動(dòng)刷新,當(dāng)EAIS實(shí)例狀態(tài)由綁定中變?yōu)?b data-tag="uicontrol" id="fec77329c7vq1" class="uicontrol">已綁定時(shí),表示EAIS實(shí)例綁定成功。

      重要

      一個(gè)EAIS實(shí)例僅支持綁定一個(gè)ECS實(shí)例,一個(gè)ECS實(shí)例支持綁定一個(gè)或多個(gè)EAIS實(shí)例。更多信息,請(qǐng)參見(jiàn)使用限制

步驟二:?jiǎn)?dòng)EAIS實(shí)例

重要

僅使用EAIS控制臺(tái)和調(diào)用CreateEaisEi創(chuàng)建的EAIS實(shí)例需要執(zhí)行本操作。

  1. 在EAIS實(shí)例列表中,單擊實(shí)例eais_test所在操作列下的啟動(dòng)。啟動(dòng)EAIS.png

  2. 啟動(dòng)實(shí)例對(duì)話(huà)框中,單擊確定。

    EAIS實(shí)例列表每15秒自動(dòng)刷新,當(dāng)EAIS實(shí)例狀態(tài)由已綁定變?yōu)?b data-tag="uicontrol" id="83f70b850c25p" class="uicontrol">使用中時(shí),表示EAIS實(shí)例啟動(dòng)成功。

步驟三:登錄ECS實(shí)例

  1. 登錄EAIS控制臺(tái)。

  2. 在EAIS實(shí)例列表中,單擊實(shí)例eais_test綁定的ECS實(shí)例ID,進(jìn)入該ECS實(shí)例詳情頁(yè)。單擊ECS實(shí)例ID.png

  3. 遠(yuǎn)程登錄ECS實(shí)例。

    具體操作,請(qǐng)參見(jiàn)連接方式概述遠(yuǎn)程連接ECS實(shí)例.png

步驟四:查看EAIS相關(guān)信息

  1. 安裝eais-tool軟件包。

    1. 執(zhí)行如下命令,安裝eais-tool deb軟件包。

      export VERSION=4.2.5
      wget https://eais-rel-pub.oss-cn-beijing.aliyuncs.com/packages/eais-tool_${VERSION}_amd64.deb
      sudo dpkg -i eais-tool_${VERSION}_amd64.deb
      source /etc/profile
    2. 執(zhí)行如下命令,查看eais-tool deb軟件包安裝結(jié)果。

      dpkg -l | grep eais-tool

      回顯信息中包含eais-tool軟件包信息,表示eais-tool deb軟件包安裝成功。

  2. 查看EAIS相關(guān)信息。

    如果您想查看EAIS相關(guān)信息,只需在您安裝eais-tool軟件包后,執(zhí)行eais_smi命令,即可在回顯中查看EAIS實(shí)例規(guī)格、EAIS GPU使用率等信息,回顯示例如下。eais_smi工具查看硬件信息

步驟五:搭建運(yùn)行環(huán)境

本教程以cxx11 ABI方式編譯的依賴(lài)于libtorch 1.13.1版本的EAIS deb軟件包為例,進(jìn)行如下步驟搭建C++運(yùn)行環(huán)境。

  1. 安裝CUDA。

    1. 執(zhí)行如下命令,下載并安裝CUDA軟件包。

      wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
      sudo sh cuda_11.7.0_515.43.04_linux.run --silent --toolkit
    2. 執(zhí)行如下命令,設(shè)置CUDA相關(guān)的環(huán)境變量。

      export PATH=/usr/local/cuda/bin:$PATH
      export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  2. 安裝eais-cuda軟件包。

    1. 執(zhí)行如下命令,安裝eais-cuda deb軟件包。

      export VERSION=4.2.5
      wget https://eais-rel-pub.oss-cn-beijing.aliyuncs.com/packages/eais-cuda_${VERSION}_amd64.deb
      sudo dpkg -i eais-cuda_${VERSION}_amd64.deb
    2. 執(zhí)行如下命令,查看eais-cuda deb軟件包安裝結(jié)果。

      dpkg -l | grep eais-cuda

      回顯信息中包含eais-cuda軟件包信息,表示eais-cuda deb軟件包安裝成功。

  3. 安裝eais-torch軟件包。

    1. 執(zhí)行如下命令,安裝eais-torch軟件包。

      export VERSION=4.2.5
      wget https://eais-rel-pub.oss-cn-beijing.aliyuncs.com/packages/eais-torch1.13.1-cxx11-abi_${VERSION}_amd64.deb
      sudo dpkg -i eais-torch1.13.1-cxx11-abi_${VERSION}_amd64.deb
      source /etc/profile
    2. 執(zhí)行如下命令,查看eais-torch deb軟件包安裝結(jié)果。

      dpkg -l | grep eais-torch

      回顯信息中包含eais-torch軟件包信息,表示eais-torch deb軟件包安裝成功。

步驟六:推理并加速PyTorch模型

  1. 下載EAIS C++測(cè)試樣例。

    1. 執(zhí)行如下命令,下載并解壓包含了EAIS C++測(cè)試樣例的eais-miniconda軟件包。

      wget https://eais-rel-pub.oss-cn-beijing.aliyuncs.com/packages/eais-miniconda.zip
      sudo apt-get update && sudo apt-get install -y unzip
      unzip -q eais-miniconda.zip
    2. 執(zhí)行如下命令,進(jìn)入eais-miniconda軟件包根目錄。

      cd eais-miniconda/
      說(shuō)明

      后續(xù)操作均會(huì)以此為根目錄。

  2. 使用C++軟件包推理并加速Pytorch模型。

    1. 執(zhí)行如下命令,進(jìn)入C++軟件包測(cè)試目錄。

      cd eais/cpp
    2. 編譯C++示例腳本。

      1. 執(zhí)行如下命令,安裝編譯及運(yùn)行示例腳本所需要的軟件包。

        sudo apt-get install -y build-essential cmake libopencv-dev
      2. 執(zhí)行如下命令,編譯生成可執(zhí)行的示例程序。

        mkdir build
        cd build
        cmake ..
        make -j8
        cd ..
      3. 執(zhí)行如下命令,查看生成的示例程序。

        ls build/src

        回顯結(jié)果如下,表示示例程序已生成。image

  3. 運(yùn)行C++示例程序。

    1. 執(zhí)行如下命令,設(shè)置示例程序依賴(lài)的動(dòng)態(tài)庫(kù)路徑。

      export LD_LIBRARY_PATH=`pwd`/third_party/libtorch/lib:$LD_LIBRARY_PATH
    2. 進(jìn)行resnet50模型推理。

      1. 執(zhí)行如下命令,進(jìn)行resnet50模型推理(不包含CUDA調(diào)用信息)。

        說(shuō)明

        本示例中數(shù)據(jù)預(yù)處理、后處理是調(diào)用opencvtorch接口在CPU上實(shí)現(xiàn)的,具體代碼實(shí)現(xiàn)在src目錄下。

        LD_PRELOAD=libtorcheais.so \
        build/src/pytorch_resnet50 \
          -m ../data/models/resnet50.pt \
          -l ../data/densenet_labels.txt \
          ../data/images

        參數(shù)信息說(shuō)明如下:

        • LD_PRELOAD:預(yù)加載已安裝的動(dòng)態(tài)庫(kù)libtorcheais.so。

        • build/src/pytorch_resnet50:通過(guò)編譯命令生成的可執(zhí)行的示例程序pytorch_resnet50

        • ../data/models/resnet50.pt:eais-miniconda軟件包中提供的resnet50模型文件。

        • ../data/densenet_labels.txt:eais-miniconda軟件包中提供的存放圖片類(lèi)別名稱(chēng)的文件。

        • ../data/images/:eais-miniconda軟件包中提供的樣例圖片路徑。

        您將從執(zhí)行結(jié)果中獲取圖片的分類(lèi)結(jié)果信息,部分回顯如下。2022-03-03_10-48-38

      2. 執(zhí)行如下命令,進(jìn)行包含cuda調(diào)用信息的resnet50模型推理。

        說(shuō)明

        本示例中數(shù)據(jù)預(yù)處理、后處理是使用cuda kernel實(shí)現(xiàn)的,具體代碼實(shí)現(xiàn)在src目錄下。

        LD_PRELOAD=libtorcheais.so \
        build/src/pytorch_resnet50_cuda \
          -m ../data/models/resnet50.pt \
          -l ../data/densenet_labels.txt \
          ../data/images

        參數(shù)信息說(shuō)明如下:

        • LD_PRELOAD:預(yù)加載已安裝的動(dòng)態(tài)庫(kù)libtorcheais.so。

        • build/src/pytorch_resnet50_cuda:通過(guò)編譯命令生成的可執(zhí)行的示例程序build/src/pytorch_resnet50_cuda。

        • ../data/models/resnet50.pt:eais-miniconda軟件包中提供的resnet50模型文件。

        • ../data/densenet_labels.txt:eais-miniconda軟件包中提供的存放圖片類(lèi)別名稱(chēng)的文件。

        • ../data/images/:eais-miniconda軟件包中提供的樣例圖片路徑。

    3. 測(cè)試推理resnet50模型和bert-base模型的性能。

      1. 執(zhí)行如下命令,測(cè)試使用EAIS推理resnet50模型的性能。

        LD_PRELOAD=libtorcheais.so \
        build/src/pytorch_resnet50_perf \
          -m ../data/models/resnet50.pt \
          -d gpu

        您將從執(zhí)行結(jié)果中獲取到resnet50模型的推理延遲數(shù)據(jù),部分回顯如下。image

      2. 執(zhí)行如下命令,測(cè)試使用EAIS推理bert-base模型的性能。

        LD_PRELOAD=libtorcheais.so \
        build/src/pytorch_bert_perf \
          -m ../data/models/bert-base-uncased.pt \
          -d gpu

        您將從執(zhí)行結(jié)果中獲取到bert-base模型的推理延遲數(shù)據(jù),部分回顯如下。image

(可選)步驟七:停止EAIS實(shí)例

當(dāng)您暫時(shí)不需要EAIS提供的GPU能力時(shí),您可以停止EAIS實(shí)例。

重要

僅使用EAIS控制臺(tái)和調(diào)用CreateEaisEi創(chuàng)建的EAIS實(shí)例支持執(zhí)行本操作。

  1. 登錄EAIS控制臺(tái)

  2. 在EAIS實(shí)例列表中,單擊實(shí)例eais_test所在操作列下的停止。

  3. 停止實(shí)例對(duì)話(huà)框中,單擊確定。

    EAIS實(shí)例列表每15秒自動(dòng)刷新,當(dāng)EAIS實(shí)例狀態(tài)由使用中變?yōu)?b data-tag="uicontrol" id="81c9c52634pmg" class="uicontrol">已綁定時(shí),表示EAIS實(shí)例已停止。

(可選)步驟八:解綁并釋放EAIS實(shí)例

完成推理后,如果您需要將該EAIS實(shí)例綁定至其他ECS實(shí)例,您可以將該EAIS實(shí)例從ECS實(shí)例上解綁后,再重新綁定至其他ECS實(shí)例。如果您不再需要使用該EAIS實(shí)例,則您需要將該EAIS實(shí)例從ECS實(shí)例上解綁后,才能釋放該EAIS實(shí)例。解綁和釋放EAIS實(shí)例的具體操作如下:

  1. 登錄EAIS控制臺(tái)

  2. 將EAIS實(shí)例從ECS實(shí)例上解綁。

    1. 在EAIS實(shí)例列表中,單擊實(shí)例eais_test所在操作列下的解綁。

    2. 解綁ECS實(shí)例對(duì)話(huà)框中,單擊確定。

      EAIS實(shí)例列表每15秒自動(dòng)刷新,當(dāng)EAIS實(shí)例狀態(tài)變從已綁定變?yōu)?b data-tag="uicontrol" id="fec884a0c7eem" class="uicontrol">可綁定時(shí),表示EAIS實(shí)例解綁成功。

  3. 將已解綁的EAIS實(shí)例釋放。

    1. 在EAIS實(shí)例列表中,單擊實(shí)例eais_test所在操作列下的釋放資源

    2. 釋放資源對(duì)話(huà)框中,單擊確定

      EAIS實(shí)例將從EAIS實(shí)例列表中刪除。

相關(guān)文檔

  • 您也可以使用Python腳本體驗(yàn)EAIS推理PyTorch模型的完整使用流程,具體操作,請(qǐng)參見(jiàn)使用EAIS推理PyTorch模型(Python)。

  • 您也可以使用EAIS體驗(yàn)EAIS推理TensorFlow模型的完整使用流程,幫助您快速上手EAIS,具體操作,請(qǐng)參見(jiàn)使用EAIS推理TensorFlow模型

說(shuō)明

更多EAIS實(shí)例使用方法,請(qǐng)參見(jiàn)使用EAIS實(shí)例實(shí)踐教程。