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版本?

相关推荐
Teleger21 小时前
使用python来保存键盘输入情况,可保存到sqlite3数据库
python·conda
MonkeyKing_sunyuhua1 天前
Ubuntu 中无法直接使用 `conda` 命令,设置conda的环境变量
linux·ubuntu·conda
哆啦叮当2 天前
Linux下root用户共享conda环境给其他用户
linux·运维·服务器·python·conda
985小水博一枚呀3 天前
【深度学习|PyTorch】基于 PyTorch 搭建 U-Net 深度学习语义分割模型——附代码及其解释!
网络·人工智能·pytorch·python·深度学习·conda·numpy
chen_zn954 天前
conda常用指令
conda
AI浩7 天前
Conda和pip 清空缓存
conda·pip
技shu支持7 天前
PyCharm与Anaconda超详细安装配置教程
ide·python·pycharm·conda
SteveMiller9 天前
conda、anaconda、pip、torch、pytorch、tensorflow到底是什么东西?(转载自本人的知乎回答)
pytorch·conda·pip
深蓝海拓9 天前
新电脑安装和配置pytorch、anaconda、CUDA、cuDNN、pycharm的过程记录
人工智能·pytorch·python·pycharm·conda
奔跑草-10 天前
【拥抱AI】使用Conda的一些常见命令
人工智能·大模型·conda·ai编程·metagpt