安裝
- podman拉取映象
podman pull tlcpack/ci-gpu:20240105-165030-51bdaec6
podman run -it --network=host --gpus all --shm-size=10g -v /home/moguw/Github/tvm-learn:/workspace --name tvm-build tlcpack/ci-gpu:20240105-165030-51bdaec6 /bin/bash
--shm-size=10g
指的是共享記憶體的大小為10g/home/xxxx:/workspace
指的是將/home/xxxx
目錄掛載到映象中的/workspace
目錄下/bin/bash
: 這是在容器內要執行的命令。在這種情況下,它會啟動一個 Bash 終端。
- 編譯TVM
下載下來的映象中是沒有TVM的,只不過是給我們配置好了所有的環境,因此我們還要按照官網的方式編譯TVM
git clone --recursive https://github.com/apache/tvm tvm
在tvm資料夾下新建build資料夾,然後將cmake/config.cmake移動到build資料夾下
cd tvm
mkdir build
cp cmake/config.cmake build
開始編譯
cd build
cmake .. -G Ninja
ninja
- 安裝minconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
- 安裝TVM的python包
sudo apt update
sudo apt install -y vim
vim ~/.bashrc
export TVM_HOME=/workspace/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
- 安裝必要python包
pip install numpy decorator attrs typing-extensions psutil scipy tornado tornado psutil 'xgboost>=1.1.0' cloudpickle
- ERROR處理
在import tvm中會遇到一個error:libstdc++.so.6: version ‘GLIBCXX_3.4.30’ not found 。 這裡是因為虛擬環境沒有使用系統的libstdc++.so.6這個庫,因為只需要將將虛擬環境中的軟連結指向系統的這個庫即可。
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /root/miniconda3/envs/tvm/lib/libstdc++.so.6
podman run -it --network=host --gpus all --shm-size=10g -v /home/moguw/Github/tvm-learn:/workspace:Z tlcpack/ci-gpu:20240105-165030-51bdaec6 /bin/bash
Error: setting up CDI devices: unresolvable CDI devices nvidia.com/gpu=all
https://gist.github.com/jabbany/66e633c3fd30f81159feb46e4da25c55
- fedora關閉SELINUX
sudo sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config