CUDA安装及开发环境的配置

CUDA安装以及开发环境配置

最近要使用CUDA进行C++和DL的学习,主要是用到cuda对C++代码进行优化加速,和pytorch通过cuda使用GPU进行加速。配环境的过程中遇到了各种奇奇怪怪的问题,于是乎决定写一篇Blog来详细描述一下开发环境的配置过程。

硬件支持

首先要确定自己的台式机/笔记本是否支持CUDA,需要有NVIDIA的独显支持。写Blog时,时间是2022年5月17日,我自己本机的硬件是 NVIDIA-RTX3060-Laptop。之后在参考本篇文章时,要注意自己的硬件条件和当时的时间来确定后续环境的版本。

首先要查看自己本机NVIDIA显卡所支持的驱动版本,以NVIDIA-RTX3060-Laptop为例。

在桌面右键打开 NVIDIA控制面板

image-20220517101532681

然后可以看到NVIDIA控制面板的详细内容,打开左下角的系统信息,查看支持的驱动版本。

image-20220517155642915 image-20220517155711427 image-20220517155734442

这里,NIVDIA-RTX3060-Laptop支持的最高驱动版本为472.56,CUDA版本为11.4。

还可以采用命令行的方式来查看驱动版本,打开命令行,输入

nvidia-smi
image-20220517155952416

CUDA toolkit

CUDA toolkit 下载

访问以下网站来查看和自己的驱动版本相匹配的CUDA toolkit版本

CUDA toolkit版本查看

image-20220517160436428

这里我选择的是 CUDA 11.4.0 GA,当然只要选择自己驱动所能支持的版本均可。

接下来访问以下网址下载对应的CUDA toolkit。

CUDA toolkit下载

image-20220517160718648

选择自己所需要的操作系统以及操作系统的版本还有下载的方式,这里以Windows 11 为例,选择的是Windows->x86_64->10->exe[local],最后一个选项的意思是直接本地安装还是选择联网安装。总体上来说下载速度还行,直接选择exe[local]就OK了。

image-20220517160926634

CUDA toolkit 安装

image-20220517161325435

直接双击运行安装程序即可,在这里他会弹出一个提示框,意思是选择一个临时的解压目录,这个目录会在安装完成之后删除,所以如果你C盘空间足够的话,可以不用修改这个目录,直接采用默认选项即可。毕竟安装完成之后会被删除,没什么太大影响。

img

首先他会检查系统的兼容性,由于可能安装的不是与自己对应驱动的最新版本,可能会有相关的提示信息,可以暂时忽略,进行下一步。

image-20220517161454189 image-20220517161508308

在这里推荐使用自定义的安装方式

image-20220517161523082

接下来要注意了,如果本机之前没有安装过Microsoft Visual Studio的话,可以考虑不勾选Visual Studio Integration选项。但是要注意,如果想要进行C++的CUDA开发的话,还是建议安装Microsoft Visual Studio,目前其与CUDA的兼容性应该是最好的,而且在使用nvcc进行编译的时候,如果没有安装过Microsoft Visual Studio可能会出现缺少相关组件的问题。这里还需要注意的是,Microsoft Visual Studio的版本一定要在2017-2019之间!

image-20220517161849455

接下来安装引导程序会让你指定安装的位置,这里是真正要安装的路径,一般来说建议直接默认,但是由于笔者C盘确实有点捉襟见肘,所以安装到了D盘。这里要注意,**千万不要和之前临时解压的目录一致 !!!**否则可能在安装完成之后被删掉。具体会有什么结果笔者也不知道,毕竟没敢尝试。

image-20220517162323850

接下来就是无脑下一步直到完成安装即可。

image-20220517161925838 image-20220517161931735 image-20220517161939901

CUDA toolkit 环境配置

在安装完成之后,可以打开系统的环境变量来检查CUDA是否已经加入到环境变量中了,默认情况下是自动添加到环境变量中的。

image-20220517162028552 image-20220517165259875

如果这里并没有被自动添加到环境变量,可以手动创建,并根据你之前选定的安装目录来确定相应的环境变量值。笔者的安装目录为 D:\NVIDIAGPU\CUDA\v11.4,可以按照自己的安装路径进行相应的调整。

CUDA toolkit 验证

以上步骤完成之后,CUDA toolkit基本就已经安装完成了,可以打开命令行,忐忑地验证一下是否真正安装成功。分别输入以下命令来验证nvcc的版本。

nvcc -V
nvcc --version

得到如下结果,就恭喜你完成了第一步CUDA toolkit的安装和环境配置。

image-20220517163005164

cuDNN

cuDNN可以认为是CUDA对于深度学习的一个加速库,如果想要用python做深度学习相关的内容的话,这个应该是必不可少的。用NVIDIA官方的解释是

NVIDIA cuDNN is a GPU-accelerated library of primitives for deep neural networks.

cuDNN 下载

首先访问以下网址来选择和之前安装的CUDA

cuDNN版本查看

笔者在此处选择的是 cuDNN v8.2.4 支持的是 CUDA 11.4,选择的是Windows x64版本。可以根据自己的CUDA版本和操作系统来选择对应的 cuDNN版本,这里一定要能够对应上!

image-20220517164252663

cuDNN 配置

下载完成后会得到一个压缩包,将压缩包解压出来。

image-20220517164709130

解压后的文件夹会得到如下内容,要注意,这里需要把这三个目录下的文件复制到,注意是复制到之前CUDA安装目录中对应的目录下。这就相当于是给原本的CUDA做了一个扩展,打了一个补丁,让他变得更加强大!

image-20220517164814124 image-20220517165028642

cuDNN 验证

OK以上步骤完成之后,cuDNN也配置完成了,接下来我们验证一下是否真正的配置成功了。切换到安装目录下的.\extras\demo_suite目录下,笔者的完整路径为D:\NVIDIAGPU\CUDA\v11.4\extras\demo_suite,可以根据自己的实际情况进行调整。

在该目录下打开命令行,分别执行bandwidthTest.exedeviceQuery.exe,如果顺利得到以下结果,就说明cuDNN的配置成功完成了。注意一定是要得到RESULT = PASS才算成功

image-20220517165648846 image-20220517165754305

OK截止到目前为止,CUDA的下载安装和配置都已经完成了接下来就是针对不同的开发需求的环境配置了,笔者只配置了pytorchC++的开发环境。


pytorch使用CUDA加速

pytorch准备

首先你需要有一个python,在这里笔者不多赘述如何安装和配置python开发环境,相关的文章很多python安装配置,应该是能够顺利完成的,笔者的python版本为3.7.2

为了能够使用GPU,我们需要下载支持GPU版本的pytorch,这里可以从pytorch官网进行下载,选择和自己的操作系统,安装途径以及CUDA版本匹配的pytorch版本。

image-20220517170431448

然后就在本机通过pip安装即可,这里可考虑采用国内的镜像源进行加速,如何使用国内镜像源的方法也有很多文章可以参考pip使用国内镜像源,在此不再赘述。

pytorch验证

在安装完成后,可以打开python尝试验证一下是否能够使用GPU。如果正常配置了python的环境变量,可以直接打开命令行输入python,笔者这里由于使用了虚拟环境,因此操作稍微有所不同。但是进入python交互终端之后的操作是一致的,可以输入以下命令来验证。

import torch
torch.__version__
#cuda是否可用
torch.cuda.is_available()
#返回GPU的数量
torch.cuda.device_count()
#返回gpu名字,设备索引默认从0开始
torch.cuda.get_device_name(0)

得到结果如下,那么恭喜你,能够愉快的让你的pytorch使用GPU加速了!

image-20220517171242966

配置CUDA开发环境

准备阶段

在使用nvcc对于.cu代码进行编译的时候,需要Visual Studio下MSVC中cl.exe支持,因此为了能够使用nvcc对代码进行编译,需要安装Visual Studio 2019(推荐)。具体的安装过程同样有很多文章可以参考Visual Studio 2019安装,在此不再赘述。这里需要注意的是,安装的时候需要勾选以下组件。

image-20220517202514308

在安装完成后,需要将cl.exe所在的目录添加到环境变量中去,一般来说这个目录藏得比较深。以笔者这里为例,在安装目录的VC子目录下可以找到。

D:\Microsoft Visual Studio\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64

image-20220517202726956

验证

写一个简单的cuda程序对于之前全部的环境搭建进行检验

#include <iostream>
#include <cuda_runtime.h>
#include <device_launch_parameters.h>

using namespace std;

__global__ void vec_add(int *a, int *b)
{
    int i = blockIdx.x;
    a[i] += b[i];
}

int main()
{
    const int N = 100;
    // ---- allocate the memory ---- //
    int *a, *b;
    cudaMallocManaged(&a, N*sizeof(int));
    cudaMallocManaged(&b, N*sizeof(int));
    // ---- initialize a,b ---- //
    for(int i=0;i<N;i++)
    {
        a[i] = i;
        b[i] = 2*i;
    }
    // ---- add b to a ---- //
    vec_add<<<N,1>>>(a,b);
    cudaDeviceSynchronize();
    // ---- display a ---- //
    for(int i=0;i<N;i++)
    {
        cout << a[i] << endl;
    }
}

在代码所在目录下打开命令行,输入以下编译命令,获得可执行文件

nvcc test.cu -o test
image-20220517203240441

到此为止,我们就可以正常cuda进行开发了!

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值