准备
安装好VS2017和CUDA11.3,这两个软件的安装都很简单,网上也有很多的教程,对于对应的系统环境变量的配置,一般安装成功后,都会自动添加好,只需要按照网上的教程检查一下即可,下面我会给出我个人感觉不错的安装教程。
VS2017安装
CUDA安装
CUDA自带例程
(1)首先测试CUDA安装是否成功,进入cmd,输入nvcc -V,得到的输出,如图所示,表示cuda安装成功,
(2)之后,在进入CUDA的SDK实例安装目录,默认是C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.3(该文件夹是隐藏文件夹,需要显示出来),显示隐藏文件夹的办法在下方链接:(3)在VS2017中打开Samples_vs2017.sln文件,等待加载完成
第一次的加载过程较慢,耐心等待。
(4)加载完毕后,点击本地Windowns调试器,运行解决方案,会出现类型的提醒
这是由于设备中不存在对应的符号文件,但这是文件只用于进入对应的dll代码,不影响代码运行,如果想解决可以按照以下操作;
点击工具->选项
点击调试->符号
勾选Microsoft服务器,呼出的对话框点击确定
回到代码页面,再次点击运行,会自动下载所需的PDB文件,第一次加载过程时间教程,之后大部分的PDB文件会被加载成功,但仍有部分的PDB未加载成功,这是由于微软的服务器中不存在对应的文件,只能从别的服务器处下载文件,但是缺少PDB文件不影响程序运行。
(5)运行其中一项例程,bicubicTexture.sln,右键该文件,点击调试->启动新实例
(6)首次加载过程过程较慢,最终输出结果如图所示:
第一个CUDA程序
(1)新建一个项目,选择控制台应用
(2)右键源文件夹,添加->新建项,选择c++文件,文件名为hello.cu
(3)右键解决方案,生成依赖项->生成自定义
(4)勾选CUDA11.3
(5)右键Hello.cu,属性->项类型->选择cuda c/c++
(6)右键解决方案,属性->链接器->输入->附加依赖项->添加 cudart.lib;
(7)链接器->常规->附加库目录,添加 $(CUDA_PATH_V11_3)\lib$(Platform);
(8)工具->选项->文本编辑器->文件扩展名->添加cu、cuh两个文件扩展名,编辑器选择Microsoft Visual C++
(8)至此,编译环境的搭建就完成了,下面是测试代码
1 #include< stdio.h>
2 #include "cuda_runtime.h"
3
4 #include "device_launch_parameters.h"
5
6 bool InitCUDA()
7 {
8 int count;
9
10 cudaGetDeviceCount(&count);
11
12 if (count == 0)
13 {
14 fprintf(stderr, "There is no device.\n");
15 return false;
16 }
17
18 int i;
19
20 for (i = 0; i < count; i++)
21 {
22 cudaDeviceProp prop;
23 if (cudaGetDeviceProperties(&prop, i) == cudaSuccess)
24 {
25 if (prop.major >= 1)
26 {
27 break;
28 }
29 }
30 }
31
32 if (i == count)
33
34 {
35
36 fprintf(stderr, "There is no device supporting CUDA 1.x.\n");
37
38 return false;
39
40 }
41 cudaSetDevice(i);
42 return true;
43
44 }
45
46
47 int main()
48 {
49 if (!InitCUDA())
50 {
51 return 0;
52 }
53
54 printf("HelloWorld, CUDA has been initialized.\n");
55 return 0;
56 }
输出结果如图所示: