關(guān)于搭建TVM編譯器的官方文檔:Install from Source — tvm 0.14.dev0 documentation (apache.org)
1. 安裝Anaconda
首先我們需要安裝Anaconda,因?yàn)槠渲邪覀兯枰母黝愐蕾嚕?/p>
進(jìn)入Anaconda官網(wǎng)https://www.anaconda.com/products/distribution,下載Windows版本,下載完成后運(yùn)行.exe,可以更改安裝路徑(如果安裝路徑不是C盤可能需要一點(diǎn)點(diǎn)額外的步驟,這個(gè)后面會(huì)提到),基本一路Next就可以了。需要注意的是,一定要把將Anaconda加入PATH勾選上,這樣就可以節(jié)省配置Anaconda環(huán)境變量的步驟。
最終安裝好Anaconda,可以在電腦應(yīng)用菜單這里找到對(duì)應(yīng)的cmd終端入口和powershell入口:
2. 編譯LLVM
接下來是編譯LLVM,簡(jiǎn)便行事我們可以使用已經(jīng)手動(dòng)編譯好的庫,進(jìn)入https://winlibs.com/找到包含LLVM的包:
下載解壓到任意目錄里就行,最后把其中bin目錄路徑寫入環(huán)境變量的PATH中,進(jìn)入Anaconda的cmd終端中輸入如下命令:
?llvm-config --libdir
不報(bào)錯(cuò)并顯示對(duì)應(yīng)的庫目錄路徑意味著前面的步驟都完成了,下面就開始搭建TVM。
3. 獲取TVM源碼
從github上獲取最新版的TVM克隆到本地文件夾tvm中,記住務(wù)必要克隆而非直接下載ZIP解壓否則后面編譯會(huì)報(bào)錯(cuò):
?$ git clone --recursive http://github.com/apache/tvm tvm
新建一個(gè)build文件夾,從文件夾cmake中復(fù)制一份config.cmake拷貝到build文件夾中:
?$ cd tvm
?$ mkdir build
?$ cp cmake/config.cmake build
當(dāng)然源碼獲取并沒有這么簡(jiǎn)單,這也是我踩的一個(gè)大坑了,如果現(xiàn)在查看build里的一些文件夾,你會(huì)發(fā)現(xiàn)很多是空的,這是因?yàn)樗鼈兪亲觽}庫所以并沒有跟隨著一起將源碼克隆到本地,反而只是將一個(gè)jit鏈接克隆了下來,我們接下來需要補(bǔ)充這一部分代碼,進(jìn)入github倉庫的build文件夾下,將有藍(lán)色鏈接(含有子倉庫)的源碼下載到本地,替換原來殘缺的部分:
4. 構(gòu)建虛擬環(huán)境
在Anaconda終端中切換到tvm的文件夾目錄下,注意:如果你將Anaconda放在了非系統(tǒng)盤,那么你需要使用管理員身份進(jìn)入終端。
使用如下命令構(gòu)建并進(jìn)入tvm-build的虛擬環(huán)境:
?# Create a conda environment with the dependencies specified by the yaml
?conda env create --file conda/build-environment.yaml
?# Activate the created environment
?conda activate tvm-build
這個(gè)過程會(huì)比較長,大概10分鐘左右。
5. 使用cmake生成.dll庫
打開build目錄下的config.cmake文件,將USE_LLVM設(shè)為ON,修改完后保存:
進(jìn)入build目錄調(diào)用cmake進(jìn)行生成:
?cd build
?cmake -A x64 -Thost=x64 ..
?cd ..
?cmake --build build --config Release -- /m
這里可能會(huì)有報(bào)錯(cuò)"No CMAKE_C_COMPILER could be found",意思就是沒有編譯器,我們可以去下載Visual Studio解決這個(gè)問題,如果你已經(jīng)安裝了Visual Studio但仍然存在這個(gè)問題,那你需要去Visual Studio Installer里下載安裝一個(gè)SDK,這里我推薦最新版的windows 10 SDK。
這個(gè)步驟也要等待蠻久的,大概半小時(shí)(而且非常占用CPU,電腦風(fēng)扇起飛),可以看到中途會(huì)有很多Warnings,不必理會(huì)(不是Error就知足吧Orz):
最終可以看到在tvm\build\Release目錄下生成了tvm.dll的鏈接庫:
6. python依賴庫的安裝
使用如下命令直接安裝即可:
?pip3 install typing_extensions numpy decorator attrs
?pip3 install tornado psutil xgboost cloudpickle
?pip3 install ml_dtypes
7. 將TVM安裝到python環(huán)境
這一步看其他大佬的博客都是直接配置PYTHONPATH環(huán)境變量,但實(shí)際上我們?cè)贏naconda終端直接運(yùn)行如下腳本即可完成:
?cd python
?python setup.py install
運(yùn)行完畢,可以打開python的IDLE輸入import tvm來簡(jiǎn)單測(cè)試一下我們搭建的TVM是否可用:
如上所示,沒有報(bào)錯(cuò)基本就成功了。
當(dāng)然如果不習(xí)慣用IDLE,也可以使用VSCode、PyCharm等代碼編輯器,例如在VSCode的設(shè)置的命令面板中輸入:
python:select interpreter
更換python解釋器為我們剛剛添加tvm包的解釋器:
如下所示,沒有報(bào)錯(cuò):
文章來源:http://www.zghlxwxcb.cn/news/detail-613171.html
至此,我們的TVM編譯器搭建就結(jié)束了,篇幅不長但是卻濃縮了我踩坑的漫長經(jīng)歷QAQ文章來源地址http://www.zghlxwxcb.cn/news/detail-613171.html
到了這里,關(guān)于【開發(fā)環(huán)境】Windows下搭建TVM編譯器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!