cpp文件调用cuda函数

本文详细介绍了如何安装CUDAToolkit,配置系统环境变量,更新CUDA驱动,以及在Visual Studio中使用CUDA编程。步骤包括安装CUDAToolkit,设置VisualStudioIntegration,配置项目属性,并通过实例演示了CUDA编程的基本流程,包括创建cpp和cu文件,最后成功运行并显示预期输出。
摘要由CSDN通过智能技术生成

1.安装CUDA Toolkit

CUDA Toolkit Archive | NVIDIA Developer

CUDA Toolkit 11.7 Downloads | NVIDIA Developer

安装之前可以在cmd输入nvcc -V看一下之前安装过没有 

下载完成后双击安装,临时解压路径可以选择默认,然后选择自定义

一定要勾选Visual Studio Intergration

 

 然后选择合适的安装位置即可开始安装

2.环境配置

在系统变量中添加

CUDA_BIN_PATH: %CUDA_PATH%\bin

CUDA_LIB_PATH: %CUDA_PATH%\lib\x64

 然后再在PATH中添加 %CUDA_BIN_PATH%和%CUDA_LIB_PATH%

 3.更新CUDA驱动

如果你的cuda驱动版本低于cuda版本,会导致无法使用,可以在cmd中使用nvidia-smi查看,cuda version表示最高能支持的cuda版本

 如果需要更新的话可以在NVIDIA GeForce Experience里更新

4.在Visual Studio中使用cuda编程

打开vs,新建项目,一般会出现 CUDA xx.x Runtime的模板,这是一个示例代码。

 这个代码一般是可以直接使用的。如果不行,建议百度

 5.cpp文件中调用cuda函数环境配置

新建C++项目,创建main.cpp,再创建一个test.cu文件,在test.cu文件中编写并行函数。

此时会报“无法打开源文件的错误”,需要进行几步操作

①右击项目——生成依赖项——生成自定义——勾选CUDA xx.x

 

②然后打开属性管理器,vs2022版本在 视图——其他窗口里面,打开以后右击Debug|x64添加新项目属性表(属性表文件可以节省配置时间开销、减少配置错误率,减少工程的重复设置,最终只要设置一次就可以了,尤其是当解决方案下有很多的工程需要修改配置时,其效果显而易见)

 双击编辑

在 VC++目录——包含目录 中添加$(CUDA_PATH)\include

在 VC++目录——库目录 中添加$(CUDA_PATH)\lib\x64

在 链接器——常规——附加库目录 中添加$(CUDA_PATH)\bin

在 链接器——输入——附加依赖项 中添加vxx.x/lib/x64下的所有.lib文件,一个一个加太麻烦可以在这个文件夹下打开cmd,输入dir /B >name.txt,会生成一个包含该目录所有文件名称的txt文件,记得把name.txt删掉

然后项目属性就配置ok了,这个.props文件是可以复用的,当有新项目的时候复制过去就行了。

6.试验

一共创建三个文件

1.main.cpp文件

#include "main.h"

int main()
{
	printHello(10);
	return 0;
}

2.main.h文件

#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <iostream>
extern "C" void printHello(int numPrint);

3.printHello.cu文件

#include "main.h"
__global__ void helloKernel(int numElements)
{

	int i = blockDim.x * blockIdx.x + threadIdx.x;

	if (i < numElements)
	{
		printf("%d: Hello, CUDA!\n ", i);
	}

}

void printHello(int numPrint)
{
	int threadsPerBlock = 256;
	int blocksPerGrid = (numPrint + threadsPerBlock - 1) / threadsPerBlock;
	helloKernel << <threadsPerBlock, blocksPerGrid >> > (numPrint);

	cudaDeviceSynchronize();
}

然后编译运行,如果一切正常,会出现这样的输出:

 表示实验成功!!!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值