C++与CUDA混合编程

  最近在移植一个结构光三维重建的项目,中间呢,就用到了C++和CUDA的混合编程,中间也遇上了一些问题,就稍微总结整理了一下。

  关于如何进行CUDA环境的搭建,网上有很多教程,这里也就不在多说了。

  首先我们新建一个的工程,然后运行一下,得到如下的一个效果。

C++与CUDA混合编程_第1张图片
  然后我们通过点击解决方案中的「头文件」和「源文件」添加新建项,分别添加.cuh.cu,这两个文件就相当于是C++中的.h.cpp文件。
C++与CUDA混合编程_第2张图片
C++与CUDA混合编程_第3张图片
  在新建的.cuh文件中添加如下代码:

#ifndef CUDA_COMMON_H
#define CUDA_COMMON_H

extern "C" void CUDA_Printf();

#endif

  在新建的.cu文件中添加如下代码:

#include "cuda_common.cuh"
#include "cuda_runtime.h"
#include "stdio.h"

void CUDA_Printf()
{
  printf("This is CUDA Printf");
}

  右键单击解决方案,选择「生成自定义」,选择CUDA。
C++与CUDA混合编程_第4张图片
  右键点击.cu文件,将「属性」->「常规」->「项类型」更改为CUDA C/C++。
之后编译运行,即可得到正确的结果。
C++与CUDA混合编程_第5张图片
  这里面有两个输出语句,其中前一句是分别是C++和CUDA的输出。

你可能感兴趣的:(GPU,C++)