序
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的版本:
1.2、安装成功后查看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++。
2.1.2、工具–>选项–>项目和解决方案–>VC++项目设置,添加要包括的扩展名”.cu”。
2.2、配置生成依赖项
2.2.1、配置生成自定义:右键打开的项目–>生成依赖项–>生成自定义–>勾选CUDA v11.0。
2.2.2、配置.cu文件的配置属性:右键点击.cu文件–>将该类型文件的属性设置为 CUDA c/c++。
2.2.3、运行测试用例。VS会调用nvcc编译器,编译.cu代码。
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;
}
测试结果:
参考书籍:
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 项目
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116991.html