• 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}
    
  • 相关阅读:
    让框架内循环或者指定元素 指定CSS
    织梦dedecms自定义功能函数(1):调用body中的图片(可多张)
    dedecms 上传目录路径
    点击展示菜单11
    ueditor 去掉自动跟随内容的<p><br /></p>
    点击切换JS
    点击切换的JS
    Unity3D NGUI 给button按钮添加单间事件
    企业如何留住核心人才[转载分享]
    java SSH框架详解(面试和学习都是最好的收藏资料)
  • 原文地址:https://www.cnblogs.com/nanmi/p/16049301.html
Copyright © 2020-2023  润新知