惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog
Y
Y Combinator Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
博客园_首页
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
宝玉的分享
宝玉的分享

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
Docker 使用 Nvidia GPU
Yiwei Zhang · 2025-02-25 · via 又见苍岚

新版 docker 已经个不需要 nvidia-docker 即可使用 gpu,本文记录相关信息。

系统环境: Ubuntu 22.04

初始化 Docker

安装

1
sudo apt install docker.io

配置

1
2
3
4
sudo systemctl start docker.service # 开启 docker 服务
sudo systemctl enable docker.service # 开机自启动 docker 服务
sudo usermod -aG docker $USER # 让 docker 命令执行不需要 sudo
sudo docker --version # 查看 docker-ce 版本

注意:请确保 docker 版本高于 19.03,否则需要 nvidia-docker 才能使用 GPU

Nvidia GPU 支持

参考 Run GPU accelerated Docker containers with NVIDIA GPUs

主机 (host) 中只需要安装英伟达显卡驱动,不需要安装 cuda-toolkit.

测试:

1
2
docker pull nvidia/cuda:11.0-base-ubuntu18.04
docker run -it --gpus all nvidia/cuda:11.0-base-ubuntu18.04 nvidia-smi

问题

Failed to initialize NVML

docker 中执行 nvidia-smi 后报错:

1
Failed to initialize NVML: Unknown Error

原因 (见上面 wiki 链接,执行 systemctl --version 查看 systemd 版本,如果是 v248 或更高则可确认是该问题):

1
Note: libnvidia-containerAUR has no support for cgroups v2. You need to set the systemd.unified_cgroup_hierarchy=false kernel parameter and set no-cgroups = false in /etc/nvidia-container-runtime/config.toml if you are using systemd v248 or higher.

需要做的有:

  1. 添加内核参数 systemd.unified_cgroup_hierarchy=false
  2. /etc/nvidia-container-runtime/config.toml 修改参数 no-cgroups = false

其中内核参数修改方法(GRUB)为:编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 参数双引号内加上所需参数:GRUB_CMDLINE_LINUX_DEFAULT=“… systemd.unified_cgroup_hierarchy=false”,再执行 grub-mkconfig -o /boot/grub/grub.cfg 生成启动引导配置文件。然后重启电脑,执行 cat /proc/cmdline 确认参数已添加。

参考资料

文章链接:
https://www.zywvvd.com/notes/tools/docker/docker-with-gpu/docker-with-gpu/