.c与.cpp是C与C++源代码,.cu是cuda源代码,核函数是GPU计算用的函数,用__global__标记
.c或.cpp是不可以使用直接调用“add <<<1,3 >>> (a_gpu, b_gpu, c_gpu, num);”类似这样来调用__global__核函数,如果想调用,可以在 .cu 文件中封装一层,就是在 .cu 文件中写一个传同样参数的核函数调用函数addKernel(int *a, int *b, int *c, int size),即在addKernel(int *a, int *b, int *c, int size)函数中调用核函数add<<<2, 128>>>(dev_a, dev_b, dev_c,size),然后在外边main.cpp文件中用调用普通函数的方法调用addKernel(int *a, int *b, int *c, int size)函数
#include "cuda_runtime.h"
#include "addfunc.cuh"
#include "device_launch_parameters.h"
#include <stdio.h>
#include <time.h>
int main(void)
{
// init data
int num = 10;
int a[10], b[10], c[10];
int* a_gpu, * b_gpu, * c_gpu;
for (int i = 0; i < num; i++)
{
a[i] = i;
b[i] = i * i;
}
cudaMalloc((void**)&a_gpu, num * sizeof(int));
cudaMalloc((void**)&b_gpu, num * s