1. 程式人生 > >CUDA、SU、MPI和Madagascar混合程式設計的Makefile檔案配置

CUDA、SU、MPI和Madagascar混合程式設計的Makefile檔案配置

本人從事地震勘探的科研工作,在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}

希望對大家有用,歡迎留言。