SU(Seismic Unix)与CUDA的混合编程

当前,众多的学者在Linux下面用SU做地震勘探的编程,并与CUDA做融合,进行GPU编程开发。本人研究FWI(全波形反演),也是用CUDA+SU的方式编程C语言的程序。

那么在编写MakeFile文件的时候,如何将CUDA的库文件与SU的库文件进行结合呢?下面我给大家一个例子,大家可以参考着进行自己的编写。

SU+CUDA的MakeFile文件示例:

# Makefile for GPU program based on SU
# Home path
SU_HOME = /home/yourname/su
SU_HOME1 = /home/yourname/su/src/Complex
MPI_HOME = /home/ry/openmpi
CUDA_HOME = /home/yourname/cuda9
# Which compiler
NVCC = nvcc 
# Include path
CFLAGS = -I$(SU_HOME)/include -I$(SU_HOME1)/include -I$(MPI_HOME)/include \
-I$(CUDA_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
CU_APPS=appname
all: ${CU_APPS}
%: %.cu
-$(NVCC) -O2 -arch=sm_35 $(@F).cu -o $@ $(LD) $(LFLAGS) $(CFLAGS)
clean:
rm -f ${CU_APPS} 

以上是我自己在用的一个Makefile文件,亲测有效。

你可能感兴趣的:(SU(seismic,Unix)专栏)