Pytorch:显卡驱动版本、Pytorch版本的关系

相关阅读

Pytorch基础https://blog.csdn.net/weixin_45791458/category_12457644.html?spm=1001.2014.3001.5482


显卡驱动程序一般是显卡自带的,可以在终端中使用nvidia-smi命令查看,如下图所示。

图1 查看驱动程序的版本

图1显示,本机的驱动程序版本为472.19,支持的最新CUDA Toolkit版本为11.4,更详细的驱动程序和CUDA Toolkit的对应关系如图2所示。

图2 驱动程序和CUDA Toolkit的对应关系

CUDA拥有两类API,一种是驱动API(Driver API),一类是运行时API(Runtime API),驱动API在驱动程序安装后就已可用,而运行时API(Runtime API)则需要额外安装CUDA Toolkit才可用。

如果想更新显卡驱动程序,首先可以在英伟达官网进行下载。另外,在安装CUDA Toolkit时,也有选项允许下载驱动程序,但这种驱动程序主要是为了开发和测试用途设计的,不适合在生产环境中与 Tesla GPU搭配使用。

驱动程序下载https://www.nvidia.cn/drivers/

CUDA Toolkit下载https://developer.nvidia.com/cuda-toolkit-archive

使用nvcc -v或nvcc --version命令可以检测CUDA Toolkit的版本,它也暗示了CUDA Toolkit的安装情况,因为nvcc是CUDA Toolkit中的cuda编译器。

对于目前的Pytorch来说,无需提前下载CUDA Toolkit便可以直接安装使用,因为会安装时会下载一套专门供Pytorch使用的运行时API。

下面是较新版本的Pytorch。

复制代码
conda install pytorch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 pytorch-cuda=11.8 -c pytorch -c nvidia
pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118

无论使用哪条命令,都会同时下载依赖项cuda runtime包,里面包含了Pytorch需要的运行时API。

可以在下面的路径(或类似)中找到运行时API。

复制代码
/usr/local/lib/python3.10/dist-packages/nvidia/cuda_runtime/lib/libcudart.so.11.0

对于较老版本的Pytorch。

复制代码
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=10.2 -c pytorch
pip install torch==1.12.1+cu102 torchvision==0.13.1+cu102 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu102

其中如果使用conda安装,会同时下载cudatoolkit包(仅供Pytorch使用);如果使用pip安装,会在Pytorch包的Lib中自带运行时API,如下所示。

复制代码
/usr/local/lib/python3.10/dist-packages/torch/lib/libcudart-a7b20f20.so.11.0

需要注意的是,Pytorch顺带安装的运行时API版本,也应低于驱动所限制的CUDA Toolkit版本,例如对于图1,11.4版本以上的Pytorch就可能会出现问题。

相关推荐
LJ979511126 分钟前
告别通稿地狱:Infoseek用工程思维重构媒介宣发
人工智能
互联网江湖28 分钟前
快手营收利润双增,可灵AI会不会成为第二个Seedance?
大数据·人工智能
菜包eo32 分钟前
Kingsway Ultra:从视频到 AI,出海企业完整解决方案
人工智能·外贸b2b·外贸独立站·openclaw·kingwayvideo·视频营销
pp起床1 小时前
Part03:设计提示的通用技巧
人工智能
pp起床1 小时前
Part02:基本概念以及基本要素
大数据·人工智能·算法
landuochong2001 小时前
OpenClaw 架构文档
人工智能·架构·openclaw
dulu~dulu1 小时前
算法---寻找和为K的子数组
笔记·python·算法·leetcode
Tony Bai1 小时前
告别古法编程黄金时代:AI 时代不会再有新编程语言诞生的土壤
人工智能
cxr8281 小时前
OpenClaw与NetLogo之间的调用与数据交互机制
人工智能·交互·netlogo·openclaw
编程之升级打怪1 小时前
用Python语言实现简单的Redis缓冲数据库驱动库
redis·python