当前位置: 首页 > news >正文

could not select device driver ““ with capabilities: [[gpu]]

现象

执行如下代码

docker run -d --restart=always  --gpus all --name=sglang --shm-size 32g -p 9300:30000 -v  /mnt/data/app/sglang:/root/.cache/huggingface -v /mnt/data/models:/models  --security-opt seccomp=unconfined --ipc=host --ulimit memlock=-1:-1 --cap-add=SYS_PTRACE  c2eeba0835f1 

报:

could not select device driver "" with capabilities: [[gpu]] 

原因:

     这个错误提示说明 Docker 无法找到具有 GPU 能力的设备驱动。这通常是因为 Docker 或者宿主机没有正确配置以支持 NVIDIA GPU。需要安装安装cuda工具

解决方案:

第一步:安装cuda工具

apt install nvidia-cuda-toolkit

第二步:nvidia-docker2

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2

 解释:
. /etc/os-release:加载 /etc/os-release 文件中的环境变量,这些变量描述了你当前使用的 Linux 发行版信息。
echo $ID$VERSION_ID:输出系统的 ID 和版本号,例如:
如果你是 Ubuntu 22.04,会输出 ubuntu22.04
curl -s -L ...:静默下载(不显示进度)并跟随重定向,从指定 URL 获取 GPG 公钥。
https://nvidia.github.io/nvidia-docker/gpgkey:这是 NVIDIA Docker 包的签名密钥。
| sudo apt-key add -:将下载的公钥添加到 APT 的信任密钥列表中。
https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list:根据之前获取的系统信息构造出对应的 APT 源地址。
| sudo tee /etc/apt/sources.list.d/nvidia-docker.list:将下载的内容写入一个新的 APT 源配置文件中。

在daemon.json中多了如下内容:

    "runtimes": {

        "nvidia": {

            "path": "nvidia-container-runtime",

            "runtimeArgs": []

        }

},

字段

含义

"runtimes"

表示这是一个运行时配置块,可以定义多个不同的运行时(比如 runcnvidiakata 等)

"nvidia"

自定义的运行时名称,你可以通过 --runtime=nvidia 来指定使用这个运行时

"path"

运行时的可执行程序路径,这里是 nvidia-container-runtime,它是 NVIDIA 提供的一个修改版的 runc,支持 GPU

"runtimeArgs"

启动运行时时传递的参数列表,这里为空数组表示不传额外参数

第三步:重启docker

sudo systemctl restart docker

第四步:再执行

docker run -d --restart=always  --gpus all --name=sglang --shm-size 32g -p 9300:30000 -v  /mnt/data/app/sglang:/root/.cache/huggingface -v /mnt/data/models:/models  --security-opt seccomp=unconfined --ipc=host --ulimit memlock=-1:-1 --cap-add=SYS_PTRACE  c2eeba0835f1 

http://www.xdnf.cn/news/750115.html

相关文章:

  • 红外遥控(外部中断)
  • 关于win10系统中环境变量path变成一行显示的问题
  • Vue ①-实例 || 指令
  • Baklib企业CMS全流程管控与智能协作
  • CppCon 2014 学习:Optimization Tips
  • Fine Pruned Tiled Light Lists(精细删减的分块光照列表)
  • Python60日基础学习打卡Day39
  • 痉挛性斜颈带来的困扰
  • PCIE之Lane Reserval通道out of oder调换顺序
  • 2025年- H63-Lc171--33.搜索旋转排序数组(2次二分查找,需二刷)--Java版
  • 基于热力学熵增原理的EM-GAM
  • Less基础语法
  • Python打卡训练营学习记录Day41
  • C++:参数传递方法(Parameter Passing Methods)
  • day28 python训练营 类的定义与方法
  • 【Java】ForkJoin 框架
  • linux 1.0.7
  • VC++: identifer “M_PI“ is undefined
  • B3623 枚举排列(递归实现排列型枚举)
  • javaScirpt学习第五章(函数)-第二部分
  • 应用于分子生成的免训练引导多模态流模型 - TFG-Flow 评测
  • 用不太严谨的文字介绍遥测自跟踪天线的基本原理
  • Java中的继承
  • Target店铺应该如何入驻?
  • 自定义Spring Boot Starter
  • 【课堂笔记】标签传播算法Label Propagation Algorithm(LPA)
  • DFS入门刷题
  • vasp的输出文件解读--OUTCAR
  • 常见的RAG文档解析辅助工具汇总及企业选型思考
  • 一周学会Pandas2之Python数据处理与分析-数据重塑与透视-pivot() - 透视 (长 -> 宽,有限制)