日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TVM:源码编译安装

發布時間:2025/3/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TVM:源码编译安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TVM:Linux源碼編譯安裝

筆者環境:

OS:Ubuntu 18.04

CMake:3.10.2

gcc:7.5.0

cuda:11.1

編譯安裝過程總覽

本文將簡介 tvm 的編譯安裝過程,包含兩個步驟:

  • 通過C++代碼構建共享庫
  • 設置相關的語言包(如Python包)
  • 源碼獲取

    官網教程提供了兩種源碼獲取方式:

  • 通過下載頁面直接下載

  • 通過 github 倉庫來下載

    git clone --recursive https://github.com/apache/tvm tvm

    注意一定要有 --recursive 參數,保證子模塊正常下載。

  • 構建共享庫

    構建 tvm 共享庫,在我們 Linux 系統上即 libtvm.so 和 libtvmruntime.so 。也可以只構建運行時庫 libtvmruntime.so ,在要被部署的遠程邊緣設備(如樹莓派、移動手機等)上,我們通常只需要安裝運行時庫。這也會在后面介紹遠程邊緣部署時提到??傊F在,在我們的主機上,我們先完全安裝 tvm。

    準備工作

    官方給出的安裝 tvm 的最小要求如下:

    • 一個支持C++ 14 的編譯器 (如g+±5 or higher)
    • CMake 3.5 or higher
    • 強烈建議安裝 llvm
    • Python 3.7 / 3.8 (Python 3.9 暫不支持)
    • 如果要使用CUDA,CUDA toolkit version >= 8.0

    安裝最小依賴

    安裝上述最小要求的命令(ubuntu / debian):

    sudo apt-get update sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential cmake libedit-dev libxml2-dev

    檢查一下CMake,如果沒有的話,到該下載頁面下載。

    llvm

    llvm 雖然不是強制要求,但我們通常都是需要的,強烈建議大家安裝。過程也很簡單,從這個下載頁面選擇適合我們設備和系統的 pre-built 版本(壓縮文件 .xz)下載并解壓即可:

    wget http://releases.llvm.org/x.x.x/clang+llvm-x.x.x-x86_64-linux-gnu-ubuntu-xx.xx.tar.xztar -xf clang+llvm-x.x.x-x86_64-linux-gnu-ubuntu-xx.xx.tar.xz

    解壓完成后進入解壓目錄,找到 bin 目錄下的 llvm-config 文件,記下其路徑,一會兒要用。

    開始編譯構建

    準備工作完成之后我們開始編譯構建。

    首先進入到我們剛才下載的 tvm 源碼目錄下,新建 build 目錄,將 cmake 目錄下的 config.cmake 拷貝的 build 目錄下:

    cd tvm mkdir build cp cmake/config.cmake build/

    然后按需修改 config.cmake 文件:

    • 如果要時候用某些后端和庫(如CUDA, OpenCL, RCOM, METAL, VULKAN,等)。這里以CUDA為例,將 set(USE_CUDA OFF) 修改為 set(USE_CUDA ON),其他庫同理。

    • 為了幫助調試,需要啟用嵌入式圖形執行器和調試功能 set(USE_GRAPH_DEBUG ON) 、 set(USE_PROFILER ON)

    • 如果要調試 IR,要啟用 set(USE_RELAY_DEBUG ON) ,并設置環境變量:

      export TVM_LOG_DEBUG="ir/transform.cc=1;relay/ir/transform.cc=1"
    • 使用 LLVM,這里要使用到我們剛才記下的 LLVM 路徑了,設置 set(USE_LLVM /path/to/your/llvm/bin/llvm-config)

    config.cmake 修改完成后,我們開始構建 tvm 及相關庫:

    cd build cmake .. make -j4

    Python 包

    Python 會根據環境變量 PYTHONPATH 尋找庫文件,在 ~/.bashrc中設置這個環境變量,其中 /path/to/tvm 是上文 tvm 目錄的絕對路徑。

    export TVM_HOME=/path/to/tvm export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}

    python 依賴安裝

    • 必需依賴

      pip3 install --user numpy decorator attrs
    • 如果要使用 RPC 追蹤器

      pip3 install --user tornado
    • 如果要使用 auto-tuning 模塊

      pip3 install --user tornado psutil xgboost cloudpickle

    測試

    這里我們用 Google Test 來進行測試,首先先安裝 GTest(不要和 tvm 裝在一起,建議另找一個目錄):

    git clone https://github.com/google/googletest cd googletest mkdir build cd build cmake -DBUILD_SHARED_LIBS=ON .. make sudo make install

    安裝完成后,在 tvm 安裝目錄下執行測試:

    ./tests/scripts/task_cpp_unittest.sh

    順利完成無報錯的話,即告 tvm 安裝完成。

    Ref:

    https://tvm.apache.org/docs/install/from_source.html#developers-get-source-from-github

    總結

    以上是生活随笔為你收集整理的TVM:源码编译安装的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。