导语:同一个镜像在不同的显卡驱动的机器上无法使用gpu 。报错Error 803: system has unsupported display driver / cuda driver combination

查看2个镜像对应的cuda driver

同镜像tag ge2206300210 宿主机驱动465.27 镜像cuda driver是465.27

同镜像 tag ge2206300210宿主机驱动470.63 镜像cuda driver是465.27

这里宿主机的driver挂进去自己修改了软链。

令一个镜像 tag only_cta220630宿主机驱动465.27 镜像cuda driver是470.63

这里宿主机的cuda driver挂载进去了 但是并没有替换镜像里的driver。

令一个镜像 tag only_cta220630宿主机驱动470.63 镜像cuda driver是470.63

也是没问题的。

打开宿主机上/etc/nvidia-container-runtime/config.toml中的debug开关,启动容器,就会看到启动日志(/var/log/nvidia-container-toolkit.log)

[nvidia-container-cli]
debug = "/var/log/nvidia-container-toolkit.log"
log-level = "debug"

测试

确实会mount宿主机上的相关cuda so包。这里已经把对应的libcuda.so.465.27做到镜像里了 所以可能没有对应的挂载日志

这里估计选择了最新的

对于这条做了测试

镜像中存在libcuda.so.465.27 和 libcuda.so.470.63.01时 nvidia-docker会将软链指到libcuda.so.470.63.01

造成这个的原因我认为是低版本的driver不会覆盖镜像中高版本的driver导致,详细可以参考如下图片和链接。

参考

https://zhuanlan.zhihu.com/p/361545761

Logo

欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。

更多推荐