我在 Netbeans 中创建了新的 C++Application 并想要编译简单的 CUDA,例如:
#include <cstdlib>
// includes, system
#include <stdio.h>
// includes CUDA Runtime
#include <cuda_runtime.h>
// includes help
#include <helper_cuda.h>
#include <helper_functions.h> // helper utility functions
/*
*
*/
__global__ void add(int* a , int* b, int* c){
*c=*a+*b;
}
int main(int argc, char** argv) {
int a,b,c; //host copies of a,b,c
int* d_a,*d_b,*d_c; //device copies of a,b,c
int size=sizeof(int);
//allocate space for device copies of a,b,c
cudaMalloc((void**)&d_a,size);
cudaMalloc((void**)&d_b,size);
cudaMalloc((void**)&d_c,size);
//setup input
a=2;
b=7;
//copy inputs to device
cudaMemcpy(d_a,&a,size,cudaMemcpyHostToDevice);
cudaMemcpy(d_b,&b,size,cudaMemcpyHostToDevice);
//launch add() kernel on GPU device
add<<<1,1>>>(d_a,d_b,d_c);
return 0;
}
当我通过 IDE 构建时,它正在做的事情是:
“/usr/bin/make”-f nbproject/Makefile-Debug.mk QMAKE= 子项目=
.build-conf make[1]:进入目录/root/NetBeansProjects/my_CUDA_1' "/usr/bin/make" -f
nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/libmy_cuda_1.a
make[2]: Entering directory
/root/NetBeansProjects/my_CUDA_1' mkdir
-p 构建/调试/GNU-Linux-x86 rm -f 构建/调试/GNU-Linux-x86/cudaMain.o.d /usr/local/cuda-5.0/bin/nvcc
-c -g -I/usr/local/cuda-5.0/include -I/usr/local/cuda-5.0/samples/common/inc -MMD -MP -MF 构建/调试/GNU-Linux-x86/cudaMain。奥德-奥
build/Debug/GNU-Linux-x86/cudaMain.o cudaMain.cu nvcc fatal :
未知选项“MMD”
因此我可以通过从命令行手动编译而不使用这些选项来避免此错误:
me@comp:/root/NetBeansProjects/my_CUDA_1#
/usr/local/cuda-5.0/bin/nvcc -m64 -c -g -I/usr/local/cuda-5.0/include
-I/us r/local/cuda-5.0/samples/common/inc -o build/Debug/GNU-Linux-x86/cudaMain.o cudaMain.cu cudaMain.cu(28):
警告:变量“c”已声明但从未引用
cudaMain.cu(28):警告:变量“c”已声明但从未声明
引用的
me@comp:/root/NetBeans Projects/my_CUDA_1# ls
如何在 Netbeans 中配置什么才能在 IDE 中获得此类设置?