https://tvm.apache.org/docs/install/from_source.html#install-from-source
因為 自己編譯 tvm 提供的docker ci_gpu 鏡像不成功。
就使用了 TLCPACK 的預(yù)編譯的鏡像愤估,但好像也不能用速址。
https://tlcpack.ai/
使用 conda 安裝預(yù)編譯好的
conda install tlcpack-nightly-cu102 -c tlcpack
但試著跑 TVM教程的時候芍锚,target "cuda"報錯了,感覺是啥Bug默刚。
還是自己來波編譯把荤西。
為了方便邪锌,
使用 conda 環(huán)境編譯
Building with a Conda Environment?
進入 tvm 源碼目錄
cd /path_to_tvm/tvm
conda env create --file conda/build-environment.yaml
直接來個
bash ./conda/build_cuda.sh
會報錯
沒有指定 ${CUDA_VERSION}
我的環(huán)境 CUDA 為11.4.
export CUDA_VERSION=11.4
然后運行
bash ./conda/build_cuda.sh
報錯慘不忍睹秃流,看起來都是些版本依賴沖突的報錯舶胀。
猜測是 conda 不支持 cuda11.4的編譯環(huán)境,改成
export CUDA_VERSION=10.2
運行下去了
bash ./conda/build_cuda.sh
但 cmake配置階段糖赔,說找不到cudnn
spack install cudnn
spack load cudnn
這樣竟然還找不到 cudnn
沒得辦法放典,
查看下這 cmake 怎么寫
tvm/cmake/utils/FindCUDA.cmake
里面好像默認cudnn和cuda在一個目錄里。
我試了試基茵,讀取
$ENV{CUDNN_DIR}
好像也沒什么用奋构。
直接把 這個文件改了
應(yīng)該改
conda/recipe/build.sh
這個文件。
好歹編譯成功了
然后是安裝
conda install tvm-cu10 -c ./conda/pkg
編譯 個 resnet50 試試
tvmc compile --target "cuda" --output resnet50-v2-7-tvm-cuda.tar resnet50-v2-7.onnx
只有 warning 沒 error
跑模型試試
tvmc run --inputs code/imagenet_cat.npz --output data/predictions_cuda.npz --device cuda resnet50-v2-7-tvm-cuda.tar
沒啥問題拱层。