V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
paidaxtis
V2EX  ›  机器学习

NVIDIA 容器相关开发环境疑问

  •  
  •   paidaxtis · 2023-07-17 15:31:13 +08:00 · 1194 次点击
    这是一个创建于 500 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • NVIDIA Container Toolkit for Docker
    • NVIDIA Docker
    • NVIDIA Container runtime

    三者有区别吗?

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

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

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

    9 条回复    2023-07-18 23:22:08 +08:00
    isno
        1
    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
        2
    paidaxtis  
    OP
       2023-07-17 17:19:47 +08:00 via Android
    @isno 谢谢,问了 GPT 只是说是版本不同。有空闲机子我重新都装一个试试。

    只不过自己安装以后试用只能摸到表面的不同,不知道有没有懂的指点一下细节。
    isno
        3
    isno  
       2023-07-17 18:03:23 +08:00
    https://www.thebyte.com.cn/container/summary.html 你可以看看看我写的内容
    YsHaNg
        4
    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
        5
    paidaxtis  
    OP
       2023-07-18 09:04:15 +08:00
    @isno 谢谢,不过你的内容似乎并没涉及到容器的 GPU 相关内容
    paidaxtis
        6
    paidaxtis  
    OP
       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
        7
    YsHaNg  
       2023-07-18 16:44:24 +08:00
    @paidaxtis 2 和 1 反了
    paidaxtis
        8
    paidaxtis  
    OP
       2023-07-18 17:07:37 +08:00 via Android
    @YsHaNg 真心感谢

    所以我单台机子要想容器内使用 gpu 只需要 runtime 就可以了吗?
    YsHaNg
        9
    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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5668 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:13 · PVG 11:13 · LAX 19:13 · JFK 22:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.