CUDA驱动版本与运行版本不匹配问题详解
CUDA驱动版本与运行版本不匹配问题详解
报错内容:CUDA driver version is insufficient for CUDA runtime version
1 如何查看自己的cuda驱动版本和cuda运行版本
1.1 查看CUDA驱动版本
命令行输入:nvidia-smi
以我的电脑为例,输出中显示Driver Version: 430.34
,此为驱动版本。
1.2 查看CUDA运行版本
命令行输入:nvcc -V
我的电脑输出10.2.89版本。
在网上查到很多文章说利用conda list
或者pip list
查看cudatoolkit和cudnn程序包版本,但是我用这两个查看的结果发现我的电脑并没有这两个包。
2 为什么会分驱动版本和运行版本?
2.1 驱动版本
在讲驱动版本之前,先来明晰几个概念:GPU、显卡和显卡驱动。
这里大家最熟悉的可能就是显卡。显卡顾名思义,就是用来“显示”的卡,在计算机中主要承担的是显示图形的任务。显卡越好,显示的效果就越好,所以爱打游戏的人和从事专业图形设计的人对显卡就额外重视。
而我们常说的GPU(Graphics Processing Unit),中文全称图形处理器,你听这个名字,就是用来处理图形的东西,所以 GPU也是显卡的主要处理单元。GPU和显卡,都能归在硬件的范畴之中。
显卡驱动则是一个软件,顾名思义,用于“驱动”显卡,就好像一辆车(GPU),需要一个司机(显卡驱动)来发动它,一个硬件能够正常运行,也需要程序去“驱动”它。因此,显卡驱动的版本是与GPU硬件有关的,根据硬件的不同,下载的显卡驱动也不同。
我们刚刚用来查看自己的驱动版本的命令行nvidia-smi
中的smi是System Management Interface的缩写,用于管理GPU设备。所以这个命令行输出的信息与其管理的硬件有关。再回看上面的输出:
可以得到,我们的驱动版本是430.34,其能兼容的最高CUDA版本也贴心地写在一旁:10.1。
2.2 运行版本
要说运行版本,我们就要先从CUDA说起。
CUDA的全称是Compute Unified Device Architecture,按照NVIDIA官方的说法,CUDA是一个并行计算平台和编程模型,能够使得使用GPU进行通用计算变得简单和优雅。
翻译一下也就是说,CUDA是NVIDIA为了帮助大家更好地使用他们生产的GPU而开发的一个辅助工具。好像汽车厂商(NVIDIA)卖给你了车(GPU),帮你请了司机(显卡驱动),又负责教司机如何开车开得简单又优雅(CUDA)。这里的CUDA,一般指的是CUDA Toolkit,也就是我们的运行版本。
2.3 问题成因
但是呢,问题就在这儿了。有好老师(CUDA Toolkit)不一定能教出好学生(驱动)。
官网上有一张CUDA工具包和其最低可兼容驱动版本的表格
如图所示,像我们的这个驱动430.34,它只能学会使用CUDA10.1以下的工具包。更高级的CUDA工具包只有更高级别的驱动才会用,所以才导致了这个问题。就像报错信息说的那样:CUDA driver version is insufficient for CUDA runtime version. 我们的问题就是:对于我们的CUDA运行版本来说,驱动版本太低了!
那么要解决这个问题,有两种方法:
- 升级驱动
- 降级CUDA工具包
因为我用的是学校的电脑,没(懒)办(得)法升级驱动了,所以这里我只降级了CUDA工具包。有(勤)条(劳)件的小伙伴可以升级一下自己的驱动。
3 解决方法:降级CUDA工具包
由于我这个新建的虚拟环境没有CUDA Toolkit,所以直接conda install cudatoolkit=10.1
就行了。本来就有安装toolkit的小伙伴可以uninstall一下再装更低版本。
有的时候可能会报错The following packages are not available from current channels
,说明你这个源里现在没有这个版本的toolkit了。这里贴一个网址,大家可以把包下到本地,再走本地路径安装,例如conda install C:/xxxxx
由于我这边的电脑是无图形化界面windows,所以只能提供这两种命令行能实现的解法。如果大家是在自己的电脑上跑,有图形化界面的话,感觉还是升级驱动比较快哦。
CUDA工具包降级了之后再次运行代码,报错消失了,但又报了别的错,修bug真是条漫漫长路(远目
参考
- 显卡百度百科
- GPU百度百科
- 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
- 关于cuda驱动版本以及cuda运行版本不匹配的问题
CUDA驱动版本与运行版本不匹配问题详解相关推荐
- python硬件交互_对Python的交互模式和直接运行.py文件的区别详解
对Python的交互模式和直接运行.py文件的区别详解 看到类似C:\>是在Windows提供的命令行模式,看到>>>是在Python交互式环境下. 在命令行模式下,可以执行p ...
- java编译不报错但运行啥都没_java编译时与运行时概念与实例详解
java编译时与运行时概念与实例详解 发布于 2020-7-29| 复制链接 本篇文章通过实例对 java程序编译时与运行时进行了详解,需要的朋友可以参考下 Java编译时与运行时很重要的概念,但是一 ...
- 抢先服服务器维修什么时候玩,王者荣耀抢先服能和那些服务器匹配?匹配开放时间详解介绍...
王者荣耀抢先服能和那些服务器匹配?很多小伙伴们目前在抢先服玩的时候,都想知道能否和正式服数据互通,那么对正式服的玩家们是不是不公平,还是说室友固定匹配时间的?下面是小编带来的具体解答分享,感兴趣的一起 ...
- Nginx正则表达式之匹配操作符详解
2019独角兽企业重金招聘Python工程师标准>>> Nginx正则表达式之匹配操作符详解 nginx可以在配置文件中对某些内置变量进行判断,从而实现某些功能.例如:防止rewri ...
- java switch 值_Java switch多值匹配操作详解
这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大 ...
- python实现括号匹配算法_Python实现括号匹配方法详解
这篇文章主要简介了python实现括号匹配方法详解,文中通过示例代码简介的非常具体,对大家的学习或者工作具有一定的参考学习网上卖,需要的朋友可以学习下 1.用一个栈[python中可以用List]就可 ...
- java正则匹配多个斜杠_正则表达式中两个反斜杠的匹配规则详解
关于正则表达式raw的\匹配规则 这是我在学习中获得到的一个例子,第一表达式中匹配到的是none.于是乎我就在思考,为什么会匹配不到,假设\t被转义成一个\t,那么也应该匹配到\tsanle,而不是n ...
- java case 多个值_Java switch多值匹配操作详解
这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大 ...
- kubernetes运行应用2之DaemonSet详解
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 第43课: Spark 1.6 RPC内幕解密:运行机制、源码详解、Netty与Akka等
第43课: Spark 1.6 RPC内幕解密:运行机制.源码详解.Netty与Akka等 Spark 1.6推出了以RpcEnv.RPCEndpoint.RPCEndpointRef为核心的新型架构 ...
最新文章
- android中方法调用super(..)的相关知识
- 全球半导体产业迁移 中国的机遇与挑战
- [Flex]关于国内Flex开发者/从业者的调查问卷
- Winform中设置ZedGraph鼠标双击获取距离最近曲线上的点的坐标值
- C语言Cruskal算法查找最小生成树(附完整源码)
- SAP UI5和微信小程序框架里的全局变量
- 51nod1040 最大公约数之和,欧拉函数或积性函数
- 证券期货行业监管大数据治理方案研究
- PHP配置限制文件大小上传
- Spring源码解析一 (IOC容器初始化深度解析)
- java 语音传输_java – 通过tcp流式传输语音
- 垂直广告是什么意思_广告新趋势——内容为王 垂直细分
- playbook_黑莓PlayBook的第一波Union游戏揭晓!
- android ui 扁平化,为何UI集体变风格 扁平化是未来主流吗?
- 折线图css,echarts实现折线图的代码(附图)
- 解决[Vue warn]: Unknown custom element: <ag> - did you register the component correctly? For recursive
- 简单的猜数字游戏--入门
- Go 语言开发工具 LiteIDE X36 发布
- mysql zombodb_zombodb安装试用
- Linux 存储 Stack详解
热门文章
- java二叉树删除节点
- ad自动布线过孔_AD15布线方法汇总
- [CTBS]许可证过期之激活
- Android开发眼镜店管理系统,智能眼镜店管理系统(基于BS架构互联网版)下载_智能眼镜店管理系统(基于BS架构互联网版)官方下载-太平洋下载中心...
- hydra暴力破解win10用户名和密码
- php值班系统,php简单的值日值班处理方法
- 自己对war包解压的误区
- 在eclipse上通过egit插件将代码发布到码云(https://gitee.com/)
- CAN FD安全通信
- 在win11和win10的edge浏览器运行flash网址设置详解