在容器中使用 GPU 一直是使用 Compose 的一个痛点!
在面向 AI 开发的大趋势下,容器化可以将环境无缝迁移,将配置环境的成本无限降低。但是,在容器中配置 CUDA 并运行 TensorFlow 一段时间内确实是个比较麻烦的时候,所以我们这里就介绍和使用它。
Enabling GPU access with Compose
Runtime options with Memory, CPUs, and GPUs
The Compose Specification
The Compose Specification - Deployment support
The Compose Specification - Build support
在 Compose 中使用 GPU 资源
如果我们部署 Docker 服务的的主机上正确安装并设置了其对应配置,且该主机上恰恰也有对应的 GPU 显卡,那么就可以在 Compose 中来定义和设置这些 GPU 显卡了。
需要安装的配置
$ apt-get install nvidia-container-runtime
旧版本 <= 19.03
runtime
$ docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
新版本 >= 19.03
with --gpus
$ docker run -it --rm --gpus all ubuntu nvidia-smi
use device
$ docker run -it --rm --gpus
device=GPU-3a23c669-1f69-c64e-cf85-44e9b07e7a2a
ubuntu nvidia-smi
specific gpu
$ docker run -it --rm --gpus ‘“device=0,2”’ ubuntu nvidia-smi
set nvidia capabilities
$ docker run --gpu