我是一个新手,正在寻找帮助,使用g ++将一些已编译的CUDA目标代码链接到C++项目.已经有一些以前的问题和解决方案(这里和这里),但没有一个对我有用,我似乎无法弄清楚为什么.不幸的是,我为此坚持使用Windows.
我正在努力工作的简单示例如下所示:
// kernel.h
int cuda_vec_add(float *h_a, float *h_b, float *h_c, int n);
Run Code Online (Sandbox Code Playgroud)
CUDA代码添加两个向量.
// kernel.cu
#include <kernel.h>
__global__ void vec_add_kernel(float *a, float *b, float *c, int n) {
int i = threadIdx.x + blockDim.x * blockIdx.x;
if (i < n) c[i] = a[i] + b[i];
}
int cuda_vec_add(float *h_a, float *h_b, float *h_c, int n) {
float *d_a, *d_b, *d_c;
cudaMalloc(&d_a, n*sizeof(float));
cudaMalloc(&d_b, n*sizeof(float));
cudaMalloc(&d_c, n*sizeof(float));
cudaMemcpy(d_a, h_a, n*sizeof(float), cudaMemcpyHostToDevice);
cudaMemcpy(d_b, h_b, n*sizeof(float), cudaMemcpyHostToDevice); …Run Code Online (Sandbox Code Playgroud)