本人研究地震勘探的全波形反演,最近在用CUDA+MPI加速反演过程。
写代码过程中最关键的是Makefile文件的编写,也是最难的。下面给出基于SU(Seismic Unix)的CUDA+MPI开发过程的Makefile文件:
# Makefile for GPU program based on SU (CUDA+MPI+SU)
# Home path
SU_HOME = /home/xx/su
SU_HOME1 = /home/xx/su/src/Complex
MPI_HOME = /home/xx/openmpi
CUDA_HOME = /home/xx/cuda9
# Which compiler
NVCC=nvcc
# Include path
CFLAGS = -I$(SU_HOME)/include -I$(SU_HOME1)/include \
-I$(CUDA_HOME)/include -I$(CUDA_HOME)/samples/common/inc \
-I$(MPI_HOME)/include
# Lib path
LFLAGS = -L$(SU_HOME)/lib -L$(SU_HOME1)/lib \
-L$(MPI_HOME)/lib \
-L$(CUDA_HOME)/lib64
LD = -lsu -lpar -lcwp -lm \
-lcublas -lcurand -lcufft -lcusparse -llapack \
**-lgomp -Xcompiler -fopenmp -lmpi**
CU_APPS=fdm2d_gpu_mpi
all: ${CU_APPS}
%: %.cu
-$(NVCC) -O2 -arch=sm_60 $(@F).cu -o $@ $(LD) $(LFLAGS) $(CFLAGS)
clean:
rm -f ${CU_APPS}
希望对大家有用。有什么问题,欢迎留言。