TVM學習筆記

真真夜夜發表於2024-06-22

安裝

  1. 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 終端。
  1. 編譯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
  1. 安裝minconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  1. 安裝TVM的python包
sudo apt update
sudo apt install -y vim
vim ~/.bashrc

export TVM_HOME=/workspace/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
  1. 安裝必要python包
pip install  numpy decorator attrs typing-extensions psutil scipy tornado tornado psutil 'xgboost>=1.1.0' cloudpickle
  1. 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

  1. fedora關閉SELINUX
sudo sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config