开发者

Error in a simple cuda compilation

开发者 https://www.devze.com 2023-03-13 06:31 出处:网络
FSPB_main.cpp int main(int args, char* argv[]){ ....... float *d_a; cudaMalloc( (void**)&d_a, 5*sizeof(float) );

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

FSP开发者_JAVA百科B_main.cpp: In function ‘int main(int, char**)’: FSPB_main.cpp:167:45: error: ‘cudaMalloc’ was not declared in this scope

What does this error mean? It's just a cudaMalloc and it suppose to be supported for the compiler right?

Can functions like cudaMalloc be used in a .cpp file? Do I need to create a .cu file just for anything what comes from CUDA?


You need to include the header files where the CUDA functions are declared:

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

and then on the cmd line you also need to add the PATH (option -I) where those includes are located.

On my system, version 2.1 of CUDA installed the header files on /usr/local/cuda. To compile, I would do something like:

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

Don't forget to add -I. to that command if your code depend on custom headers you wrote that are located in the same directory of the source code.

0

精彩评论

暂无评论...
验证码 换一张
取 消