TVM安装(一):Ubuntu下配置环境

官方安装方法:https://tvm.apache.org/docs/install/from_source.html

1. 安装Anaconda

https://www.anaconda.com/products/individual

2. 安装Git

sudo apt update
sudo apt install git

3. 从GitHub上下载tvm源代码

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

4. 安装必要的依赖

sudo apt install -y gcc libtinfo-dev zlib1g-dev build-essential cmake libedit-dev libxml2-dev

5. 修改TVM编译配置文件

cd tvm

如果没有vim,请先安装vim,再对配置文件进行修改

sudo apt install vim 

5.1、新建一个build文件夹用于存放make后的文件

mkdir build
cp cmake/config.cmake build

5.2、修改配置文件

主要修改如下几项:(vim使用/关键字可以高亮关键字)

  1. 如果使用CUDA进行编译:set(USE_CUDA ON)或者set(USE_CUDA /path/to/your/cuda/)
  2. 如果使用CUDNN:set(USE_CUDNN ON)或者set(USE_CUDA /path/to/your/cudnn.so/)
  3. 如果使用CUBLAS:set(USE_CUDNN ON)或者set(USE_CUDA /path/to/your/cublas.so/)
  4. 如果要对IR进行debug:set(USE_RELAY_DEBUG ON)并在环境变量中加入TVM_LOG_DEBUG的路径
  5. 如果要对编译过程进行debug:set(USE_GRAPH_EXECUTOR ON)(USE_PROFILER ON)

其余功能可按照配置文件中的详细说明进行修改

每一次修改配置文件之后都需要把build文件夹中的除编译文件外的文件清空,重新编译!

5.3. 搭建环境

傻瓜式搭建环境:也可以自行通过apt安装llvm等环境

conda env create --file conda/build-environment.yaml
conda activate tvm-build

注意!因为傻瓜式安装会安装最新版本的python,可能会导致一系列不可控因素!因此请在虚拟环境建立之后使用conda install python=3.x对python版本进行降级,降级完成后再编译!

5.4、编译

cd build
cmake ..
make -j16  (数字代表使用多少个进程进行编译,可根据自己的cpu参数酌情选择)

6. 安装必要的包

conda build --output-folder=conda/pkg  conda/recipe
conda install tvm -c ./conda/pkg
pip install numpy decorator attrs tornado psutil xgboost cloudpickle tensorboard

安装时请使用default源,清华源或者其他源可能会报错
查看conda源:conda config --show-source
增加conda源:conda config --add channels http://.....
删除conda源:conda config --remove channels http://.....

7. 把TVM和CUDA加入到环境变量~/.bashrc文件中

export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
export PATH=/path/to/cuda:$PATH
export LD_LIBRARY_PATH=/path/to/cuda/lib64:$LD_LIBRARY_PATH

8. 坑

8.1 如果出现GLIBCXX_3.4.29' not found

tvm-build/lib/./libstdc++.so.6: version `GLIBCXX_3.4.29' not found

说明tvm环境内的GCC版本过高,但动态库版本不够,只需要把新版本的libstdc++.so.6文件覆盖此文件即可

检查libstdc++.so.6文件版本:
strings libstdc++.so.6 | grep GLIBC

解决方法:
通常可以使用sudo find / -name "libstdc++.so.6"来全盘搜索本机内的所有libstdc++.so.6文件,并逐一检查其版本是否包含GLIBCXX_3.4.29,通常anaconda已经包含,我的最新版文件在/usr/lib/x86_64-linux-gnu/libstdc++.so.6内,anaconda通常已经包含gcc11.2.0及gcc9.1.0的动态运行库。

如果不能解决只能从网上寻找新版本的libstdc++.so.6文件或更新gcc后再重新覆盖。

8.2 编译时出现GTest问题

解决方法

git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cd build
cmake ..
make
sudo make install
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容