VS2015+CUDA配置编写GPU运行程序

1 安装软件

VS2015
CUDA
下载和安装方法这里不再赘述,如需要可参考之前文章。

2 工程建立及配置

2.1 工程建立

采用通常方法建立工程即可,没有特殊要求。

2.2 工程配置

项目右键-生成依赖项-生成自定义,弹出“Visual C++ 生成自定义文件”对话框,勾选CUDA x.x,其中x.x是安装CUDA的版本号,确定

3 CUDA源文件及设置

注意:需要在GPU上运行的CUDA代码不能写在cpp里,否则会出现’<<<‘不认识而无法编译的问题,要写在.cu文件里.
但.cu文件可以包含C/C++代码;

3.1 CUDA源文件添加

项目右键-添加-新建项-NVIDIA CUDA x.x-Code,可新建CUDA C/C++ File,扩展名为.cu,或CUDA C/C++ Header,扩展名为.cuh

3.2 CUDA源文件的编译设置

如果是按以上方法添加的.cu文件,这里就会自动配置好。
如果.cu是其他方法添加的,可能需要进行以下配置:
.cu文件右键-属性-弹出文件”属性页“,常规-项类型选择”CUDA C/C++“,应用

3.3 CUDA源文件的平台选择

.cu文件右键-属性-弹出文件”属性页“,CUDA C/C++,Common-Target Machine platform按项目要求选择32-bit或64-bit

4 CUDA常用头文件及库

4.1 CUDA常用头文件

CUDA常用功能一般包含以下头文件即可使用

#include <cuda_runtime.h>
#include <device_launch_parameters.h>

这些h文件一般位于C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\include,实际上CUDA安装时已经在系统中添加了一个环境变量,CUDA_PATH,指向CUDA的安装路径,所以在工程属性-C/C++ -常规-附加包含目录中加入:$(CUDA_PATH)\include即可。

4.2 CUDA常用库

cudart.lib

需要在工程属性-链接器-常规-附加库目录中加入:$(CUDA_PATH)\lib\x64(如果x86程序就x64改为win32)

5 CUDA基本函数

以上配置好后,就可以用CUDA编写GPU运行的程序了,这里列出几个关于GPU的基本函数,可以测试下,以下代码实际上只是取GPU的一些属性,所以写在cpp里即可,不需要写在cu文件里。

5.1 取系统GPU个数

int deviceCount;
cudaGetDeviceCount(&deviceCount);

5.2 取指定GPU设备信息

cudaDeviceProp devProp;
cudaGetDeviceProperties(&devProp, 0);	//取第0个GPU设备属性

5.3 按指定属性要求选取GPU设备

//定义需要的设备属性
cudaDeviceProp devicePropDefined;
memset(&devicePropDefined, 0, sizeof(cudaDeviceProp));  //设置devicepropDefined的值
devicePropDefined.major = 5;
devicePropDefined.minor = 2;

int devicedChoosed;  //选中的设备ID
cudaChooseDevice(&devicedChoosed, &devicePropDefined);  //查找符合要求的设备ID
cudaError_t cudaError = cudaSetDevice(devicedChoosed); //设置选中的设备为下文的运行设备

5.4 查看当前选择的GPU设备

int devicedChoosed;  //选中的设备ID
cudaGetDevice(&devicedChoosed);  //获取当前设备ID

参考

https://www.cnblogs.com/skyfsm/p/9673960.html

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值