conda虚拟环境中安装的cuda和服务器上安装的cuda的异同

服务器上已安装Nvidia提供的cuda,nvcc -V时会出现已安装的CUDA版本。如下图所示,服务器上已安装好的cuda版本为10.1。

但是当我们在Anaconda虚拟环境下安装pytorch或者paddlepaddle等深度学习框架的GPU版本时,通常会选择较高版本的cuda,这样服务器就存在两个cuda版本,但是/usr/local的目录下只有Nvidia家的cuda版本,这是为什么呢?而且使用conda命令安装cuda相比于Nvidia的cuda安装要简单很多,例如安装gpu版本的pytorch命令如下所示。

dart 复制代码
conda install pytorch == 1.12.1 torchvision == 0.13.1 torchaudio== 0.12.1 cudatoolkit=11.3 -c pytorch

Nvidia官方提供的CUDA Toolkit是一个完整的工具安装包,包含了进行CUDA相关程序开发的编译、调试等过程相关的所有组件。使用 Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。

但是对pytorch/paddlepaddle等这样的深度学习框架而言,其本身与CUDA相关的部分已经提前编译好,在深度学习框中调用GPU只需要CUDA 的动态链接库就可支持程序的运行。所以,安装pytorch的gpu版本时,只需要安装cudatoolkit,只要系统上存在与当前的cudatooklit所兼容的nvidia驱动,就可以运行程序。

Anaconda为用户安装的cudatooklit,主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库,不会安装驱动程序。这也是为什么nvidia-smi时出现的cuda版本为服务器上已安装的cuda版本,而不是自己虚拟环境中的cuda版本。

想要安装CUDA,有两种方式 :1、在英伟达官网下载CUDA Toolkit Installer,借此安装;2、在Anaconda环境中使用类似【conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch 】的包括cudatoolkit的命令安装。

第一种方式安装的cuda,包括的模块更全面

第二种方式安装的cuda,用来训练模型,基本够用,但是要用到扩展功能就不行了

详见:Pytorch 使用不同版本的 cuda - yhjoker - 博客园

通过 Anaconda 安装的应用程序包位于安装目录下的 /pkg 文件夹中,如笔者的目录即为 /home/xxx/anaconda3/pkgs/ ,用户可以在其中查看 conda 安装的 cudatoolkit 的内容,如下图所示。可以看到 conda 安装的 cudatoolkit 中主要包含的是支持已经编译好的 CUDA 程序运行的相关的动态链接库。( Ubuntu 环境下 )

在大多数情况下,上述 cudatoolkit 是可以满足 Pytorch 等框架的使用需求的。但对于一些特殊需求,如需要为 Pytorch 框架添加 CUDA 相关的拓展时( Custom C++ and CUDA Extensions ),需要对编写的 CUDA 相关的程序进行编译等操作,则需安装完整的 Nvidia 官方提供的 CUDA Toolkit。

注意:这里记录一下,本人就是在之前使用conda安装的CUDA来跑深度学习项目没有出现问题,但是当引入一个模块需要添加扩展时就频频报错,这里大概就是在编译扩展时使用的是系统完整装的CUDA版本,而使用编译完的扩展时使用的是conda安装的扩展,这里就会出现版本不匹配因此不兼容的情况,所有频频报错。

参考链接

【Windows】怎么查看CUDA版本?Conda命令安装和NVIDIA官网安装包安装的CUDA有何区别?nvcc -V和nvidia-smi获得的CUDA版本有何区别?如何指定CUDA版本?

相关推荐
墨理学AI1 天前
conda 清除 tarballs 减少磁盘占用 、 conda rename 重命名环境、conda create -n qwen --clone 当前环境
conda·conda环境管理
sduwcgg2 天前
powershell7.5.0不支持conda的问题
conda
Monee..3 天前
linux里安装pip和conda
linux·conda·pip
THe CHallEnge of THe BrAve3 天前
‘conda‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
conda
奔跑草-4 天前
【服务端】使用conda虚拟环境部署Django项目
python·django·conda
豆芽8194 天前
Conda配置Python环境
python·conda·pip
MobiCetus4 天前
有关pip与conda的介绍
linux·windows·python·ubuntu·金融·conda·pip
Wwwilling5 天前
docker中怎么把docker中的python package转成conda,目前还没有conda
python·docker·conda
BAs5335 天前
Anaconda Jupyter 默认启动位置修改
ide·python·jupyter·conda
一个很帅的帅哥5 天前
conda的基础命令
conda