为了用 TensorFlow 的一些新特性,需要 CUDA9,但 Debian9 死活都装不上 CUDA9……
那只好搭个 Docker 试试了
写在前面:Docker依赖宿主机的Nvidia驱动……所以原始设想“Docker里面用CUDA9、宿主机用CUDA8”是不太可能了……
安装 Docker CE
来 这里,找到对应的平台(比如 Debian),安装依赖和 Docker
其实可以仔细找一下,直接下载 deb 安装包进行安装的……
或者官方有一个一键脚本: curl -sSL https://get.docker.com | sh
安装 Nvidia 驱动
这个…… 略吧…… 个人不喜欢使用 run-file 进行安装。使用deb包多简单啊,而且每次有更新都会自动编译内核扩展。
安装 Nvidia Docker
来 这里,找到对应的架构,进行安装
然后
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
最后测试一下
sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
不想每次都加 sudo
sudo usermod -aG docker $USER
然后登出再登入。建议是将所有需要用Docker的人都加入到这个组。
备选方案在 这里
国内镜像源
鉴于国内网络现状…… 请参考这篇文章
写在最后
>>> docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"process_linux.go:385: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig --device=all --compute --utility --require=cuda>=9.0 --pid=10062 /var/lib/docker/overlay2/8da50ece4814e8f661d98244f823834c2d30ddeeede2d415bf5ed0498c35955f/merged]\\\\nnvidia-container-cli: requirement error: unsatisfied condition: cuda >= 9.0\\\\n\\\"\"": unknown.
什么鬼!!!Docker里面的CUDA是依赖宿主机的CUDA的!!!
也就是说,想要“宿主CUDA8,Docker CUDA9”是不可能的!!!
好了安心看贝叶斯去了……
发表回复