[工程] pytorch gpu docker 镜像下的无法正常启动应用分析

举报
~大鱼~ 发表于 2021/05/27 14:54:29 2021/05/27
【摘要】 目录 发现 分析 解决 总结 发现 在使用了 nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04 作为底层镜像后,重新构建了pytorch的底层镜像做为应用的基础镜像,一切都构建的很顺利,就是在正常启动镜像的时候,出现了如下的错误 CUDA driver version is insufficient for CUDA runtime v...

目录

  • 发现
  • 分析
  • 解决
  • 总结

发现

在使用了 nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04 作为底层镜像后,重新构建了pytorch的底层镜像做为应用的基础镜像,一切都构建的很顺利,就是在正常启动镜像的时候,出现了如下的错误
CUDA driver version is insufficient for CUDA runtime version

分析

按照以往的经验 ,无非是没有使用nvidia-docker启动,又或者当前实体机的nvidia driver 版本和docker 镜像内的版本不一致,那我们一个一个排除,在使用nvidia-docker 启动镜像后,正常使用docker-compose启动应用,使用命令查看cuda和cudnn版本

输出

这里对比cuda 版本都是一致的,进一步查看cudnn版本

输出

这里最奇怪的是cudnn版本也是一致的…

解决

分析到这里,我想应该有同学猜到,可能是环境变量不一致导致的,查找关于cuda的所有环境变量发现

实体机:

docker 内部

为了验证这个想法,这一次不直接使用docker-compose 直接启动应用,使用nvidia-docker run 镜像方式进入docker 内部,正常启动程序,没想启动成功了,OK,那可以完全肯定是环境变量导致的这个问题,为了进一步解决这个问题,我们有两种方式,一是每次部署的时候都要写好环境变量,二是在dockerfile 里面写好ENV,比如

总结

这一次我们主要从错误的提示出发,验证了我们对于错误的猜想,时刻记住,对于docker host 的程序 ,环境变量对于应用程序来说相当重要。

文章来源: brucedone.com,作者:大鱼的鱼塘,版权归原作者所有,如需转载,请联系作者。

原文链接:brucedone.com/archives/1198

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。