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

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

EAIS實例成功綁定至ECS實例后,您需要遠程登錄該ECS實例,然后使用EAIS實例進行AI推理。本文為您介紹使用C++程序通過EAIS推理PyTorch模型的具體操作。

前提條件

  • 已將EAIS實例綁定至ECS實例上。具體操作,請參見綁定ECS實例

  • 已綁定的ECS實例操作系統為Ubuntu、CentOS或Alibaba Cloud Linux。更換ECS實例操作系統的具體操作,請參見更換操作系統(系統盤)

背景信息

EAIS支持您根據自身業務場景進行選擇不同的編程語言,來使用EAIS進行PyTorch模型推理,目前支持兩種方式分別為:

  • 使用Python腳本推理PyTorch模型。具體操作,請參見使用EAIS推理PyTorch模型(Python)

  • 使用C++程序推理PyTorch模型。EAIS支持包含libtorch和CUDA(包含CUDA API和CUDA kernel)的C++程序調用。

本文介紹使用該方式進行推理的具體操作。如果您使用EAIS推理過程中遇到性能或者功能問題,請聯系EAIS技術支持為您提供定制化的優化方案。

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

說明
  • 本文數據僅為示例,具體數據以您的實際推理結果為準。

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

推理模型

eais.ei-a6.2xlarge

GPU實例(NVIDIA T4)

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

resnet50

2.20 ms

6.24 ms

2.84倍

bert-base

5.38 ms

8.32 ms

1.55倍

使用限制

EAIS支持的軟件版本如下:

重要

如果您的ECS實例操作系統為CentOS 7.9,則默認glibc和libstdc++軟件環境不滿足需求,需要您手動升級glibc和libstdc++版本。查看與升級軟件版本的具體操作,請參見相關操作

軟件名稱

版本

glibc版本

不低于2.23

libstdc++版本

不低于3.4.25

操作步驟

使用EAIS部署推理程序

您可以在您的開發機器上開發并編譯好代碼,然后將編譯好的程序拷貝到ECS實例上運行,即可使用EAIS推理PyTorch模型。

  1. 遠程登錄ECS實例。

    1. 登錄EAIS控制臺

    2. 在頁面左上角選擇實例所在地域。

    3. 在實例列表中,單擊EAIS實例對應的ECS實例ID,進入該ECS實例控制臺。

    4. 遠程登錄ECS實例。

      具體操作,請參見遠程連接ECS實例

  2. 安裝eais-tool軟件包,然后查看EAIS實例的相關信息。

    具體操作,請參見eais-tool

  3. 安裝eais-cuda軟件包。

    具體操作,請參見eais-cuda

  4. 安裝eais-torch軟件包。

    具體操作,請參見eais-torch

  5. 部署應用程序。

    將您在您自己的開發機器上編譯好的C++推理應用程序以及依賴的庫文件、PyTorch模型文件等拷貝至ECS實例上。

  6. 使用EAIS推理PyTorch模型。

    假設您用于推理PyTorch模型C++程序名稱為my_program,且您運行您的C++程序的命令為如下所示:

    export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_PATH
    ./my_program my_model.pt

    如果您需要使用EAIS推理您的PyTorch模型,您可以執行如下任意一種命令運行您的C++程序:

    • 命令一:

      export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_PATH
      LD_PRELOAD=libtorcheais.so ./my_program my_model.pt
    • 命令二:

      export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_PATH
      export LD_PRELOAD=libtorcheais.so
      ./my_program my_model.pt

使用EAIS綁定的ECS實例編譯并運行推理程序

您可以在EAIS實例綁定的ECS實例上直接編寫代碼、編譯代碼并運行推理程序。

  1. 遠程登錄ECS實例。

    1. 登錄EAIS控制臺

    2. 在頁面左上角選擇實例所在地域。

    3. 在實例列表中,單擊EAIS實例對應的ECS實例ID,進入該ECS實例控制臺。

    4. 遠程登錄ECS實例。

      具體操作,請參見遠程連接ECS實例

  2. 安裝CUDA 11.X.X版本軟件包。

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

      說明

      本操作以安裝CUDA 11.7.0版本為例,具體命令以您實際安裝的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. 執行如下命令,設置CUDA相關的環境變量。

      export PATH=/usr/local/cuda/bin:$PATH
      export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  3. 安裝eais-tool軟件包,然后查看EAIS實例的相關信息。

    具體操作,請參見eais-tool

  4. 安裝eais-cuda軟件包。

    具體操作,請參見eais-cuda

  5. 安裝eais-torch軟件包。

    具體操作,請參見eais-torch

  6. 開發模型推理代碼并完成編譯。

    1. 執行如下命令,下載包并解壓含有C++示例代碼的軟件包。

      wget https://aiacc-inference-public.oss-cn-beijing.aliyuncs.com/eais/packages/eais-miniconda.zip
      unzip eais-miniconda.zip
    2. 開發模型推理代碼并進行編譯。

      • 您可以根據實際情況參考軟件包中的示例代碼,開發需要的模型推理代碼。

        C++示例代碼保存在eais-miniconda/eais/cpp/src目錄下。

      • 如果您需要使用EAIS運行推理程序,則您無需修改任何代碼,執行下一步即可。

      說明

      解壓后的示例代碼不依賴于EAIS產品,完全是基于libtorch+CUDA編寫的模型推理代碼,您可以直接使用,也可以在您自己的GPU實例上運行示例代碼。

  7. 使用EAIS推理PyTorch模型。

    假設您用于推理PyTorch模型C++程序名稱為my_program,且您運行您的C++程序的命令為如下所示:

    export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_PATH
    ./my_program my_model.pt

    如果您需要使用EAIS推理您的PyTorch模型,您可以執行如下任意一種命令運行您的C++程序:

    • 命令一:

      export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_PATH
      LD_PRELOAD=libtorcheais.so ./my_program my_model.pt
    • 命令二:

      export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_PATH
      export LD_PRELOAD=libtorcheais.so
      ./my_program my_model.pt

相關操作

查看和升級glibc版本

  1. 遠程登錄ECS實例。

    1. 登錄EAIS控制臺

    2. 在頁面左上角選擇實例所在地域。

    3. 在實例列表中,單擊EAIS實例對應的ECS實例ID,進入該ECS實例控制臺。

    4. 遠程登錄ECS實例。

      具體操作,請參見遠程連接ECS實例

  2. 執行如下命令,查看glibc版本。

    strings /lib64/libc.so.6 | grep GLIBC_

    命令回顯如下,您只需要查看glibc最高的版本是否不低于2.23即可。glibc版本

  3. 如果您的glibc版本低于2.23,則您需要執行如下命令,升級glibc版本。

    mkdir glibc
    pushd glibc
    wget https://ftp.gnu.org/gnu/glibc/glibc-2.23.tar.gz
    tar -xf glibc-2.23.tar.gz
    cd glibc-2.23/
    mkdir build
    pushd build
    ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
    make -j`nproc`
    sudo make DESTDIR=/tmp/stage install
    sudo make install
    popd
    popd
    sudo rm -rf glibc

查看和升級libstdc++版本

  1. 遠程登錄ECS實例。

    1. 登錄EAIS控制臺

    2. 在頁面左上角選擇實例所在地域。

    3. 在實例列表中,單擊EAIS實例對應的ECS實例ID,進入該ECS實例控制臺。

    4. 遠程登錄ECS實例。

      具體操作,請參見遠程連接ECS實例

  2. 執行如下命令,查看libstdc++版本。

    strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX_

    命令回顯如下,您只需要查看libstdc++最高的版本是否不低于3.4.25即可。libstdc++版本

  3. 如果您的libstdc++版本低于3.4.25,則您需要執行如下命令,升級libstdc++版本。

    mkdir libstd
    pushd libstd
    wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.3.0-6_amd64.deb
    ar -x libstdc++6_8.3.0-6_amd64.deb
    tar xf data.tar.xz
    rm /usr/lib64/libstdc++.so.6
    cp usr/lib/x86_64-linux-gnu/* /usr/lib64/
    popd
    sudo rm -rf libstd