CUDA、SU、MPI和Madagascar混合程式設計的Makefile檔案配置
阿新 • • 發佈:2019-01-02
本人從事地震勘探的科研工作,在Ubuntu系統中用CUDA、SU、MPI和Madagascar做C語言的混合程式設計。多語言混合程式設計,關鍵之處在於Makefile檔案的配置Makefile檔案的配置。在此給出一個簡單的示例,供大家參考。
Makefile檔案:
# # Makefile for GPU program based on SU,Madagascar,MPI and CUDA
# Home path
SU_HOME = /home/xx/su
SU_HOME1 = /home/xx/su/src/Complex
MPI_HOME = /home/xx/openmpi
CUDA_HOME = /home/xx/cuda9
MADA_HOME = /home/xx/madagascar2.0.1/madagascar-2.0
# Which compiler
NVCC=nvcc
# Include path
IFLAGS = -I$(SU_HOME)/include -I$(SU_HOME1)/include \
-I$(CUDA_HOME)/include -I$(CUDA_HOME)/samples/common/inc \
-I$(MPI_HOME)/include -I$(MADA_HOME)/include
# Lib path
LFLAGS = -L$(SU_HOME)/lib -L$(SU_HOME1)/lib -L$(MPI_HOME)/lib \
-L$(CUDA_HOME)/lib64 -L$(MADA_HOME)/lib
LD = -lsu -lpar -lcwp -lm -lcublas -lcurand -lcufft -lcusparse -llapack \
-lgomp -Xcompiler -fopenmp -lmpi -lrsf
CU_APPS=fdm2d_tti_psa_gpu_mpi
all: ${CU_APPS}
%: %.cu
-$(NVCC) -O2 -arch=sm_60 $(@F).cu -o [email protected] $(LD) $(LFLAGS) $(IFLAGS)
clean:
rm -f ${CU_APPS}
希望對大家有用,歡迎留言。