深度学习GPU环境准备

CUDA和cuDNN

以前的显卡只能用作显示,后来nVidia为它的显卡开发了一套接口,叫CUDA,开发人员就能通过调用该接口实现使用GPU做计算

cuDNN是一个专门为深度学习开发的库。它里面包含了卷积计算、偏导计算等深度神经网络需要的计算库。它是以CUDA为基础的(注:为了更极致的优化,它可能使用更底层的接口)

可以这么理解:显卡就是一个计算器,CUDA就是上面 “+”、“-”、“*”、“/” 四个基本的运算按钮,cuDNN就是在计算器上又新增了 “^n”、“n!”、“ln” 等运算按钮。虽然它们是新增的,但它们本质上都是对加减乘除的组合运算

事实上,所谓的cuDNN的安装,也不过是将一些cuDNN相关的库文件复制到CUDA的安装目录下。很类似于在某个插件库中添加一个插件的过程。

CUDA、CUDA driver和CUDA Toolkit

CUDA一般其实指的是 CUDA runtime API(下文有介绍)

CUDA driver指的就是支持了CUDA指令集的显卡驱动(个人理解)。

类比java:CUDA相当于jre,cudaToolkit相当于jdk。cudaToolkit中包含了CUDA driver,同时也包含了其他一些东西,例如CUDA的编译器nvcc。cudaToolkit的版本和CUDA的版本一一对应(个人理解)

注:安装pytorch时也可能会安装一个cudatoolkit的包,它相当于nVidia提供的cuda toolkit的子集。它里面不包含CUDA driver。这也就意味着使用conda安装的cudatoolkit的版本需大于等于本地的CUDA driver的版本

这里有篇文章说的很详细:显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?

加上这篇文章:CUDA环境详解

CUDA Liberaries、CUDA Runtime API、CUDA Driver API

三者是层层封装的关系,CUDA Driver API 是对GPU硬件的抽象,原则上可以直接使用该API进行开发,但实际操作较难,Runtime API则是对其的封装,使用该API开发相对简单,而Liberaries则是对Runtime API的进一步封装,使得开发更加容易,三者都有自己的版本。上层API的版本应不小于下层的版本

Driver API 是随着显卡驱动一起安装的,其中就包含了 nvidia-smi 命令,故只要安装了显卡驱动就能使用该命令

参考:https://cloud.tencent.com/developer/article/1496697

为什么没有安装CUDA还是能用pytorch调用GPU

Runtime API 是随着CUDA Toolkit一起安装的,虽然Runtime API基于Driver API,但它也是可以单独安装的。故即使你本地没有安装显卡驱动,也是可以安装CUDA Toolkit的(但有时显卡驱动也会随着该Toolkit一起安装)。该Toolkit中就包含CUDA的编译器nvcc

参考:https://www.zhihu.com/question/378419173/answer/2382489868

CUDA 是一种编程语言吗?

引自官网:https://www.nvidia.cn/geforce/technologies/cuda/faq/

“CUDA 是我们用于 GPU 计算的架构,能在 GPU 上运行标准 C 语言。为实现这一点,NVIDIA 定义了一套通用计算指令集 (PTX) 和一小部分C语言扩展集,从而让开发者充分利用我们 GPU 中强大的并行计算能力。Portland Group 为 NVIDIA CUDA 架构上的 Fortran 提供支持,而其它一些公司则为 Java、Python、.NET 等其它语言提供支持。

我们用术语 “CUDA C” 来描述开发者指定 GPU 上要执行的功能、GPU 内存如何使用、应用程序如何使用 GPU 的并行处理功能所使用的语言和一小部分扩展集。

NVIDIA 的 C 语言编译器是使用 Edison Design Group C 语言分析器及 Open64 编译器构建的,并且它进行了扩展以支持 CUDA C 扩展。很多CPU公司在他们的编译器中都广泛使用 EDG 分析器和 Open64 编译器。”

CUDA和nvcc

nvcc是cuda的编译器,类似javac或者gcc

win10安装CUDA

官方教程:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html

1. 检查gpu是否可用cuda

2. 下载CUDA Toolkit安装包

下载地址:https://developer.nvidia.com/cuda-downloads

选择相应的系统版本,点击下载

3. 下载完成后安装

我这里选择精简安装

默认安装到如下路径

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7

同时,它也会给你设置好环境变量 CUDA_PATH

4. 验证

命令行输入 nvcc -V 查看是否有正确输出

Leave a Comment