Skip to content
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,12 @@ endif
CFLAGS += -DGKYL_HAVE_LUA
endif

USING_LAPACK_LITE =
ifeq (${USE_LAPACK_LITE}, 1)
USING_LAPACK_LITE = yes
CFLAGS += -DGKYL_HAVE_LAPACK_LITE
endif

# Build directory
ifdef USING_NVCC
BUILD_DIR = cuda-build
Expand Down
10 changes: 0 additions & 10 deletions alltargets.mak

This file was deleted.

22 changes: 22 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ USE_CUDSS=
USE_LUA=
USE_MPI=
USE_NCCL=
USE_LAPACK_LITE=

CONF_LUA_LIB=luajit-5.1

Expand Down Expand Up @@ -62,6 +63,7 @@ CUDA_ARCH CUDA architecture flag to specify compute capability.
--use-nccl [no] Build NCCL-dependent code
--use-cudss [no] Build CUDSS-dependent code
--use-lua [no] Build Lua dependent code
--use-lapack-lite [no] Build LAPACK-lite (lower efficiency that OpenBLAS)
--app [all] What app to build? One of
core, moments, vlasov, gyrokinetic, pkpm, all

Expand Down Expand Up @@ -156,6 +158,10 @@ do
[ -n "$value" ] || die "Missing value in flag $key."
APP="$value"
;;
--use-lapack-lite)
[ -n "$value" ] || die "Missing value in flag $key."
USE_LAPACK_LITE="$value"
;;
--lapack-inc)
[ -n "$value" ] || die "Missing value in flag $key."
LAPACK_INC_DIR="$value"
Expand Down Expand Up @@ -267,6 +273,13 @@ else
USE_LUA=
fi

if [ "$USE_LAPACK_LITE" = "yes" ]
then
USE_LAPACK_LITE=1
else
USE_MPI=
fi

echo "Building APP " $APP

if [ "$APP" = "core" ]
Expand Down Expand Up @@ -315,6 +328,13 @@ fi
: "${LAPACK_LIB_DIR=$PREFIX/OpenBLAS/lib/}"
: "${LAPACK_LIB_NAME=openblas}"

if [ "$USE_LAPACK_LITE" = 1 ]
then
LAPACK_INC_DIR=.
LAPACK_LIB_DIR=.
LAPACK_LIB_NAME=m
fi

# MPI specific paths and flags
: "${CONF_MPI_INC_DIR=$PREFIX/openmpi/include/}"
: "${CONF_MPI_LIB_DIR=$PREFIX/openmpi/lib/}"
Expand Down Expand Up @@ -365,6 +385,8 @@ USE_MPI=$USE_MPI
CONF_MPI_INC_DIR=$CONF_MPI_INC_DIR
CONF_MPI_LIB_DIR=$CONF_MPI_LIB_DIR

USE_LAPACK_LITE=$USE_LAPACK_LITE

USE_NCCL=$USE_NCCL
CONF_NCCL_INC_DIR=$CONF_NCCL_INC_DIR
CONF_NCCL_LIB_DIR=$CONF_NCCL_LIB_DIR
Expand Down
19 changes: 11 additions & 8 deletions core/Makefile-core
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# -*- makefile-gmake -*-

SRC_DIRS := minus $(KERNELS_DIR) zero apps
ifdef USING_LAPACK_LITE
SRC_DIRS += minus/lapack_lite
endif

UNIT_DIRS := unit

PREFIX ?= ${HOME}/gkylsoft


LLIB := ../$(BUILD_DIR)/core/libg0core.so
SLLIB :=
SRCS := $(shell find $(SRC_DIRS) -name *.c)
Expand Down Expand Up @@ -35,11 +38,11 @@ REGS := $(patsubst %.c,../${BUILD_DIR}/core/%,$(wildcard creg/rt_*.c))

KERN_INC_DIRS = $(shell find $(KERNELS_DIR) -type d)
KERN_INCLUDES = $(addprefix -I,$(KERN_INC_DIRS))
EXT_INCS := -I${MPI_INC_DIR} -I${NCCL_INC_DIR} -I${CUDSS_INC_DIR} -I${LUA_INC_DIR} -I${LAPACK_INC_DIR} -I${SUPERLU_INC_DIR}
INCS := ${EXT_INCS} -Iminus -Iminus/STC/include -Izero -Iapps $(KERN_INCLUDES) -Ilua/Comm -Ilua/Tool
EXT_INCS := -I${MPI_INC_DIR} -I${NCCL_INC_DIR} -I${CUDSS_INC_DIR} -I${LUA_INC_DIR} -I${LAPACK_INC_DIR}
INCS := ${EXT_INCS} -Iminus -Iminus/lapack_lite -Iminus/STC/include -Izero -Iapps $(KERN_INCLUDES) -Ilua/Comm -Ilua/Tool

EXEC_LIB_DIRS = -L${LAPACK_LIB_DIR} -L${SUPERLU_LIB_DIR} -L${MPI_LIB_DIR} -L${NCCL_LIB_DIR} -L${CUDSS_LIB_DIR} -L${LUA_LIB_DIR}
EXEC_EXT_LIBS = ${LAPACK_LIBS} ${SUPERLU_LIBS} ${CUDA_LIBS} ${MPI_RPATH} ${MPI_LIBS} ${NCCL_LIBS} ${CUDSS_RPATH} ${CUDSS_LIBS} ${LUA_RPATH} ${LUA_LIBS} -lm -lpthread -ldl
EXEC_LIB_DIRS = -L${LAPACK_LIB_DIR} -L${MPI_LIB_DIR} -L${NCCL_LIB_DIR} -L${CUDSS_LIB_DIR} -L${LUA_LIB_DIR}
EXEC_EXT_LIBS = ${LAPACK_LIBS} ${CUDA_LIBS} ${MPI_RPATH} ${MPI_LIBS} ${NCCL_LIBS} ${CUDSS_RPATH} ${CUDSS_LIBS} ${LUA_RPATH} ${LUA_LIBS} -lm -lpthread -ldl
EXEC_LIBS = -L../${BUILD_DIR}/core ${LLIB} ${SLLIB} ${EXEC_EXT_LIBS}

LDFLAGS += -Wl,-rpath,./${BUILD_DIR}/core
Expand Down Expand Up @@ -130,13 +133,13 @@ $(LLIB): $(OBJS)

ifeq ($(UNAME),Linux)
ifdef USING_NVCC
$(CC) -shared -o $@ ${CORE_LINK_OBJS} ${CORE_LINK_CU_OBJS} -Xlinker=-soname -Xlinker=libg0core.so -L${LAPACK_LIB_DIR} -L${SUPERLU_LIB_DIR} -L${MPI_LIB_DIR} -L${NCCL_LIB_DIR} -L${CUDSS_LIB_DIR} -L${LUA_LIB_DIR} ${SUPERLU_LIBS} ${LAPACK_LIBS} ${CUDA_LIBS} ${MPI_RPATH} ${MPI_LIBS} ${NCCL_LIBS} ${CUDSS_RPATH} ${CUDSS_LIBS} ${LUA_RPATH} ${LUA_LIBS} -lm -lpthread -ldl -arch=sm_${CUDA_ARCH} -rdc=true --compiler-options="-fPIC"
$(CC) -shared -o $@ ${CORE_LINK_OBJS} ${CORE_LINK_CU_OBJS} -Xlinker=-soname -Xlinker=libg0core.so -L${LAPACK_LIB_DIR} -L${MPI_LIB_DIR} -L${NCCL_LIB_DIR} -L${CUDSS_LIB_DIR} -L${LUA_LIB_DIR} ${LAPACK_LIBS} ${CUDA_LIBS} ${MPI_RPATH} ${MPI_LIBS} ${NCCL_LIBS} ${CUDSS_RPATH} ${CUDSS_LIBS} ${LUA_RPATH} ${LUA_LIBS} -lm -lpthread -ldl -arch=sm_${CUDA_ARCH} -rdc=true --compiler-options="-fPIC"
else
$(CC) -shared -o $@ ${CORE_LINK_OBJS} -Wl,-soname,libg0core.so -L${LAPACK_LIB_DIR} -L${SUPERLU_LIB_DIR} -L${MPI_LIB_DIR} -L${NCCL_LIB_DIR} -L${CUDSS_LIB_DIR} -L${LUA_LIB_DIR} ${SUPERLU_LIBS} ${LAPACK_LIBS} ${MPI_RPATH} ${CUDA_LIBS} ${MPI_LIBS} ${NCCL_LIBS} ${CUDSS_RPATH} ${CUDSS_LIBS} ${LUA_RPATH} ${LUA_LIBS} -lm -lpthread -ldl
$(CC) -shared -o $@ ${CORE_LINK_OBJS} -Wl,-soname,libg0core.so -L${LAPACK_LIB_DIR} -L${MPI_LIB_DIR} -L${NCCL_LIB_DIR} -L${CUDSS_LIB_DIR} -L${LUA_LIB_DIR} ${LAPACK_LIBS} ${MPI_RPATH} ${CUDA_LIBS} ${MPI_LIBS} ${NCCL_LIBS} ${CUDSS_RPATH} ${CUDSS_LIBS} ${LUA_RPATH} ${LUA_LIBS} -lm -lpthread -ldl
endif
else
## Darwin
$(CC) -shared -o $@ ${CORE_LINK_OBJS} -Wl,-install_name,@rpath/libg0core.so -L${LAPACK_LIB_DIR} -L${SUPERLU_LIB_DIR} -L${MPI_LIB_DIR} -L${NCCL_LIB_DIR} -L${CUDSS_LIB_DIR} -L${LUA_LIB_DIR} ${SUPERLU_LIBS} ${LAPACK_LIBS} ${CUDA_LIBS} ${MPI_RPATH} ${MPI_LIBS} ${NCCL_LIBS} ${CUDSS_RPATH} ${CUDSS_LIBS} ${LUA_RPATH} ${LUA_LIBS} -lm -lpthread -ldl
$(CC) -shared -o $@ ${CORE_LINK_OBJS} -Wl,-install_name,@rpath/libg0core.so -L${LAPACK_LIB_DIR} -L${MPI_LIB_DIR} -L${NCCL_LIB_DIR} -L${CUDSS_LIB_DIR} -L${LUA_LIB_DIR} ${LAPACK_LIBS} ${CUDA_LIBS} ${MPI_RPATH} ${MPI_LIBS} ${NCCL_LIBS} ${CUDSS_RPATH} ${CUDSS_LIBS} ${LUA_RPATH} ${LUA_LIBS} -lm -lpthread -ldl
endif

.PHONY: check valcheck
Expand Down
2 changes: 1 addition & 1 deletion core/corelinkobjs.mak
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ CORE_INCS = -I../core/$(KERNELS_DIR)/array_average -I../core/$(KERNELS_DIR)/arra

# Core link objects

CORE_LINK_OBJS = ../$(BUILD_DIR)/core/minus/*.o ../$(BUILD_DIR)/core/$(KERNELS_DIR)/*/*.o ../$(BUILD_DIR)/core/zero/*.o ../$(BUILD_DIR)/core/apps/*.o
CORE_LINK_OBJS = ../$(BUILD_DIR)/core/minus/*.o ../$(BUILD_DIR)/core/minus/lapack_lite/*.o ../$(BUILD_DIR)/core/$(KERNELS_DIR)/*/*.o ../$(BUILD_DIR)/core/zero/*.o ../$(BUILD_DIR)/core/apps/*.o
# ... with GPUs
CORE_LINK_CU_OBJS = ../$(BUILD_DIR)/core/unit/*.cu.o
Loading
Loading