Update build options for each compiler and include ICX

Signed-off-by: Rafael Ravedutti <rafaelravedutti@gmail.com>
This commit is contained in:
Rafael Ravedutti 2022-12-13 01:06:59 +01:00
parent a7cb888517
commit d76d044a00
6 changed files with 32 additions and 8 deletions

2
.gitignore vendored
View File

@ -54,9 +54,11 @@ dkms.conf
# Build directories and executables # Build directories and executables
GCC/ GCC/
ICC/ ICC/
ICX/
CLANG/ CLANG/
NVCC/ NVCC/
MDBench-GCC* MDBench-GCC*
MDBench-ICC* MDBench-ICC*
MDBench-ICX*
MDBench-CLANG* MDBench-CLANG*
MDBench-NVCC* MDBench-NVCC*

View File

@ -1,9 +1,9 @@
# Compiler tag (GCC/CLANG/ICC/ONEAPI/NVCC) # Compiler tag (GCC/CLANG/ICC/ICX/ONEAPI/NVCC)
TAG ?= ICC TAG ?= ICC
# Instruction set (SSE/AVX/AVX_FMA/AVX2/AVX512) # Instruction set (SSE/AVX/AVX_FMA/AVX2/AVX512)
ISA ?= AVX512 ISA ?= AVX512
# Optimization scheme (lammps/gromacs/clusters_per_bin) # Optimization scheme (lammps/gromacs/clusters_per_bin)
OPT_SCHEME ?= lammps OPT_SCHEME ?= gromacs
# Enable likwid (true or false) # Enable likwid (true or false)
ENABLE_LIKWID ?= true ENABLE_LIKWID ?= true
# SP or DP # SP or DP
@ -22,7 +22,7 @@ MEM_TRACER ?= false
# Trace indexes and distances for gather-md (true or false) # Trace indexes and distances for gather-md (true or false)
INDEX_TRACER ?= false INDEX_TRACER ?= false
# Compute statistics # Compute statistics
COMPUTE_STATS ?= false COMPUTE_STATS ?= true
# Configurations for lammps optimization scheme # Configurations for lammps optimization scheme
# Use omp simd pragma when running with half neighbor-lists # Use omp simd pragma when running with half neighbor-lists

View File

@ -6,9 +6,9 @@ ANSI_CFLAGS += -std=c99
ANSI_CFLAGS += -pedantic ANSI_CFLAGS += -pedantic
ANSI_CFLAGS += -Wextra ANSI_CFLAGS += -Wextra
#CFLAGS = -O3 -march=native $(ANSI_CFLAGS) #-Xpreprocessor -fopenmp -g CFLAGS = -Ofast -march=native $(ANSI_CFLAGS) #-Xpreprocessor -fopenmp -g
#CFLAGS = -O3 -march=cascadelake $(ANSI_CFLAGS) #-Xpreprocessor -fopenmp -g #CFLAGS = -O3 -march=cascadelake $(ANSI_CFLAGS) #-Xpreprocessor -fopenmp -g
CFLAGS = -Ofast $(ANSI_CFLAGS) -g #-Xpreprocessor -fopenmp -g #CFLAGS = -Ofast $(ANSI_CFLAGS) -g #-Xpreprocessor -fopenmp -g
ASFLAGS = -masm=intel ASFLAGS = -masm=intel
LFLAGS = LFLAGS =
DEFINES = -D_GNU_SOURCE DEFINES = -D_GNU_SOURCE

View File

@ -6,11 +6,14 @@ ANSI_CFLAGS += -std=c99
ANSI_CFLAGS += -pedantic ANSI_CFLAGS += -pedantic
ANSI_CFLAGS += -Wextra ANSI_CFLAGS += -Wextra
# CFLAGS = -O0 -g -std=c99 -fargument-noalias #CFLAGS = -O0 -g -std=c99 -fargument-noalias
#CFLAGS = -O3 -march=cascadelake -ffast-math -funroll-loops # -fopenmp #CFLAGS = -O3 -march=cascadelake -ffast-math -funroll-loops # -fopenmp
CFLAGS = -O3 -march=native -ffast-math -funroll-loops # -fopenmp CFLAGS = -Ofast -march=native -ffast-math -funroll-loops # -fopenmp
#CFLAGS = -Ofast -march=native -mavx2 -ffast-math -funroll-loops # -fopenmp
#CFLAGS = -Ofast -march=native -ffast-math -funroll-loops # -fopenmp
#CFLAGS = -O3 -march=native -ffast-math -funroll-loops # -fopenmp
#CFLAGS = -O3 -march=znver1 -ffast-math -funroll-loops # -fopenmp #CFLAGS = -O3 -march=znver1 -ffast-math -funroll-loops # -fopenmp
ASFLAGS = -masm=intel ASFLAGS = #-masm=intel
LFLAGS = LFLAGS =
DEFINES = -D_GNU_SOURCE -DNO_ZMM_INTRIN DEFINES = -D_GNU_SOURCE -DNO_ZMM_INTRIN
INCLUDES = $(LIKWID_INC) INCLUDES = $(LIKWID_INC)

View File

@ -6,6 +6,7 @@ PROFILE = #-profile-functions -g -pg
OPTS = -Ofast -xCORE-AVX512 -qopt-zmm-usage=high $(PROFILE) OPTS = -Ofast -xCORE-AVX512 -qopt-zmm-usage=high $(PROFILE)
#OPTS = -Ofast -xCORE-AVX2 $(PROFILE) #OPTS = -Ofast -xCORE-AVX2 $(PROFILE)
#OPTS = -Ofast -xAVX $(PROFILE) #OPTS = -Ofast -xAVX $(PROFILE)
#OPTS = -Ofast -xAVX2 $(PROFILE)
#OPTS = -Ofast -xSSE4.2 $(PROFILE) #OPTS = -Ofast -xSSE4.2 $(PROFILE)
#OPTS = -Ofast -no-vec $(PROFILE) #OPTS = -Ofast -no-vec $(PROFILE)
#OPTS = -Ofast -xHost $(PROFILE) #OPTS = -Ofast -xHost $(PROFILE)

18
include_ICX.mk Normal file
View File

@ -0,0 +1,18 @@
CC = icx
LINKER = $(CC)
OPENMP = #-qopenmp
PROFILE = #-profile-functions -g -pg
#OPTS = -Ofast -xCORE-AVX512 -qopt-zmm-usage=high $(PROFILE)
#OPTS = -Ofast -xCORE-AVX2 $(PROFILE)
#OPTS = -Ofast -xAVX $(PROFILE)
#OPTS = -Ofast -xAVX2 $(PROFILE)
#OPTS = -Ofast -xSSE4.2 $(PROFILE)
#OPTS = -Ofast -no-vec $(PROFILE)
OPTS = -Ofast -xHost $(PROFILE)
CFLAGS = $(PROFILE) -restrict $(OPENMP) $(OPTS)
ASFLAGS = #-masm=intel
LFLAGS = $(PROFILE) $(OPTS) $(OPENMP)
DEFINES = -std=c11 -pedantic-errors -D_GNU_SOURCE -DNO_ZMM_INTRIN
INCLUDES =
LIBS = -lm