Windows 下使用 Visual Studio 2019 进行 CUDA 编程

CUDA 安装

CUDA 的安装比较简单,下载了安装包以后一直点 Next 就行了,可以参考这个博客

安装完以后对 CUDA 进行一下测试,在命令行执行 nvcc -V 得到下面的结果说明安装成功

1
2
3
4
5
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:26_Pacific_Standard_Time_2019
Cuda compilation tools, release 10.1, V10.1.105

Visual Studio 配置

网上很多博客中,在 Visual Studio 中新建项目时都会有一个 NVIDIA 的模板,但是我在新建时并没有看到。所以我直接新建空白项目,然后为项目添加 CUDA 的依赖项。

然后在源文件中添加新建项,以 .cu 结尾,这里是 test.cu。然后对文件属性进行设置

设置内容为 配置属性-常规-项类型-CUDA C/C++

然后对项目属性进行配置。首先在 配置属性-VC++ 目录-包含目录 中添加 $(CUDA_PATH)\include,然后在 配置属性-VC++ 目录-包含目录 中添加 $(CUDA_PATH)\lib\x64,在 配置属性-链接器-常规-附加库目录 中添加 $(CUDA_PATH)\lib\x64,最后在 配置属性-链接器-输入-附加依赖库 中添加

1
cublas.lib;cublasLt.lib;cuda.lib;cudadevrt.lib;cudart.lib;cudart_static.lib;cudnn.lib;cudnn64_8.lib;cudnn_adv_infer.lib;cudnn_adv_infer64_8.lib;cudnn_adv_train.lib;cudnn_adv_train64_8.lib;cudnn_cnn_infer.lib;cudnn_cnn_infer64_8.lib;cudnn_cnn_train.lib;cudnn_cnn_train64_8.lib;cudnn_ops_infer.lib;cudnn_ops_infer64_8.lib;cudnn_ops_train.lib;cudnn_ops_train64_8.lib;cufft.lib;cufftw.lib;curand.lib;cusolver.lib;cusparse.lib;nppc.lib;nppial.lib;nppicc.lib;nppicom.lib;nppidei.lib;nppif.lib;nppig.lib;nppim.lib;nppist.lib;nppisu.lib;nppitc.lib;npps.lib;nvblas.lib;nvgraph.lib;nvml.lib;nvrtc.lib;OpenCL.lib

实际上上面这些就是 $(CUDA_PATH)\lib\x64 下的所有 lib 文件的文件名,每个版本的 CUDA 所包括的 lib 文件各不相同,我这里是 CUDA 10.1 版本的 lib 文件。

配置完以后就可以编译运行 .cu 文件了,打开 main.cu,输入以下测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include "cuda.h"
#include "cuda_runtime.h"

__global__ void hello() {
printf("Hello world from device\n");
}

int main() {
hello << <1, 1 >> > ();
printf("Hello world from host\n");
cudaDeviceSynchronize();
return 0;
}

得到结果

1
2
Hello world from host
Hello world from device

Windows 下使用 Visual Studio 2019 进行 CUDA 编程
https://thumarklau.github.io/2020/12/04/CUDA-PROGRAMMING-IN-WINDOWS/
作者
MarkLau
发布于
2020年12月4日
许可协议