Page MenuHomec4science

Makefile.GPU.intel
No OneTemporary

File Metadata

Created
Thu, Nov 28, 20:36

Makefile.GPU.intel

PROGRAM_NAME := Lenstool_HPC
#
all: $(PROGRAM_NAME) $(PROGRAM_NAME_GPU)
#CXX=g++ -lm -ffast-math -ftree-loop-vectorize
CXX=icpc
#
program_CXX_SRCS := $(wildcard *.cpp)
program_CXX_OBJS := ${program_CXX_SRCS:.cpp=.o}
#
program_C_SRCS := $(wildcard *.c)
program_C_OBJS := ${program_C_SRCS:.c=.o}
#
program_CU_SRCS := $(wildcard *.cu)
program_CU_OBJS := ${program_CU_SRCS:.cu=.cu.o}
#
#
program_INCLUDE_DIRS := . /usr/local/cuda/include/ #C++ Include directories
program_INCLUDE_DIRS += $(CFITSIO_ROOT)/include
program_INCLUDE_DIRS += $(LENSTOOL_ROOT)/include
program_INCLUDE_DIRS += $(LENSTOOL_ROOT)/liblt
program_INCLUDE_DIRS += $(GSL_ROOT)/include
program_INCLUDE_DIRS += $(LENSTOOLHPC_ROOT)/src
program_INCLUDE_DIRS += $(CUDAROOT)/include
#
# libs
#
program_INCLUDE_LIBS += $(CFITSIO_ROOT)/lib #Include libraries
program_INCLUDE_LIBS += $(LENSTOOL_ROOT)/src
program_INCLUDE_LIBS += $(LENSTOOL_ROOT)/liblt
program_INCLUDE_LIBS += $(LENSTOOLHPC_ROOT)/src
program_INCLUDE_LIBS += $(GSL_ROOT)/lib
program_INCLUDE_LIBS += $(WCSTOOL_ROOT)
program_INCLUDE_LIBS += $(CUDAROOT)/lib64
#
#
# Compiler flags
CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))
CPPFLAGS += $(foreach includelib,$(program_INCLUDE_LIBS),-L$(includelib))
#CPPFLAGS += -D__WITH_LENSTOOL
CPPFLAGS += -D__WITH_GPU
CPPFLAGS += -qopenmp -g -O3 -Wall -pedantic
CPPFLAGS += -fPIC
CPPFLAGS += -D_double
#
#LDFLAGS := -llenstool -llenstoolhpc -llenstoolhpc_GPU -llt -lcfitsio -lwcs -lgsl -lgslcblas #Do not keep lenstool for the float calculation, it creates conflictinthe structure.h file
LDFLAGS := -llenstoolhpc -llenstoolhpc_GPU -llt -lcfitsio -lwcs -lgsl -lgslcblas
LDFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))
LDFLAGS += $(foreach includelib,$(program_INCLUDE_LIBS),-L$(includelib))
LDFLAGS += -qopenmp
NVFLAGS := -O3 -ccbin icpc -Xcompiler '-Wall -fPIC' -D__WITH_LENSTOOL
NVFLAGS += -D_double
NVFLAGS += -gencode arch=compute_60,code=sm_60
#
NVFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))
NVFLAGS += $(foreach includelib,$(program_INCLUDE_LIBS),-L$(includelib))
#
NVLDFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))
NVLDFLAGS += $(foreach includelib,$(program_INCLUDE_LIBS),-L$(includelib))
NVLDFLAGS += -lcudart -lcudadevrt
#
#NVLDFLAGS += $(LDFLAGS)
#
#LDFLAGS += -qopenmp
#
#
GPU_OBJECTS = $(program_CU_OBJS)
CPU_OBJECTS = $(program_CXX_OBJS) $(program_C_OBJS)
#
%.cu.o: %.cu #%.cuh
nvcc $(NVFLAGS) -o $@ -c $<
#
%.cpp: %.cpp %.h
$(CXX) -o $@ $< $(CPPFLAGS) -llt
#
$(PROGRAM_NAME): $(CPU_OBJECTS)
icpc -o $@ $(program_CXX_OBJS) $(program_C_OBJS) $(LDFLAGS)
clean:
@- $(RM) $(PROGRAM_NAME) $(OBJECTS) *~ *.o *.optrpt
distclean: clean
.PHONY: all clean distclean

Event Timeline