ROCm环境下安装tvm主要是为了构建libtvm.so、libtvm_runtime.so共享库

  1. 配置cmake环境,建议3.14版本以上
  2. 配置python环境,建议python3版本以上
  3. 配置gcc环境、ROCm的llvm环境
  4. 从下载页面https://tvm.apache.org/docs/install/index.html从下载 tvm 源代码,解压tar xvzf apache-tvm-src-v0.8.0.tar.gz(此处可将源码包修改名字成tvm)
  5. cd tvm
    mkdir build && mkdir install
    cd build
    cp ../cmake/config.cmake ./
    
  6. 修改config.cmake文件:
    a) 指定ROCm路径:set(USE_ROCM /opt/rocm-4.x)
    b) 指定LLVM路径(此处一定要到llvm-config二进制码):set(USE_LLVM /opt/rocm-4.x/llvm/bin/llvm-config)
    c) set(USE_MIOPEN ON)、set(USE_ROCBLAS ON)、set(USE_GRAPH_EXECUTOR ON)、set(USE_PROFILER ON)、set(USE_RELAY_DEBUG ON)
  7. cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/home/tvm/install ..
    我这里在cmake构建时报错:“Cannot find ROCM, USE_ROCM=/opt/rocm-4.x ”(将USE_ROCM=ON改为自动搜索也不成)→ 在源码中搜索关键字发现是tvm/cmake/modules/ROCM.cmake报错,归根结底是“ROCM_FOUND”参数为假 → 搜索“ROCM_FOUND”关键字是由tvm/cmake/utils/FindROCM.cmake文件决定 → 直接对FindROCM.cmake文件进行修改,路径写死:

    红色框为rocm路径,与config.cmake中保持一致;
    绿色框为libamdhip64.so、libMIOpen.so、librocblas.so、libhsa-runtime64.so库的具体位置(一定到具体到库而不是路径,否则cmake配置时会报:WARNING: Target “tvm” requests linking to directory “/opt/rocm-4.x”,之后在编译时会直接出错)。
  8. cmake完成后进行编译与安装:
    make -j6 && make install
  9. 配置环境:
    ROCm中clang的环境、带有numpy等库函数的python3(module load apps/Python/python3.7.9)、tvm环境:
  export PYTHONPATH=/home/tvm/python:$PYTHONPATH

验证:

  1. 启用 C++ 测试
    可以用 Google Test 来驱动 TVM 中的 C++ 测试。安装 GTest 最简单的方法是从源代码安装:
git clone https://github.com/google/googletest
cd googletest
mkdir build && mkdir install
cd build
cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=../install ..
make && make install

安装成功后,可以用 ./tests/scripts/task_cpp_unittest.sh 来构建和启动 C++ 测试,测试最后报以下错:

可以使用TIMEOUTtest属性控制单个测试的CMake超时,此处超时是因为默认值为5,可以添加–timeout选项调用时覆盖默认超时。例如,要将全局超时默认值设置为120秒来运行测试:

./tests/scripts/task_cpp_unittest.sh --timeout 120

测试效果如下图所示:

ROCm环境下安装tvm相关推荐

  1. MySQL rpm包 二进制区别_Linux环境下安装mysql5.6(二进制包不是rpm格式)

    一.准备: 1.CentOS release 6.8 2.mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz 3.Linux下MySQL5.6与MySQL5.7安装方法 ...

  2. Linux环境下安装nginx

    大家好,本篇文章主要讲的是Linux环境下安装nginx教程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览 1.安装所需环境 //安装gcc yum install gcc-c ...

  3. linux安装python虚拟环境_linux环境下安装python虚拟环境及注意事项

    创建python虚拟环境virtualenv.virtualenvwrapper 1,为什么需要搭建虚拟环境 由于当机器上两个项目依赖于相同包的不同版本时,会导致项目运行失败,此时可以安装虚拟环境 . ...

  4. python连接opencv库_python环境下安装opencv库的方法

    注意:安装opencv之前需要先安装numpy,matplotlib等 一.安装方法 方法一.在线安装 1.先安装opencv-python pip install opencv-python --u ...

  5. python爬虫scrapy步骤mac系统_Mac中Python 3环境下安装scrapy的方法教程

    前言 最近抽空想学习一下python的爬虫框架scrapy,在mac下安装的时候遇到了问题,逐一解决了问题,分享一下,话不多说了,来一起看看详细的介绍吧. 步骤如下: # 在Mac上Python3环境 ...

  6. docker 启动命令_Jenkins视频课程在Docker环境下安装Jenkins,命令行如何启动Jenkins...

    Tomcat是Apache开发的一款servlet容器,可以提供java服务,作为服务器来使用.Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建.部署.自动化, 满 ...

  7. 在Mac OS环境下安装MySQL服务

    在Mac OS环境下安装MySQL服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我之前介绍过window环境下安装mysql服务,以及在Linux环境下安装mysql服务,今 ...

  8. linux 查看mysql安装目录_Linux环境下安装MySQL数据库示例教程

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 Linux环境对大多数SQL初学者还是比较陌生,今天给大家演示一下如何在Linux环境 ...

  9. 在没有网的windows环境下安装Python模块

    在安装python环境以及python的一些模块时,可能需要在没有网的windows环境下安装Python模块. python模块下载地址,几乎所有的模块都有:https://www.lfd.uci. ...

最新文章

  1. html向js传递id
  2. ubuntu修改用户名、计算机名、主目录名
  3. python 视频转换为图像,图像转换为视频
  4. NOIP 2005 等价表达式 (TYVJ P1060)
  5. 7天连锁酒店郑南雁:顺势创业者无为管理人
  6. 安徽大学高等数学习题册(上)(第一章)
  7. 如何下载太原市卫星地图高清版大图
  8. 车道线定位及拟合:直方图确定车道线位置
  9. 三四线城市的房地产泡沫率先崩盘?
  10. 查看电脑连接的wifi密码
  11. 数学传奇3——神话的破灭
  12. xp系统桌面图标出现阴影
  13. 实用干货!正交试验设计及极差分析步骤总结!
  14. SpringBoot整合模板FreeMarker篇
  15. MOSFET管基本原理与应用
  16. win10计算机属性管理打不开,win10系统此电脑属性打不开怎么办
  17. windows11安装方法
  18. 电脑快捷键:Ctrl+26英文字母组合,新人必会!
  19. 分布式进阶(十九) 基于集群的动态反馈负载均衡策略
  20. HomeKit、米家、智汀智能家居应该如何确保用户的安全和隐私

热门文章

  1. Quartus ii和Modelsim SE联合仿真的问题总结
  2. 稀疏快速傅里叶变换(SFT)算法
  3. 达索系统SIMULIA助力油气行业
  4. 数据结构:学生信息管理系统(顺序存储结构)
  5. 录音为wav格式转mp3格式
  6. vue-router 中 meta的用法
  7. 3348 数据结构实验之数组二:稀疏矩阵
  8. 咪咕音频格式探究(.migu)
  9. MRI脑影像分析——多种工具实现Nifti(*.nii)文件读取、处理与写入——把小舞写进脑海里、6mm半高全宽高斯核平滑脑影像、NIFTI文件合并、算fMRI平均图像
  10. update (SELECT /*+BYPASS_UJVC*/