1.CUDA Toolkit Archive:https://developer.nvidia.com/cuda-toolkit-archive
2.torch:https://download.pytorch.org/whl/torch_stable.html
【Windows】怎么查看CUDA版本?Conda命令安装和NVIDIA官网安装包安装的CUDA有何区别?nvcc -V和nvidia-smi获得的CUDA版本有何区别?如何指定CUDA版本?(解释得好)
1.要安装Pytorch的二进制文件,至少需要使用两个支持的软件宝管理器中的一个:Anaconda和pip。安装了Python,pip将已经为你安装好了。
2.CUDA driver version is insufficient for CUDA runtime version
3.CUDA有两个主要的API:runtime(运行时) API和driver API。这两个API都有对应的CUDA版本(如9.2和10.0等)。
综上,如果driver API和runtime API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。
3.系统安装的cuda和虚拟环境中安装的cuda的区别
conda install pytorch torchvision torchaudio cudatoolkit=10.1 -c pytorch
,其主要包含应用程序在使用CUDA相关的功能时所依赖的动态链接库。conda安装只会安装一些计算库,不会安装编译工具。而官方的cuda包包含的东西会完整一些。4.注意:
如果项目代码需要使用python setup.py develop或./make.sh来编译依赖cuda的torch模块(如C语言脚本)时候,这个时候可能会导致错误,错误原因是编译过程使用的是系统自带的CUDA而不是conda安装的CUDA包,当系统自带CUDA版本不支持项目代码时,会引发一些奇怪的问题,所以最好的办法是保持conda安装的cudatoolkit版本与系统自带版本(nvcc -V查看)一致。
那么可能就有人要问了,“不能编译的时候调用conda安装pytorch时附带安装的cudatoolkit吗?”答案是往往不行,因为conda只安装上了部分动态链接文件,只占Nvidia官方CUDA的一小部分,且没有安装开发工具包和驱动程序,而往往编译过程需要依赖其他头文件等,conda安装的cudatoolkit不具备这些头文件等,故不行。
5.Pytorch寻找可用cuda的过程
调用哪个 cuda 库要看生成 tensorflow / pytorch 库的时候,设置的链接库寻找目录,以 pytorch 为例,项目根目录下的 setup.py 中指定链接库的搜索目录,其中 cuda 的根目录 CUDA_HOME在 tool.setup_helpers.cuda 中有获取逻辑,大概过程是:
6.Anaconda系列:conda是什么?conda与pip的区别是什么?
1.https://zhuanlan.zhihu.com/p/99880204
2.CUDA安装教程(超详细)(√windows下的安装可参考)
3.3080深度学习环境配置(可参考)
4.Ubuntu 20.04配置cuda-toolkit-11-4以及cuDNN一遍过(可参考)
5.Windows/Ubuntu下查看显卡,驱动,cuda,cudnn版本
6.conda虚拟环境中安装cuda和cudnn,再也不用头疼版本号的问题了
7.永不过时的Ubuntu/Win10 cuda安装配置方法
8.深度学习笔记——cuda、cudnn、pytorch安装
深度学习环境搭建(一)之 Ubuntu 安装
深度学习环境搭建(二)之 CUDA Driver 安装
深度学习环境搭建(三)之 CUDA安装
深度学习环境搭建(四)之 CUDNN安装
1.理清GPU、CUDA、CUDA Toolkit、cuDNN关系以及下载安装
2.显卡、显卡驱动、Nvcc、Cuda Driver、CudaToolkit 、Cudnn到底是什么?
3.CUDA、CUDNN、CUDA Driver、CUDA Toolkit、NCVV的区别?
4.conda安装的cudatoolkit, cudnn与在主机上安装的cuda, cudnn有何关系?
5.了解NVIDAI显卡驱动(包括:CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV),以及CUDA安装教程
6.Pytorch 使用不同版本的 cuda(解释了cuda和cudatoolkit的区别,并且Pytorch 确定所使用的 cuda 版本)
7.一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系
8.虚拟环境中cuda版本与系统cuda版本不同有什么影响
9.显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
内存的形状一般是一个长方形的集电电路,底部有很多焊点。它的特点是存取速率快。内存是电脑中的主要部件,是相对于外存而言的,平常使用的程序,如Windows操作系统,打字软件,游戏软件等,通常都是安装在硬盘等外存上的,我们在运行这个软件时必须把它们调入内存中运行,目的就是为了运行速度更快。
内存是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。
NVIDIA系列显卡做深度学习,需要在宿主机安装显卡驱动(driver),需要在docker中安装英伟达的科学计算库(cuda),在python中安装深度学习库(我主要用pytorch),driver依赖显卡,cuda依赖driver,pytorch依赖cuda,于是就会有一些版本依赖问题.
就是平时我们所说的显卡,大多数电脑使用NVIDIA公司生产的显卡。
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
显卡驱动是显卡跟计算机连接的桥梁,可以让计算机识别到GPU硬件,是必须正确安装的,不同厂商、不同型号的GPU对应不同的显卡驱动。
NVIDIA Driver,其实它就是一个NVIDIA显卡驱动软件。NVIDIA CUDA Driver包含在驱动程序中,通过它可以找到对应的CUDA版本。
什么是CUDA Driver?
这个就是常说的显卡驱动,比如我的电脑显卡型号是:GTX 1660 SUPER,显卡驱动程序的版本:441.08。
(1)第一部分解释(看第一部分即可):
CUDA Toolkit 就是Nvidia 官方提供的一个完整的工具安装包,其中提供了Nvidia 驱动程序、开发CUDA 程序相关的开发工具包等可供安装的选项。
使用 Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。但对于 Pytorch 之类的深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 ),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。故而,Anaconda 在安装 Pytorch 等会使用到 CUDA 的框架时,会自动为用户安装 cudatoolkit,其主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit 。
(2)第二部分解释:
CUDA Toolkit 就是Nvidia 官方提供的一个完整的工具安装包,其中提供了Nvidia 驱动程序、开发CUDA 程序相关的开发工具包等可供安装的选项。
CUDA Toolkit由以下组件组成:
NVCC就是CUDA的编译器,可以从CUDA Toolkit的/bin目录中获取,类似于gcc就是c语言的编译器。由于程序是要经过编译器编程成可执行的二进制文件,而cuda程序有两种代码,一种是运行在cpu上的host代码,一种是运行在gpu上的device代码,所以nvcc编译器要保证两部分代码能够编译成二进制文件在不同的机器上执行。
cuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络中的基础操作而设计基于GPU的加速库。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
运行cmd,输入nvcc --version
或者nvcc -V
即可查看版本号;
set cuda
,可以查看 CUDA 设置的环境变量。