CUDA配置环境(一):Windowns10+VS2017+CUDA11.3

CUDA配置环境(一):Windowns10+VS2017+CUDA11.3

准备

安装好VS2017和CUDA11.3,这两个软件的安装都很简单,网上也有很多的教程,对于对应的系统环境变量的配置,一般安装成功后,都会自动添加好,只需要按照网上的教程检查一下即可,下面我会给出我个人感觉不错的安装教程。

VS2017安装

http://c.biancheng.net/view/456.html

CUDA安装

https://blog.csdn.net/weixin_43848614/article/details/117221384

CUDA自带例程

(1)首先测试CUDA安装是否成功,进入cmd,输入nvcc -V,得到的输出,如图所示,表示cuda安装成功,
输在这里插入图片描述

(2)之后,在进入CUDA的SDK实例安装目录,默认是C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.3(该文件夹是隐藏文件夹,需要显示出来),显示隐藏文件夹的办法在下方链接:

https://jingyan.baidu.com/article/acf728fd2853fef8e410a37f.html

(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;
这里添加的库C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\lib中存在的库,可以根据工程的需求选择添加哪些
在这里插入图片描述

(7)链接器->常规->附加库目录,添加 $(CUDA_PATH_V11_3)\lib$(Platform);
在这里插入图片描述
(8)工具->选项->文本编辑器->文件扩展名->添加cucuh两个文件扩展名,编辑器选择Microsoft Visual C++
在这里插入图片描述

(8)至此,编译环境的搭建就完成了,下面是测试代码

#include< stdio.h>
#include "cuda_runtime.h" 

#include "device_launch_parameters.h" 

bool InitCUDA()

{

	int count;

	cudaGetDeviceCount(&count);

	if (count == 0)

	{

		fprintf(stderr, "There is no device.\n");

		return false;

	}

	int i;

	for (i = 0; i < count; i++)

	{

		cudaDeviceProp prop;

		if (cudaGetDeviceProperties(&prop, i) == cudaSuccess)

		{

			if (prop.major >= 1)

			{

				break;

			}

		}

	}

	if (i == count)

	{

		fprintf(stderr, "There is no device supporting CUDA 1.x.\n");

		return false;

	}

	cudaSetDevice(i);

	return true;

}



int main()

{

	if (!InitCUDA())

	{

		return 0;

	}

	printf("HelloWorld, CUDA has been initialized.\n");
	

	return 0;

}

输出结果如图所示:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值