基于Visual Studio 2015的CUDA编程(一):基本配置

目录

  • 一、CUDA简介
  • 二、CUDA的下载和安装
  • 三、创建CUDA项目
  • 四、CUDA的C代码

一、CUDA简介

CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行。
目前为止,基于 CUDA 的 GPU 销量已达数以百万计,软件开发商、科学家以及研究人员正在各个领域中运用 CUDA,其中包括图像与视频处理、计算生物学和化学、流体力学模拟、CT 图像再现、地震分析以及光线追踪等。

二、CUDA的下载和安装

下载CUDA应用程序时,需要提前确定电脑显卡的驱动程序版本对应的CUDA版本。
1)进入控制面板,找到NVIDIA控制面板,双击进入。

2)点击“帮助”按钮下的“系统信息”,得到显卡的型号为GeForce 920M,驱动程序版本为376.51。

3)通过CUDA官网提供的信息,获取CUDA版本对应的显卡驱动程序版本。

CUDA Toolkit and Corresponding Driver Versions

4)搜索对应的CUDA版本并下载。

CUDA官网下载

5)安装CUDA

网上可以找到许多安装教程的文章,其中我觉得有一篇博文比较好,里面还提到了如何配置深度学习的库cuDNN,如果只是做并行计算可以不用装这个库。

CUDA安装教程

三、创建CUDA项目

1)点击“文件”,选择“新建”,“项目”,定位到“Visual C++”选项卡。

2)选择“空项目”,解决方案和名称可以自己输入,如图中所示,项目保存的位置可以自己更改。

3)选择“源文件”,点击鼠标右键,选择“添加”→“新建项”,再选择“CUDA C/C++ File”,就可以创建一个.cu文件。

4)选中“Example_1”,点击鼠标右键,选择“生成依赖项“→“生成自定义”→选择“CUDA”CUDA8.0→确定。

基于Visual Studio 2015的CUDA编程(一):基本配置_第1张图片
5)选中“Hello_GPU.cu”文件,点击鼠标右键,选择“属性”→“配置属性”→“常规”→“项类型”→“CUDA C/C++”。

6)选中“Example_1”,点击鼠标右键,选择“属性“→“VC++目录”,在“包含目录”中添加:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
在“库目录”中添加:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
(x64表示电脑的操作系统为64位,以上两个路径与自己安装CUDA的位置有关)。

点击“CUDA C/C++”选项,选择“Common”,将目标机器平台设置为“64-bit”。

7)选中“Example_1”,点击鼠标右键,选择“属性“→“链接器”→“输入”→“附加依赖项”。

添加自己需要的.lib文件名称,例如:

cublas.lib
cuda.lib
cudart.lib
cufft.lib

.lib文件所在的位置如下图所示。
基于Visual Studio 2015的CUDA编程(一):基本配置_第2张图片
上面其实就是“库目录”下的文件。
到此,Visual Studio 2015里面所有为CUDA编程而设置的选项都已经操作完成,接下来可以利用CUDA编程调用GPU实现并行运算的功能。

四、CUDA的C代码

CPU和GPU实现的功能相同,程序执行的方式有差异。

#include
#include "cuda_runtime.h"
#include "device_launch_parameters.h"

void cpu()
{
	printf("hello,cpu\n");
}

__global__ void gpu()
{
	printf("hello,gpu\n");
}

int main()
{
	cpu();
	gpu << <1, 1 >> >();
	cudaDeviceSynchronize();
}

程序运行结果如图
基于Visual Studio 2015的CUDA编程(一):基本配置_第3张图片
为了解决程序运行后控制台出现闪退的问题,可以进行下面的设置。
选中“Example_1”,点击鼠标右键,选择“属性“→“链接器”→“系统”→“子系统”,在“子系统里面”选择“控制台”。

各位志同道合的朋友,如果你们觉得这篇博文写的不错或者正好解决了你的问题,请动动手指,点个赞 再走。
有什么疑问可以在文章底下评论,我会逐条回答,既可以解决你的问题,还有可能给其他人提供解决的思路。有些问题需要私聊的可以私信我哦!

你可能感兴趣的:(CUDA学习笔记,visual,studio,CUDA编程,C/C++)