我必须使用 4 个不同的 cpp 文件并包括一个 cuda 文件来编译三个单独的程序。
文件是:
final_serial.cpp
final_mpi.cpp
final_mpicuda.cpp and final_cuda.cu
final_mpicuda.cpp 和 final_cuda.cu 必须链接在一起。
我当前的 Makefile,只是为了编译前两个文件,serial 和 mpi,如下所示:
MPIDIR=/usr/lib64/mpich2/
CC=$(MPIDIR)/bin/mpic++
LIBS=-L$(MPIDIR)/lib -lmpl -lopa
all: serial mpi
mpi: final_mpi.cpp
$(CC) $(LIBS) -o $@ $^
serial: final_serial.cpp
g++ -o serial final_serial.cpp
想法是,为了链接final_mpicuda.cpp
在一起final_cuda.cu
,我必须执行以下命令:
/usr/local/cuda-5.0/bin/nvcc --compiler-bindir /usr/local/gcc/bin -c final_cuda.cu -o cudacode.o
/usr/lib64/mpich2/bin/mpic++ -lmpl -lopa -c final_mpicuda.cpp -o mpicode.o
/usr/lib64/mpich2/bin/mpic++ -lmpl -lopa mpicode.o cudacode.o -L/usr/local/cuda-5.0/lib64 -lcudart -o cuda
这会产生一个名为cuda
. 所以,我的问题是,如何cuda
使用上面提到的 Makefile 生成一个文件。我不知道如何将用于将这些文件链接在一起的三个命令合并到 Makefile 中。
谢谢