• TVM源码编译


    TVM源码编译

    安装依赖

    sudo apt-get install -y libtinfo-dev zlib1g-dev build-essential libedit-dev libxml2-dev
    
    安装llvm

    link: https://www.cnblogs.com/nanmi/p/16044444.html

    安装googltest

    link: https://www.cnblogs.com/nanmi/p/16049219.html

    安装PAPI

    link: https://www.cnblogs.com/nanmi/p/16049230.html

    下载源码

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

    编译

    mkdir build
    cp cmake/config.cmake build
    
    修改config.cmake
    1. 为了帮助调试,请确保使用和启用嵌入式图形执行器和调试功能set(USE_GRAPH_EXECUTOR ON)set(USE_PROFILER ON)

    2. 使用 IR 进行调试,设置set(USE_RELAY_DEBUG ON),并设置环境变量TVM_LOG_DEBUG

    export TVM_LOG_DEBUG="ir/transform.cc=1;relay/ir/transform.cc=1"
    
    1. 设置set(USE_LLVM /path/to/your/llvm/bin/llvm-config)set(USE_CUDA ON)

    2. 如果是 PyTorch 用户,建议设置(USE_LLVM "/path/to/llvm-config --link-static")set(HIDE_PRIVATE_SYMBOLS ON)避免 TVM 和 PyTorch 使用的不同版本 LLVM 之间潜在的符号冲突。

    3. 性能应用程序编程接口 (PAPI) 是一个库,可在各种平台上提供性能计数器。性能计数器在给定的执行运行期间提供有关处理器行为的准确低级信息,设置set(USE_PAPI path/to/papi.pc)

    4. 设置支持 TensorRT ,TVM 中的 TensorRT 集成有两个单独的构建标志。这些标志还启用交叉编译: USE_TENSORRT_CODEGEN=ON 还将您在主机上构建具有 TensorRT 支持的模块,而 USE_TENSORRT_RUNTIME=ON 将启用边缘设备上的 TVM 运行时以执行 TensorRT 模块。如果要编译并执行具有相同 TVM 构建的模型,则应启用这两者。

    • USE_TENSORRT_CODEGEN=ON/OFF - 该标志将允许编译不需要任何 TensorRT 库的 TensorRT 模块。
    • USE_TENSORRT_RUNTIME=ON/OFF/path-to-TensorRT - 此标志将启用 TensorRT 运行时模块。这将针对已安装的 TensorRT 库构建 TVM
    编译
    cd build
    cmake .. -G Ninja --DCMAKE_INSTALL_PREFIX=<your tvm want to install dir>
    ninja
    ninja install
    

    安装 TVM 的 Python 包

    安装依赖

    pip install decorator attrs tornado psutil xgboost cloudpickle
    

    安装

    此安装方法不用“真正”安装,只需要设置好环境变量就可以。

    cd your tvm source code dir>/python
    python setup.py develop --user
    

    弃用代码:

    export TVM_HOME=<your tvm source code dir>
    export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
    
  • 相关阅读:
    Android Studio 开发
    Jsp编写的页面如何适应手机浏览器页面
    电影
    Oracle 拆分列为多行 Splitting string into multiple rows in Oracle
    sql server 2008 自动备份
    WINGIDE 激活失败
    python安装 错误 “User installations are disabled via policy on the machine”
    ble编程-外设发送数据到中心
    iOS开发-NSString去掉所有换行及空格
    ios9 字符串与UTF-8 互相转换
  • 原文地址:https://www.cnblogs.com/nanmi/p/16049301.html
Copyright © 2020-2023  润新知