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