操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    在公眾號(hào)|計(jì)算機(jī)視覺工坊,后臺(tái)回復(fù) 「資料」,即可下載 計(jì)算機(jī)視覺干貨資料,涉及相機(jī)標(biāo)定、三維重建、立體視覺、SLAM、深度學(xué)習(xí)、點(diǎn)云后處理、姿態(tài)估計(jì)、多視圖幾何、多傳感器融合等方向。

    內(nèi)容一覽:TVM 共有三種安裝方法:從源碼安裝、使用 Docker 鏡像安裝和 NNPACK Contrib 安裝。本文重點(diǎn)介紹如何通過源碼安裝 TVM。 關(guān)鍵詞:TVM 快速上手 源碼安裝

    在之前的文章《TVM 中文站正式上線!最全機(jī)器學(xué)習(xí)模型部署「參考書」它來了》中,我們整體介紹了 TVM 的重要作用,以及如何借助 TVM 中文文檔,開啟機(jī)器學(xué)習(xí)編譯器的探索之路。

    接下來,我們將以系列教程的形式,詳細(xì)講解 TVM 從入門到精通的學(xué)習(xí)路徑,希望每位開發(fā)者都能成為優(yōu)秀的機(jī)器學(xué)習(xí)編譯工程師!

    本篇文章中,我們將介紹「打地基」的關(guān)鍵步驟--安裝 TVM。

    TVM 的安裝可通過 3 種途徑實(shí)現(xiàn):

    1. 從源碼安裝

    2. Docker 鏡像

    3. NNPACK Contrib 安裝

    作為安裝 TVM 教程的 (Part 1),本文將詳細(xì)講解從源碼安裝的最佳實(shí)踐,并進(jìn)行最大限度地靈活配置和編譯。

    逐步講解如何從源碼安裝 TVM

    在各種系統(tǒng)中從 0 到 1 構(gòu)建和安裝 TVM 軟件包包括兩個(gè)步驟:

    1. 從 C++ 代碼中構(gòu)建共享庫

    • Linux:libtvm.so
    • macOS :libtvm.dylib
    • Windows:libtvm.dll

    2.為編程語言包進(jìn)行設(shè)置(如 Python 包)

    下載 TVM 源代碼,請(qǐng)?jiān)L問:

    https://tvm.apache.org/download

    開發(fā)者:從 GitHub 獲取源代碼

    從 GitHub 上克隆源碼倉庫,請(qǐng)使用 --recursive 選項(xiàng)來克隆子模塊。

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

    Windows 用戶可以打開 Git shell,并輸入以下命令:

    git submodule init
    git submodule update

    構(gòu)建共享庫

    我們的目標(biāo)是構(gòu)建共享庫:

    • 在 Linux 上

    目標(biāo)庫是 libtvm.solibtvm_runtime.so

    • 在 MacOS 上

    目標(biāo)庫是 libtvm.dyliblibtvm_runtime.dylib

    • 在 Windows 上

    目標(biāo)庫是 libtvm.dlllibtvm_runtime.dll


    也可以只構(gòu)建運(yùn)行時(shí)庫:

    https://tvm.hyper.ai/docs/how_to/deploy/


    TVM 庫的最低構(gòu)建要求是:

    * 支持 C++17 的最新 C++ 編譯器

    • GCC 7.1
    • Clang 5.0
    • Apple Clang 9.3
    • Visual Stuio 2019 (v16.7)

    * CMake 3.10 或更高版本

    * 推薦使用 LLVM 構(gòu)建 TVM 庫以啟用所有功能。

    * 如需使用 CUDA,請(qǐng)確保 CUDA 工具包的版本至少在 8.0 以上。

    注意:CUDA 舊版本升級(jí)后,請(qǐng)刪除舊版本并重新啟動(dòng)。

    * macOS 可安裝 Homebrew 以方便安裝和管理依賴。

    * Python:推薦使用 3.7.X+ 和 3.8.X+ 版本,3.9.X+ 暫時(shí)不支持。


    在 Ubuntu/Debian 等 Linux 操作系統(tǒng)上,要安裝這些依賴環(huán)境,請(qǐng)?jiān)诮K端執(zhí)行:

    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

    用 Homebrew 為搭載 Intel 或 M1 芯片的 macOS 安裝所需的依賴,需遵循 Homebrew 指定的安裝步驟,以保證正確安裝和配置這些依賴:

    brew install gcc git cmake
    brew install llvm
    brew install python@3.8

    使用 cmake 來構(gòu)建庫

    TVM 的配置可以通過編輯 config.cmake 和/或在命令行傳遞 cmake flags 來修改:

    • 如果沒有安裝 cmake,可訪問以下官網(wǎng)下載最新版本 https://cmake.org/download/
    • 創(chuàng)建一個(gè)構(gòu)建目錄,將 cmake/config.cmake 復(fù)制到該目錄
    mkdir build
    cp cmake/config.cmake build
    • 編輯 build/config.cmake 自定義編譯選項(xiàng)

    - 對(duì)于 macOS 某些版本的 Xcode,需要在 LDFLAGS 中添加 -lc++abi,以免出現(xiàn)鏈接錯(cuò)誤

    - 將 set(USE_CUDA OFF) 改為 set(USE_CUDA ON) 以啟用 CUDA 后端。對(duì)其他你想構(gòu)建的后端和庫(OpenCL,RCOM,METAL,VULKAN......)做同樣的處理。

    - 為了便于調(diào)試,請(qǐng)確保使用 set(USE_GRAPH_EXECUTOR ON)set(USE_PROFILER ON) 啟用嵌入式圖形執(zhí)行器 (embedded graph executor) 和調(diào)試功能。

    - 如需用 IR 調(diào)試,可以設(shè)置 set(USE_RELAY_DEBUG ON),同時(shí)設(shè)置環(huán)境變量 TVM_LOG_DEBUG

    export TVM_LOG_DEBUG="ir/transform.cc=1;relay/ir/transform.cc=1"
    • TVM 需要 LLVM 用于 CPU 代碼生成工具 (Codegen)。推薦使用 LLVM 構(gòu)建。

    - 使用 LLVM 構(gòu)建時(shí)需要 LLVM 4.0 或更高版本。注意,默認(rèn)的 apt 中的 LLVM 版本可能低于 4.0。

    - 由于 LLVM 從源碼構(gòu)建需要很長時(shí)間,推薦從 LLVM 下載頁面 下載預(yù)構(gòu)建版本。

    1. 解壓縮到某個(gè)特定位置,修改 build/config.cmake 以添加 set(USE_LLVM /path/to/your/llvm/bin/llvm-config)

    2. 或直接設(shè)置 set(USE_LLVM ON),利用 CMake 搜索一個(gè)可用的 LLVM 版本。

    - 也可以使用 LLVM Ubuntu 每日構(gòu)建

    注意 apt-package 會(huì)在 llvm-config 中附加版本號(hào)。例如,如果你安裝了 LLVM 10 版本,則設(shè)置 set(USE_LLVM llvm-config-10)

    - PyTorch 的用戶建議設(shè)置 set(USE_LLVM "/path/to/llvm-config --link-static")set(HIDE_PRIVATE_SYMBOLS ON) 以避免 TVM 和 PyTorch 使用的不同版本的 LLVM 之間潛在的符號(hào)沖突。

    - 某些支持平臺(tái)上,Ccache 編譯器 Wrapper 可幫助減少 TVM 的構(gòu)建時(shí)間。在 TVM 構(gòu)建中啟用 CCache 的方法包括:

    1. Ccache 的 Masquerade 模式。通常在 Ccache 安裝過程中啟用。要讓 TVM 在 masquerade 中使用 Ccache,只需在配置 TVM 的構(gòu)建系統(tǒng)時(shí)指定適當(dāng)?shù)?C/C++ 編譯器路徑。例如:cmake -DCMAKE_CXX_COMPILER=/usr/lib/ccache/c++ ...

    2. Ccache 作為 CMake 的 C++ 編譯器前綴。在配置 TVM 的構(gòu)建系統(tǒng)時(shí),將 CMake 變量 CMAKE_CXX_COMPILER_LAUNCHER 設(shè)置為一個(gè)合適的值。例如:cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ...

    • 構(gòu)建 TVM 及相關(guān)庫:
    cd build
    cmake ..
    make -j4

    - 可以使用 Ninja 來加速構(gòu)建

    cd build
    cmake .. -G Ninja
    ninja

    在 TVM 的根目錄下也有一個(gè) Makefile,它可以自動(dòng)完成其中的幾個(gè)步驟:創(chuàng)建構(gòu)建目錄,將默認(rèn)的 config.cmake 復(fù)制到該構(gòu)建目錄下,運(yùn)行 cmake,并運(yùn)行 make。

    構(gòu)建目錄可以用環(huán)境變量 TVM_BUILD_PATH 來指定。如果 TVM_BUILD_PATH 沒有設(shè)置,Makefile 就會(huì)假定應(yīng)該使用 TVM 里面的 build 目錄。由 TVM_BUILD_PATH 指定的路徑可以是絕對(duì)路徑,也可以是相對(duì)于 TVM 根目錄的路徑。如果 TVM_BUILD_PATH 被設(shè)置為一個(gè)以空格分隔的路徑列表,則將創(chuàng)建所有列出的路徑。

    如果使用另一個(gè)構(gòu)建目錄,那么應(yīng)該在運(yùn)行時(shí)設(shè)置環(huán)境變量 TVM_LIBRARY_PATH,它指向編譯后的 libtvm.solibtvm_runtime.so 的位置。如果沒有設(shè)置,TVM 將尋找相對(duì)于 TVM Python 模塊的位置。與 TVM_BUILD_PATH 不同,這必須是一個(gè)絕對(duì)路徑。

    # 在 "build" 目錄下構(gòu)建
    make
    
    # 替代位置,"build_debug"
    TVM_BUILD_PATH=build_debug make
    
    # 同時(shí)構(gòu)建 "build_release" 和 "build_debug"
    TVM_BUILD_PATH="build_debug build_release" make
    
    # 使用調(diào)試構(gòu)建
    TVM_LIBRARY_PATH=~/tvm/build_debug python3

    如果一切順利,我們就可以去查看 Python 包的安裝了。

    使用 Conda 環(huán)境進(jìn)行構(gòu)建

    Conda 可以用來獲取運(yùn)行 TVM 所需的必要依賴。如果沒有安裝 Conda,請(qǐng)參照 Conda 安裝指南來安裝 Miniconda 或 Anaconda。在 Conda 環(huán)境中運(yùn)行以下命令:

    # 用 yaml 指定的依賴創(chuàng)建 Conda 環(huán)境
    conda env create --file conda/build-environment.yaml
    # 激活所創(chuàng)建的環(huán)境
    conda activate tvm-build

    上述命令將安裝所有必要的構(gòu)建依賴,如 CMake 和 LLVM。接下來可以運(yùn)行上一節(jié)中的標(biāo)準(zhǔn)構(gòu)建過程。

    在 Conda 環(huán)境之外使用已編譯的二進(jìn)制文件,可將 LLVM 設(shè)置為靜態(tài)鏈接模式 set(USE_LLVM "llvm-config --link-static")。這樣一來,生成的庫就不會(huì)依賴于 Conda 環(huán)境中的動(dòng)態(tài) LLVM 庫。

    以上內(nèi)容展示了如何使用 Conda 提供必要的依賴,從而構(gòu)建 libtvm。如果已經(jīng)使用 Conda 作為軟件包管理器,并且希望直接將 TVM 作為 Conda 軟件包來構(gòu)建和安裝,可以按照以下指導(dǎo)進(jìn)行:

    conda build --output-folder=conda/pkg  conda/recipe
    # 在啟用 CUDA 的情況下運(yùn)行 conda/build_cuda.sh 來構(gòu)建
    conda install tvm -c ./conda/pkg

    在 Windows 上構(gòu)建

    TVM 支持通過 MSVC 使用 CMake 構(gòu)建。需要有一個(gè) Visual Studio 編譯器。VS 的最低版本為 Visual Studio Enterprise 2019

    注意:查看針對(duì) GitHub Actions 的完整測試細(xì)節(jié),請(qǐng)?jiān)L問 Windows 2019 Runner,官方推薦使用 Conda 環(huán)境進(jìn)行構(gòu)建,以獲取必要的依賴及激活的 tvm-build 環(huán)境。

    運(yùn)行以下命令行:

    mkdir build
    cd build
    cmake -A x64 -Thost=x64 ..
    cd ..

    上述命令在構(gòu)建目錄下生成了解決方案文件。接著運(yùn)行:

    cmake --build build --config Release -- /m

    構(gòu)建 ROCm 支持

    目前,ROCm 只在 Linux 上支持,因此所有教程均以 Linux 為基礎(chǔ)編寫的。

    - 設(shè)置 set(USE_ROCM ON),將 ROCM_PATH 設(shè)置為正確的路徑。

    - 需要先從 ROCm 中安裝 HIP runtime。確保安裝系統(tǒng)中已經(jīng)安裝了 ROCm。

    - 安裝 LLVM 的最新穩(wěn)定版本(v6.0.1),以及 LLD,確保 ld.lld 可以通過命令行獲取。

    Python 包的安裝

    TVM 包

    本部分介紹利用 virtualenvconda 等虛擬環(huán)境和軟件包管理器,來管理 Python 軟件包和依賴的方法。

    Python 包位于 tvm/python。安裝方法有兩種:

    • 方法 1

    本方法適用于有可能修改代碼的開發(fā)者。

    設(shè)置環(huán)境變量 PYTHONPATH,告訴 Python 在哪里可以找到這個(gè)庫。例如,假設(shè)我們?cè)?/path/to/tvm 目錄下克隆了 tvm,我們可以在 ~/.bashrc 中添加以下代碼:這使得拉取代碼及重建項(xiàng)目時(shí),無需再次調(diào)用 setup,這些變化就會(huì)立即反映出來。

    export TVM_HOME=/path/to/tvm
    export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
    • 方法 2

    通過 setup.py 安裝 TVM 的 Python 綁定:

    # 為當(dāng)前用戶安裝 TVM 軟件包
    # 注意:如果你通過 homebrew 安裝了 Python,那么在安裝過程中就不需要 --user
    #        它將被自動(dòng)安裝到你的用戶目錄下。
    #        在這種情況下,提供 --user 標(biāo)志可能會(huì)在安裝時(shí)引發(fā)錯(cuò)誤。
    export MACOSX_DEPLOYMENT_TARGET=10.9  # 這是 mac 所需要的,以避免與 libstdc++ 的符號(hào)沖突
    cd python; python setup.py install --user; cd ..

    Python 依賴

    注意,如果你想要安裝到一個(gè)受管理的本地環(huán)境,如 virtualenv,則不需要 --user 標(biāo)志。

    • 必要的依賴:
    pip3 install --user numpy decorator attrs
    • 使用 RPC 跟蹤器
    pip3 install --user tornado
    • 使用 auto-tuning 模塊
    pip3 install --user tornado psutil xgboost cloudpickle

    注意:在搭載 M1 芯片的 Mac 上,安裝 xgboost / scipy 時(shí)可能遇到一些問題。scipy 和 xgboost 需要安裝 openblas 等額外依賴。運(yùn)行以下命令行,安裝 scipy 和 xgboost 以及所需的依賴和配置:

    brew install openblas gfortran
    
    pip install pybind11 cython pythran
    
    export OPENBLAS=/opt/homebrew/opt/openblas/lib/
    
    pip install scipy --no-use-pep517
    
    pip install xgboost

    安裝 Contrib 庫

    NNPACK Contrib 安裝

    啟用 C++ 測試

    可以用 Google Test 來驅(qū)動(dòng) TVM 中的 C++ 測試。安裝 GTest 最簡單的方法是從源代碼安裝:

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

    安裝成功后,可以用 ./tests/scripts/task_cpp_unittest.sh 來構(gòu)建和啟動(dòng) C++ 測試,或者直接用 make cpptest 構(gòu)建。

    以上就是本期教程--安裝 TVM 的 Part 1 部分,在 Part 2 中,我們將繼續(xù)講解另外兩種 TVM 安裝方法:Docker 鏡像安裝以及 NNPACK Contrib 安裝。

    歡迎大家持續(xù)關(guān)注 tvm.hyper.ai,了解 TVM 中文的最新進(jìn)展!


    —— 完 ——

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有