Skip to content
Makefile 1.37 KiB
Newer Older
petros.anastasiadis's avatar
petros.anastasiadis committed
CC=g++
ICC =icc

DEBUG ?= 1

CFLAGS=-O3 -lm -Wall -mavx -march=ivybridge -mtune=ivybridge -fopenmp
#CFLAGS=-O3 -lm -Wall -mavx2 -mfma  -march=haswell -mtune=haswell 

#CFLAGS=-O3 -Wall -xCORE-AVX-I
#CFLAGS=-O3 -Wall -xCORE-AVX2 
#ICFLAGS=-O3 -Wall -qopenmp -axCORE-AVX2,CORE-AVX-I

petros.anastasiadis's avatar
petros.anastasiadis committed
MPI_PREFIX = $(I_MPI_ROOT)
petros.anastasiadis's avatar
petros.anastasiadis committed
CUDA_PREFIX = $(CUDAROOT)
GPU_MPI_CXX = nvcc -L $(I_MPI_ROOT)/lib64 -lmpi -ccbin mpiicc
petros.anastasiadis's avatar
petros.anastasiadis committed
GPU_CXX = nvcc

LDFLAGS ?=-L $(CUDA_PREFIX)/lib64 -lcudart -lcublas -lcusparse -lm -lrt

GPU_COMPILE = nvcc -I $(CUDA_PREFIX)/include  -arch sm_35
GPU_MPI_COMPILE = $(GPU_MPI_CXX) -I $(CUDA_PREFIX)/include -I $(I_MPI_ROOT)/include -arch sm_35
petros.anastasiadis's avatar
petros.anastasiadis committed
CPU_COMPILE = $(CC) $(CFLAGS) 
petros.anastasiadis's avatar
petros.anastasiadis committed

ifeq ($(DEBUG), 1)
	CPU_COMPILE 	+= -D_DEBUG_
	GPU_COMPILE 	+= -D_DEBUG_
	GPU_MPI_COMPILE += -D_DEBUG_
petros.anastasiadis's avatar
petros.anastasiadis committed
endif

CPU_COMPILE_OBJ= $(CPU_COMPILE) -c
GPU_COMPILE_OBJ= $(GPU_COMPILE) -c

EXT_DIR = /users/guest/petyros/Training/External_Functions/

petros.anastasiadis's avatar
petros.anastasiadis committed
SOURCE = cuBLAS.cu cuBLAS_MultiGPU.cu
petros.anastasiadis's avatar
petros.anastasiadis committed
OBJECTS = util.o matrix_op.o timer.o input.o gpu_util.o
petros.anastasiadis's avatar
petros.anastasiadis committed
PROGRAMS= cuBLAS cuBLAS_MultiGPU
petros.anastasiadis's avatar
petros.anastasiadis committed

all: $(PROGRAMS)

petros.anastasiadis's avatar
petros.anastasiadis committed
cuBLAS_MultiGPU: $(OBJECTS) cuBLAS_MultiGPU.cu
	$(GPU_MPI_COMPILE) -o $@ $(OBJECTS) $(LDFLAGS) $@.cu

petros.anastasiadis's avatar
petros.anastasiadis committed
cuBLAS: $(OBJECTS) cuBLAS.cu
	$(GPU_COMPILE) -o $@ $(OBJECTS) $(LDFLAGS) $@.cu

gpu_util.o: $(EXT_DIR)gpu_util.cu
	$(GPU_COMPILE_OBJ) -o $@ $<

%.o: $(EXT_DIR)%.c
	$(CPU_COMPILE_OBJ) -o $@ $<

%.o: %.h

clean:
	$(RM) $(PROGRAMS) $(OBJECTS)