最近一直在封装原来做的一些模块,汗啊,要是原来就用C++写,这些工作都省了,主要还是我太懒了,哎。
开勇哥在他的博客里讲过怎么在C++类里面如何使用CUDA,但是我还是没看懂,于是自己研究了一下,并请教了一下公司的工程师,最终OK。
理论不说了,我给一个例子吧,相信大家看了这个例子就会了。
在这个例子里面一共有4个文件,分别是:
CCLASS.h
CCLASS.cpp
kernel.cu.h
kernel.cu
其中:
CCLASS.h
#include kernel.cu.h
{
public:
CCLASS(void);
~CCLASS(void);
void useKernelFunction(void);
private:
int n;
}
CCLASS.cpp
#include CCLASS.h
CCLASS::CCLASS(void)
{
}
CCLASS::~CCLASS(void)
{
}
void CCLASS::useKernelFunction(void)
{
void useKernel();
}
kernel.cu
__global__ static void kernel()
{
...
...
}
void useKernel()
{
kernel<<<>>>();
}
kernel.cu.h
#include /*some head you need,such as <cmath>*/
#define /*such as PI 3.1415*/
void useKernel();
只可惜不能传图,要是有图就清晰多了,下次如果能传我再补吧,就这么多了。