小编Har*_*dik的帖子

从常规C++代码调用CUDA代码 - 整理extern"C"

我试图从C++文件调用CUDA(主机)函数,单独编译:

sample.cpp C++文件:

extern "C" void cuda_function(int a, int b);
int main(){
  //statements
  cuda_function(23, 34);
  //statements
}
Run Code Online (Sandbox Code Playgroud)

cuda.cu 文件:

#include <cuda.h>
__global__ void kernel(int a, int b)
{
  //statements
}
void cuda_function(int a, int b){
  //cuda_function
}
Run Code Online (Sandbox Code Playgroud)

构建命令:

g++ -c sample.cpp
nvcc -c cuda.cu
nvcc -o sample sample.o cuda.o
Run Code Online (Sandbox Code Playgroud)

但这会给链接器错误:

sample.o: In function `main':
sample.cpp:(.text+0x163): undefined reference to `cuda_function'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

这种C++和CUDA集成方法有什么问题?

c++ integration compatibility cuda

5
推荐指数
1
解决办法
4598
查看次数

标签 统计

c++ ×1

compatibility ×1

cuda ×1

integration ×1