MR-50国产化GPU docker配置方法

官方运行方法:

bash 复制代码
docker run -it --name=test -v /lib/modules/:/lib/modules -v  /dev:/dev -v /usr/src/:/usr/src -v /mnt:/mnt -p 8000:22 --pid=host --privileged --cap-add=ALL --shm-size=8G cxxrex:xxx

pip3 list查看python安装包名称

验证GPU是否可以运行

bash 复制代码
import torch
print(torch.cuda.is_available())   # True = GPU 可用
print(torch.cuda.device_count())          # 几张卡
print(torch.cuda.get_device_name(0))       # 第 0 张卡叫什么
print(torch.cuda.current_device())         # 当前用的是哪张

--cap-add=ALL

作用:向容器授予 Linux 内核的所有 capability(能力)。

默认情况下,Docker 容器会丢弃大部分敏感的内核能力(如 SYS_ADMIN、NET_ADMIN、SYS_PTRACE等),以提高安全性。

--cap-add=ALL相当于放开所有限制,让容器拥有与宿主机几乎相同的特权级别。这通常与 --privileged配合使用(你那条命令里已经带了 --privileged),实际上 --privileged本身已经包含了所有 capability,再加 --cap-add=ALL是冗余的,但无害。

为什么需要它(在你的场景下):

燧原 Iluvatar 加速卡(CoreX 驱动)在容器内可能需要加载内核模块、操作 /dev设备、设置内存映射、访问 PCIe 配置空间等。某些底层操作(如 insmod、mmap特定区域、ioperm)需要特定的 capability。加上 ALL可以确保驱动和 CoreX 栈不会因为缺少某个 cap 而失败。

另外,--pid=host也需要 SYS_PTRACE等 cap,--cap-add=ALL一并覆盖了。

风险:降低了容器的隔离性,但在专用计算节点上通常可以接受。

--shm-size=8G

作用:设置容器内 /dev/shm(共享内存)的大小为 8GB。

/dev/shm是一个基于内存的文件系统(tmpfs),用于进程间通信(IPC)和 PyTorch DataLoader 的多进程数据共享。

Docker 默认的 /dev/shm大小只有 64MB,这对深度学习训练来说远远不够。PyTorch 的 DataLoader在使用 num_workers>0时,会将数据通过共享内存传递给子进程,如果共享内存不足,会导致 RuntimeError: unable to mmap或程序卡死。

为什么需要它:

你的算法(IGEV-Stereo)在推理时可能会用到多线程或多进程读取图像数据,较大的共享内存可以避免频繁的磁盘 I/O 和数据拷贝,提高性能。

8GB 是一个比较保守的值,足以应对大多数单机推理任务。如果后续需要更大批处理或更多 worker,可以适当增大。

相关推荐
穷人小水滴8 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
EatFans8 小时前
Docker 实战部署:从本地镜像到云服务器,一篇走通 FastAPI + Celery + MySQL + Redis + Nginx
docker·fastapi
judezh9 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
暗不需求9 小时前
Docker 入门:从「光盘与 DVD」到全栈项目容器化实战
docker·容器·面试
探索云原生9 小时前
一个 Deployment 就能跑 vLLM,为什么还需要 KServe?
docker·ai·云原生·kubernetes·go
虎头金猫6 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS6 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心6 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing6 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)6 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher