TVM安裝(一):Ubuntu下配置環(huán)境

官方安裝方法: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弄诲,請(qǐng)先安裝vim,再對(duì)配置文件進(jìn)行修改

sudo apt install vim 

5.1孝治、新建一個(gè)build文件夾用于存放make后的文件

mkdir build
cp cmake/config.cmake build

5.2、修改配置文件

主要修改如下幾項(xiàng):(vim使用/關(guān)鍵字可以高亮關(guān)鍵字)

  1. 如果使用CUDA進(jìn)行編譯: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. 如果要對(duì)IR進(jìn)行debug:set(USE_RELAY_DEBUG ON)并在環(huán)境變量中加入TVM_LOG_DEBUG的路徑
  5. 如果要對(duì)編譯過程進(jìn)行debug:set(USE_GRAPH_EXECUTOR ON)(USE_PROFILER ON)

其余功能可按照配置文件中的詳細(xì)說明進(jìn)行修改

每一次修改配置文件之后都需要把build文件夾中的除編譯文件外的文件清空胁澳,重新編譯炕檩!

5.3. 搭建環(huán)境

傻瓜式搭建環(huán)境:也可以自行通過apt安裝llvm等環(huán)境

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

注意留攒!因?yàn)樯倒鲜桨惭b會(huì)安裝最新版本的python,可能會(huì)導(dǎo)致一系列不可控因素爷肝!因此請(qǐng)?jiān)谔摂M環(huán)境建立之后使用conda install python=3.x對(duì)python版本進(jìn)行降級(jí)猾浦,降級(jí)完成后再編譯!

5.4灯抛、編譯

cd build
cmake ..
make -j16  (數(shù)字代表使用多少個(gè)進(jìn)程進(jìn)行編譯金赦,可根據(jù)自己的cpu參數(shù)酌情選擇)

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

安裝時(shí)請(qǐng)使用default源,清華源或者其他源可能會(huì)報(bào)錯(cuò)
查看conda源:conda config --show-source
增加conda源:conda config --add channels http://.....
刪除conda源:conda config --remove channels http://.....

7. 把TVM和CUDA加入到環(huán)境變量~/.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 如果出現(xiàn)GLIBCXX_3.4.29' not found

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

說明tvm環(huán)境內(nèi)的GCC版本過高对嚼,但動(dòng)態(tài)庫(kù)版本不夠夹抗,只需要把新版本的libstdc++.so.6文件覆蓋此文件即可

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

解決方法:
通常可以使用sudo find / -name "libstdc++.so.6"來全盤搜索本機(jī)內(nèi)的所有libstdc++.so.6文件纵竖,并逐一檢查其版本是否包含GLIBCXX_3.4.29漠烧,通常anaconda已經(jīng)包含,我的最新版文件在/usr/lib/x86_64-linux-gnu/libstdc++.so.6內(nèi)靡砌,anaconda通常已經(jīng)包含gcc11.2.0及gcc9.1.0的動(dòng)態(tài)運(yùn)行庫(kù)已脓。

如果不能解決只能從網(wǎng)上尋找新版本的libstdc++.so.6文件或更新gcc后再重新覆蓋。

8.2 編譯時(shí)出現(xiàn)GTest問題

解決方法

git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cd build
cmake ..
make
sudo make install
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末通殃,一起剝皮案震驚了整個(gè)濱河市度液,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖堕担,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件已慢,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡照宝,警方通過查閱死者的電腦和手機(jī)蛇受,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門句葵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厕鹃,“玉大人,你說我怎么就攤上這事乍丈〖敛辏” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵轻专,是天一觀的道長(zhǎng)忆矛。 經(jīng)常有香客問我,道長(zhǎng)请垛,這世上最難降的妖魔是什么催训? 我笑而不...
    開封第一講書人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮宗收,結(jié)果婚禮上漫拭,老公的妹妹穿的比我還像新娘。我一直安慰自己混稽,他們只是感情好采驻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匈勋,像睡著了一般礼旅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洽洁,一...
    開封第一講書人閱讀 49,798評(píng)論 1 290
  • 那天痘系,我揣著相機(jī)與錄音,去河邊找鬼饿自。 笑死汰翠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的璃俗。 我是一名探鬼主播奴璃,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼城豁!你這毒婦竟也來了苟穆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雳旅,沒想到半個(gè)月后跟磨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡攒盈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年抵拘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片型豁。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡僵蛛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出迎变,到底是詐尸還是另有隱情充尉,我是刑警寧澤,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布衣形,位于F島的核電站驼侠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏谆吴。R本人自食惡果不足惜倒源,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望句狼。 院中可真熱鬧笋熬,春花似錦、人聲如沸鲜锚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)芜繁。三九已至旺隙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骏令,已是汗流浹背蔬捷。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留榔袋,地道東北人周拐。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像凰兑,于是被迫代替她去往敵國(guó)和親妥粟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容