容器 E05:GPU 设备可见为什么不等于能计算
将注入分解成四个核对点
先记录宿主 GPU 型号/驱动与设备节点,再查看 CDI 描述是否指向实际设备以及需要哪些 mount/env/permissions,运行时是否把这些要求应用到进程,最后运行一个小规模受控功能请求并保存错误/成功。Kubernetes 设备插件宣告的 allocatable 资源也不能代替容器内驱动库可加载证据。正例应在专用 GPU 节点固定驱动、CUDA/runtime/CDI spec 版本,使用同一探针只做设备可见和最小调用;边界案例撤去自建 CDI 描述的一项库挂载或让设备权限拒绝,定位失败层。不可卸载共享节点驱动或抢占他人的 GPU。
设备、驱动与清理表、应用侧探针包仅是素材;本机尚未发现 GPU/运行时、没有执行过设备注入与 CUDA 调用,吞吐、隔离和功能结果全部 `NOT_RUN`。即使能静态解析 CDI 文件,也不能声称 GPU 可用。| 现象 | 核查 | 不可推出 |
|---|---|---|
| 看见设备节点 | 库、驱动与权限 | 计算请求一定成功 |
| CDI 解析通过 | 实际设备与注入后 mount | 节点有 GPU |
| Pod Pending | device plugin allocatable | 是应用内部驱动错误 |
练习
- 预测 CDI 描述可解析但没有物理 GPU 的节点会在哪层失败;在独立 GPU VM 核对声明、实际节点设备与 runtime 返回。
- 预测驱动和用户态库版本不匹配时设备可见与计算结果的区别,固定版本做小负载,不编造性能数据。
先修:17:运行时、27:节点资源。下一篇:E06:Wasm/WASI。
系列总目录:从进程隔离到运行时与编排。
参考资料
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.




