NVIDIA 容器相关开发环境疑问

2023-07-17 15:31:13 +08:00
 paidaxtis

三者有区别吗?

具体来说:我平时安装的是第一个 NVIDIA Container Toolkit for Docker 。目的是在容器内能够使用宿主机的 GPU 。安装完成后可以:

  1. 使用--gpus all 等参数启动容器
  2. 在容器内 nvidia-smi 查看显卡,即可以调用显卡

现在的问题就是上面三者的安装过程都不相同,被搞晕了不知道有什么区别

1226 次点击
所在节点    机器学习
9 条回复
isno
2023-07-17 15:57:22 +08:00
我从名字里面猜,不一定对,你参考一下。
1. NVIDIA Container Toolkit 应该是为 Docker 开发的 GPU 驱动,Docker 配合这个才能使用 GPU
2. NVIDIA Docker 貌似是 NVIDIA 扩展后 Docker 版本。安装它可以直接使用 GPU
3. Container runtime 猜测是添加了 GPU 硬件支持的运行时实现。可以让上层的容器引擎( docker )或者容器编排系统( k8s )使用
paidaxtis
2023-07-17 17:19:47 +08:00
@isno 谢谢,问了 GPT 只是说是版本不同。有空闲机子我重新都装一个试试。

只不过自己安装以后试用只能摸到表面的不同,不知道有没有懂的指点一下细节。
isno
2023-07-17 18:03:23 +08:00
https://www.thebyte.com.cn/container/summary.html 你可以看看看我写的内容
YsHaNg
2023-07-17 18:06:50 +08:00
3 包括驱动和 1 host 或者自己装驱动 cuda 等就不需要 我是 wsl 里用 特别注意只要装 Windows 驱动 wsl 里装 NVIDIA Container Toolkit for Docker only 2 是 docker image
paidaxtis
2023-07-18 09:04:15 +08:00
@isno 谢谢,不过你的内容似乎并没涉及到容器的 GPU 相关内容
paidaxtis
2023-07-18 09:06:37 +08:00
@YsHaNg 所以应该是:

1. NVIDIA Container Toolkit for Docker 是带驱动完整的让容器使用 GPU 的环境。
2. NVIDIA Container runtime 是分布式的 NVIDIA Container Toolkit for Docker ,装上以后将 NVIDIA Container Toolkit for Docker 作为 host 。
3. NVIDIA Docker 仅仅是一个镜像,分不同的 CUDA 和 CUDnn

这样理解对吗?
YsHaNg
2023-07-18 16:44:24 +08:00
@paidaxtis 2 和 1 反了
paidaxtis
2023-07-18 17:07:37 +08:00
@YsHaNg 真心感谢

所以我单台机子要想容器内使用 gpu 只需要 runtime 就可以了吗?
YsHaNg
2023-07-18 23:22:08 +08:00
@paidaxtis 然而现在需要装 nvidia-container-toolkit😂 前提是 docker 够新 k8s+旧版 docker 还要用旧的 nvidia container runtime 它是个 runc 的重写复制品 nv 把 code base 挪到 https://gitlab.com/nvidia/container-toolkit/container-toolkit/-/tree/main/cmd/nvidia-container-runtime 了 总之现在需要的是安装驱动 安装 nvidia-container-toolkit 启动 nvidia/cuda image 配置的话我用 wsl2 只需要启动参数加--gpus

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/957424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX