view Makefile @ 1:ae0773634e0b tip

project report.
author Sofia Dimoudi <sofia.dimoudi@gmail.com>
date Fri, 16 Sep 2016 15:49:19 +0100
parents 2b63f74a3010
children
line wrap: on
line source

CXX := g++
NVCC := nvcc

CUDA_HOME := /usr/local/cuda
CUDA_SAMP_DIR := $(CUDA_HOME)/samples/common
INC	:= -I$(CUDA_HOME)/include -I. -I$(CUDA_SAMP_DIR)/inc
LIB	:= -L$(CUDA_HOME)/lib64 -lcudart -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -fopenmp
 

# CUDA architecture code generation flags (see README.txt)
GENCODE_SM30	:= -gencode arch=compute_20,code=sm_20  
GENCODE_SM30	:= -gencode arch=compute_30,code=sm_30  
GENCODE_SM35	:= -gencode arch=compute_35,code=sm_35  
GENCODE_SM37	:= -gencode arch=compute_37,code=sm_37 	
GENCODE_SM52	:= -gencode arch=compute_52,code=sm_52	

NVCCFLAGS	:= $(GENCODE_SM52) --ptxas-options=-v --use_fast_math  -Xcompiler -Wall

ifeq ($(CXX), g++)
CXXFLAGS	+= -m64 -O3 -march=native -fopenmp
else ifeq ($(CXX), icpc)
CXXFLAGS	+= -m64 -O3 -xhost -openmp  # -parallel (this seemed to perform worse))	
endif

ifeq ($(nvdbg),1)
NVCCFLAGS += -g -G
endif

ifeq ($(linfo),1)
NVCCFLAGS += -lineinfo
endif

CXXSRC := filtermain.cpp  filters_host.cpp
CXXOBJS := filtermain.o  filters_host.o
CUSRC  := filters_cuda.cu
CUOBJS := filters_cuda.o 
NVLOBJ := filterlink.o

all: filters

$(CUOBJS): %.o: %.cu
	$(NVCC) -dc -c $< -o $@ $(NVCCFLAGS) $(INC)

filterlink.o: $(CUOBJS)
	$(NVCC) -arch=sm_52 -dlink  $(CUOBJS)  $(NVCCFLAGS) $(INC) -o $(NVLOBJ) 

$(CXXOBJS): %.o: %.cpp 
	$(CXX) $(INC) $(CXXFLAGS) -o $@  -c $<

filters: $(CXXOBJS) $(CUOBJS) $(NVLOBJ)
	$(CXX) $(CXXOBJS) $(CUOBJS) $(NVLOBJ)  $(LIB) -o filters   


clean:
	rm -f filters 
	rm -f *.o