gpt4 book ai didi

c++ - 一个简单的cuda编译出错

转载 作者:可可西里 更新时间:2023-11-01 15:02:48 25 4
gpt4 key购买 nike

FSPB_main.cpp

int main(int args, char* argv[]){    
.......

float *d_a;
cudaMalloc( (void**)&d_a, 5*sizeof(float) );

}

$ nvcc -L/usr/local/cuda/lib -lcutil -lcudpp -lcuda -lcudart -c -o FSPB_main.o FSPB_main.cpp

FSPB_main.cpp: In function ‘int main(int, char**)’: FSPB_main.cpp:167:45: error: ‘cudaMalloc’ was not declared in this scope

这个错误是什么意思?它只是一个 cudaMalloc,编译器应该支持它吧?

可以在 .cpp 文件中使用像 cudaMalloc 这样的函数吗?我是否需要为来自 CUDA 的任何内容创建一个 .cu 文件?

最佳答案

您需要包含声明 CUDA 函数的头文件:

#include <cuda_runtime_api.h>
#include <cuda.h>

然后在 cmd 行上,您还需要添加这些包含所在的 PATH(选项 -I)。

在我的系统上,CUDA 2.1 版将头文件安装在 /usr/local/cuda 上。要编译,我会做类似的事情:

nvcc -I/usr/local/cuda/include -L/usr/local/cuda/lib -lcutil -lcudpp -lcuda -lcudart -c -o FSPB_main.o FSPB_main.cpp

如果您的代码依赖于您编写的位于源代码同一目录中的自定义 header ,请不要忘记将 -I. 添加到该命令。

关于c++ - 一个简单的cuda编译出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6374609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com