1、使用docker命令行启动GPU 加速
在 docker run 命令中使用 --gpus all 选项是为了在容器内启用 GPU 加速。这通常用于运行需要 GPU 资源的深度学习或图形处理任务。
docker run --gpus all -it --name my_gpu_container nvidia/cuda:11.0-base /bin/bash
2、docker-compose
Docker Compose v1.27.0+
切换为使用 Compose 规范架构,该架构是 2.x 和 3.x 版本中所有属性的组合
services:
test:
image: nvidia/cuda:10.2-base
command: nvidia-smi
runtime: nvidia
runtime: nvidia 表示gpu加速
Docker Compose v1.28.0+
允许使用 Compose 规范中定义的 device 结构来定义 GPU 预留。
- capabilities - 值指定为字符串列表(例如
capabilities: [gpu])。您必须在 Compose 文件中设置此字段。否则,它会返回服务部署错误。 - count - 指定为 int 的值或表示应保留的 GPU 设备数量的值
all(假设主机拥有该数量的 GPU)。 - device_ids - 指定为表示主机 GPU 设备 ID 的字符串列表的值。您可以在主机上
nvidia-smi的输出中找到设备 ID。 - driver - 指定为字符串的值(例如
driver: 'nvidia') - options - 表示驱动程序特定选项的键值对。
# 用于运行可访问 1 个 GPU 设备的服务的 Compose 文件示例:
services:
test:
image: nvidia/cuda:10.2-base
command: nvidia-smi
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
# 如果未设置 `count` 或 `device_ids` ,则默认情况下将使用主机上所有可用的 GPU。
services:
test:
image: tensorflow/tensorflow:latest-gpu
command: python -c "import tensorflow as tf;tf.test.gpu_device_name()"
deploy:
resources:
reservations:
devices:
# 要仅启用对 GPU-0 和 GPU-3 设备的访问:
services:
test:
image: tensorflow/tensorflow:latest-gpu
command: python -c "import tensorflow as tf;tf.test.gpu_device_name()"
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0', '3']
capabilities: [gpu]