来自GPU的Hello World-基于Win10+VS2019+CUDA 11.0搭建CUDA编程环境

  CPU和GPU 当代计算机的两个核心,GPU计算与CPU计算的结合,使得原本的计算性能得到大幅度的提高,两者功能的互补性使得CPU+GPU的异构并行计算得到快速发展。为了支持使用CPU+GPU异构架构来执行应用程序,核厂设计了被称为CUDA的一种通用并行计算平台和编程模型。
  CUDA Toolkit官方下载传送门!

  • 操作系统版本:Win10
  • Visual Studio版本:Visual Studio 2019
  • CUDA版本:CUDA Toolkit 11.0 RC

1、CUDA的安装

1.1、查看电脑显卡支持的CUDA的版本:

NVIDIA 控制面板–> 帮助–> 系统信息–> 组件:
查看CUDA支持的版本

1.2、安装成功后查看nvcc的安装版本

nvcc版本

1.3、配置环境变量

CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0
CUDA_PATH_V11_0: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0

  上述两项是安装完成Cuda后,已自动生成的环境变量的配置,我们需要自行添加的下述变量:

CUDA_BIN_PATH: %CUDA_PATH%\bin
CUDA_LIB_PATH: %CUDA_PATH%\lib\x64
CUDA_SDK_PATH: C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0
CUDA_SDK_BIN_PATH: %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH: %CUDA_SDK_PATH%\common\lib\x64

  并在系统变量Path中,添加一下四个信息:

%CUDA_BIN_PATH%
%CUDA_LIB_PATH%
%CUDA_SDK_BIN_PATH%
%CUDA_SDK_LIB_PATH%

1.4、安装验证

  验证安装是否成功,在官方的guideline中关于deviceQuery sample program指明的路径是:
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\bin\win64\Release
但是实际验证中,该程序的路径在:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\demo_suite
  执行deviceQuery.exe 和 bandwidthTest.exe进行验证。
验证
两次的运行结果都是PASS,则有关系统的环境配置就完成了。接下来运行安装Cuda之后的测试用例,测试用例所在路径根据你安装Cuda的路径,如:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0…

2、VS2019 配置CUDA工程(默认已安装VS,安装VS部分不再赘述)

  本部分将运行0_Simple\路径下的测试用例simplePrintf,需先打开工程后,在VS中完善相关配置。

2.1、增加.cu文件拓展名

2.1.1、工具–>选项–>文本编辑器–>文件拓展名, 新增扩展名 .cu 并将编辑器设置为:Microsoft Visual C++。
配置1
2.1.2、工具–>选项–>项目和解决方案–>VC++项目设置,添加要包括的扩展名".cu"。
配置-2

2.2、配置生成依赖项

2.2.1、配置生成自定义:右键打开的项目–>生成依赖项–>生成自定义–>勾选CUDA v11.0。
配置-3
2.2.2、配置.cu文件的配置属性:右键点击.cu文件–>将该类型文件的属性设置为 CUDA c/c++。
配置-4
2.2.3、运行测试用例。VS会调用nvcc编译器,编译.cu代码。
配置-5

OK,基本环境我们搭建成功了,接下来就来试试如何使用GPU来say Hello World!吧。

3、GPU编程测试demo

  使用VS新建空项目即可,并按上述步骤2.2配置项目。

#include "stdio.h"

/*
修饰符__global__表明这个函数是将会从CPU中调用,在GPU中进行执行。
并借此函数来启动内核函数。
*/
__global__ void hello_world_from_gpu(void)
{
	printf("Hello World from GPU\n");
	return;
}

int main(void)
{
	printf("Hello World from CPU\n");

	hello_world_from_gpu <<<1, 5 >>> ();
	/*
	三重尖括号里的参数表明的是相关的执行配置,用来表明使用多少线程来执行内核函数,
	在本例子中有5个GPU线程被系统所调用。
	*/
	cudaDeviceReset();
	/*
	执行完成后调用cudaDeviceReset()函数释放和清空与当前进程运行相关的资源。
	*/
	return 0;
}

测试结果:
hw
参考书籍:
1、《CUDA C权威编程指南》
2、CUDA Installation Guide for Microsoft Windows
参考博文:
1、 Win10 系统在 Visual Studio 2019 环境下配置 CUDA 10.1 + TensorFlow-GPU 1.14.0
2、 vs2017 配置cuda 项目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章