以docker方式安装tvm的方法
虽然官方也提供了源码编译、二进制和docker但是这三种方式,但是网上大多数资料都是基于源码安装的。之所以用docker安装好处有两个,
- 一次安装到处运行,以后有同事需要用的直接导入镜像,避免了繁琐的安装过程,能够把更多的精力放在开发上。
- 不会污染环境,即使docker里折腾错了,也不会影响宿主机里的其他环境。
1 安装docker engine
参考:https://docs.docker.com/install/linux/docker-ce/ubuntu/
#### 如果装有旧版, 先卸载
sudo apt-get remove docker docker-engine docker.io containerd runc
#### 设置源
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
#### 安装docker-ce
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
#### 测试是否安装成功
sudo docker run hello-world安装 NVIDIA Containner Tookit
以前叫做nvidia-docker,现在改名叫做nvidia containner tookit。这个工具的意义在于可以让docker直接使用宿主机的驱动已经显卡资源。
以前有些特有的命令需要用 nvidia-docker,现在都统一到docker这个命令了

安装过程
#### 添加软件源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
#### 安装NVIDIA Container Toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
#### 重启docker
sudo systemctl restart docker
#### 测试NVIDIA Container Toolkit是否安装成功,如果输出显卡驱动信息则安装成功
docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
3 下载dockerimage
TVM官方建议docker 镜像位置在https://hub.docker.com/r/tlcpack/
在这里我们选择ci-gpu
在tag里我们选择最新的这个

其实这个镜像就是安装TVM官方git中的这个dockerfile( https://github.com/apache/tvm/blob/main/docker/Dockerfile.ci_gpu )构建的,可以看到这里安装了所有TVM的必要库
我们利用命令
docker pull tlcpack/ci-gpu:20221025-182121-e41d0ed6e把这个镜像下载下来,下载时间比较长,下载下来有26个G

4 启动容器
docker run -it --gpus all --shm-size=10g -v /home/xxxx:/workspace tlcpack/ci-gpu:20221025-182121-e41d0ed6e /bin/bash
5 在容器中安装TVM
这个过程跟源码安装的过程是一样的。只不过不需要安装那些库了,只需下载源码编译了
5.1 安装vim
原始镜像里没有Vim
sudo apt install vim 5.2 下载源码
$ git clone --recursive https://github.com/apache/tvm tvm
注意第三方文件目录里包含了其它工程,但是不一定能下载下来可以手动的git下来

5.3 make
现在tvm目录里建一个build目录,把cmake目录下的config文件拷到build目录下
mkdir build
cp cmake/config.cmake buildmake
cd build
cmake ..
make -j45.4 安装 python package
安装官方的方法

export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}6 提交镜像更改
查看容器id

执行命令
docker commit c55e823fa57f tlcpack/ci-gpu:add_tvm
7 保存为文件
docker save -o ./tvmdocker.tar 949a8683b255将文件拷贝到其他的服务器上
8 导入镜像

docker load < tvmdocker.tar
docker tag 949a8683b255 tlcpack/ci-gpu:add_tvm
10 在新的机器上启动容器
docker run -it --gpus all --name="tvm" -v /home/xxxxx:/workspace -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro tlcpack/ci-gpu:add_tvm /bin/bash

浙公网安备 33010602011771号