linux查看cuda版本
1.cat /usr/local/cuda/version.json
2.或者 nvcc -V(注意是大写 )
3 nvidia-smi
1和3中显示的是11.3
2中显示的是10.1
CUDA有两个主要的API:runtime(运行时) API和driver API
。这两个API都有对应的CUDA版本(如10.1和11.3等)。
- 用于支持
driver API
的必要文件(如libcuda.so)
是由GPU driver installer
安装的nvidia-smi
就属于这一类API。 用于支持`runtime - API
的必要文件(
如libcudart.so以及nvcc)是由
CUDA Toolkit installe`r安装的。(CUDA
Toolkit Installer有时可能会集成了GPU driver Installer)。
nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。
综上,如果driver API和runtime API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer
,而不是CUDA Toolkit installer里的GPU driver installer
。
runtime和driver API区别
runtime和driver API在很多情况非常相似,也就是说用起来的效果是等价的,但是你不能混合使用这两个API,因为二者是互斥的。也就是说在开发过程中,你只能选择其中一种API。简单理解二者的区别就是:runtime是更高级的封装
,开发人员用起来更方便,而driver API更接近底层,速度可能会更快
。
也就是说driver 与runtime并不是一一对应的哦,CUDA Toolkit(runtime)
本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA Toolkit,比如同时安装了CUDA 9.0、CUDA 9.2、CUDA 10.0三个版本。
既然NVIDIA显卡驱动和CUDA Toolkit本身是不具有捆绑关系的,也不是一一对应的关系,那为啥我们总是傻傻分不清楚呢。。。因为离线安装的CUDA Toolkit会默认携带与之匹配的最新的驱动程序
!!!
这也就能解释,为啥NVIDIA的官网里同时有
CUDA Toolkit
和
NVIDIA Driver
两种下载了
顺便附上cudnn的下载,注意下载cuDNN,需要注册一个账号才能下载
如果你之前使用了PPA安装驱动,可能会出现只装了driver的情况
参考 只安装nvidia driver的另一种方式
不过,我现在遇到的问题是,服务器的tf是1.15,无法兼容cudatoolkit9,也不支持11,根本没法加速
在读了 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?之后,发现,安装多版本 cuda ,多版本之间切换是可以实现的,我们应该可以直接再额外装一个cudatoolkit10,见Ubuntu安装多版本cuda,并在多版本之间切换。
———————————————————————————————————————————————————————
顺便附上linux下cudnn版本查询方法
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
1
此处的/usr/local/cuda/include/cudnn.h
可能会因为机器不同而不同,我也不知道当年师兄们是怎么装的,我的cudnn.h在/usr/include里面
如果你也和我一样,找不到cudnn.h 可以通过find语句全局查找
sudo find / -name ‘cudnn.h’
————————————————