# Invocation command line:
# /home/cpu2017/bin/harness/runcpu --nobuild --action validate --define default-platform-flags --define numcopies=96 --configfile ic19.1u2-lin-core-avx512-rate-20200623_revA.cfg --define smt-on --define cores=48 --define physicalfirst --define invoke_with_interleave --define drop_caches --tune base,peak --output_format all --nopower --runmode rate --tune base:peak --size refrate intrate
# output_root was not used for this run
############################################################################
#------------------------------------------------------------------------------
# This is a sample SPEC CPU2017 config file. It is applicable for:
#
#  Compiler name/version:       Intel(R) C/C++ and Fortran 19.1u1 Compilers for Linux
#  Operating system version:    Redhat Enterprise Linux 8.1, GLIBC 2.28+, GNU LD 2.27+
#  Hardware:                    Intel(R) processors supporting CORE-AVX512 tuning
#
# If you wish to build your own:
#        (1) Copy this to a new name
#             cd %SPEC%/config
#             copy this.cfg that.cfg
#        (2) Change items that are marked 'EDIT' (search for it)
#
# If you have different software or hardware, this config file may not work.
# You may find a better config file for your system next to posted results:
#     http://www.spec.org/cpu2017/results
#
# Compiler issues: Contact your compiler vendor, not SPEC.
# For SPEC help:   http://www.spec.org/auto/cpu2017/Docs/techsupport.html
#------------------------------------------------------------------------------


#--------- Preprocessor -------------------------------------------------------
#

# Optionally edit if you wish:
%define build_ncpus 8       # controls number of simultaneous compiles

# Used to date the label
%define version 20200623_revA

# Used for the optimization tuning part of the label (not required)
%if defined(%{noopt})
%define opt_label -noopt
%elif defined(%{medopt})
%define opt_label -medopt
%else
%define opt_label
%endif

# Used for labeling static linked builds (not required)
%if defined(%{static})
%define static_label -static
%else
%define static_label
%endif



#--------- Label --------------------------------------------------------------
# Arbitrary string, tags your binaries & directories.
#                  Two Suggestions:              # (1) Change this label as you try new ideas.
label                = ic19.1u2-lin-core-avx512-rate%{opt_label}%{static_label}-%{version}          # (2) Make the label meaningful to YOU.



#--------- Global Settings ----------------------------------------------------
# For info, see:
#            https://www.spec.org/auto/cpu2017/Docs/config.html#fieldname   XXX
#   Example: https://www.spec.org/auto/cpu2017/Docs/config.html#tune
     ########################################################
     #         ATTENTION     ATTENTION     ATTENTION
     ########################################################
     #
     #     NOTE If you change fail_build then PLEASE also
     #     change the line 'define version', because
     #     SPEC review tools use 'label' to track binaries.
     #
     ########################################################
     #
     # vvvvvvvvvvvv # do not change unless you read NOTE above
       fail_build=0 # do not change unless you read NOTE above
     # ^^^^^^^^^^^^ # do not change unless you read NOTE above
     #
     ########################################################
     #

action               = validate
command_add_redirect = 1
line_width           = 1020
log_line_width       = 1020
makeflags            = -j%{build_ncpus}
output_format        = txt,cfg,pdf,csv
preenv               = 1
tune                 = base
bench_post_setup     = sync
parallel_test        = 1
mean_anyway          = 1
reportable           = 1
copies               = 1

#Reference the flags Files
flagsurl000=http://www.spec.org/cpu2017/flags/Intel-ic19.1u1-official-linux64_revA.xml
%ifdef %{default-platform-flags}
flagsurl001=http://www.spec.org/cpu2017/flags/Altos-Platform-Settings-V1.0-revA.xml
%endif

# Set some environment variables

# Retain unused virtual memory for later reuse. This avoids out of memory errors for certain benchmarks.
preENV_MALLOC_CONF   = retain:true
intrate:
preENV_LD_LIBRARY_PATH = $[top]/lib/intel64:$[top]/lib/ia32:$[top]/je5.0.1-32
fprate:
preENV_LD_LIBRARY_PATH = $[top]/lib/intel64:$[top]/je5.0.1-64


# Affinitization
# For UP systems, we need to know if the processors are ordered across cores first or in order
# If across cores, processors 0, 1, 2 and 3 are on distinct physical cores
# Otherwise, processors 0, 2, 4 and 6 are on distinct physical cores

default:
submit       = numactl --localalloc --physcpubind=$SPECCOPYNUM -- $command

%ifdef %{no-numa}
submit       = taskset -c $SPECCOPYNUM $command
%endif


#--------- Compilers ----------------------------------------------------------
intrate,fprate:
   CC                      = icc -qnextgen -m64 -std=c11
   CXX                     = icpc -qnextgen -m64
   FC                      = ifort -m64

default:
   # How to say "Show me your version, please"
   CC_VERSION_OPTION       = -V
   CXX_VERSION_OPTION      = -V
   FC_VERSION_OPTION       = -V
   JEMALLOC32_DIR = /usr/local/jemalloc32-5.0.1/lib
   JEMALLOC64_DIR = /usr/local/jemalloc64-5.0.1/lib
   INTEL64_DIR = /usr/local/IntelCompiler19/compilers_and_libraries_2020.3.275/linux/compiler/lib/intel64_lin
%if !defined(%{static})
   JEMALLOC32             = jemalloc
   JEMALLOC64             = jemalloc
   QKMALLOC               = qkmalloc
%else
   JEMALLOC32             = libjemalloc.a
   JEMALLOC64             = libjemalloc.a
%endif

   OPT_JCC                = -mbranches-within-32B-boundaries
   OPT_JCC_nextgen        = -Wl,-plugin-opt=-x86-branches-within-32B-boundaries



#--------- Portability --------------------------------------------------------

intrate,fprate:
PORTABILITY= -DSPEC_LP64

500.perlbench_r:
CPORTABILITY = -DSPEC_LINUX_X64

521.wrf_r:
CPORTABILITY = -DSPEC_CASE_FLAG
FPORTABILITY= -convert big_endian

523.xalancbmk_r:
CXXPORTABILITY=-DSPEC_LINUX

526.blender_r:
CPORTABILITY= -DSPEC_LINUX -funsigned-char

527.cam4_r:
CPORTABILITY= -DSPEC_CASE_FLAG



#--------- How Many CPUs? -----------------------------------------------------
# Both SPECrate and SPECspeed can test multiple chips / cores / hw threads
#    - For SPECrate,  you set the number of copies.
# See: https://www.spec.org/cpu2017/Docs/system-requirements.html#MultipleCPUs
#
#    q. How many should I set?
#    a. Unknown, you will have to try it and see!
#
# To get you started, some suggestions:
#
#     copies - This config file, if numcopies not defined or copies are not specified,
#		defaults to testing only 1 copy.   You might
#              try changing it to match the number of cores on your system,
#              or perhaps the number of virtual CPUs as reported by:
#                     grep -c processor /proc/cpuinfo
#              Be sure you have enough memory.  See:
#              https://www.spec.org/cpu2017/Docs/system-requirements.html#memory
#

default:
%if defined (%{numcopies})
   copies           = %{numcopies}
%else
   copies           = 1   # EDIT to change number of copies (see above)
%endif

#-------- Tuning Flags -------------------------------------------------
intspeed,fpspeed:
   #reconsider using a speed config file instead of a rate config file
   fail=1

intrate,fprate:
   SSE                     = -xCORE-AVX512

   EXTRA_FOPTIMIZE         = -nostandard-realloc-lhs -align array32byte -auto $(OPT_JCC)
   LDFLAGS                 =  $(OPT_JCC_nextgen)

intrate=default:
   EXTRA_LIBS              = -L$(INTEL64_DIR) -l$(QKMALLOC)
   EXTRA_LDFLAGS           = -Wl,-z,muldefs

%if defined(%{noopt})
   OPT_ROOT                = -O0
%elif defined(%{medopt})
   OPT_ROOT                = -O2
%else
   OPT_ROOT                = -O3 -ffast-math -flto -mfpmath=sse  -funroll-loops
   OPT_ROOT_F              = -O3  -ipo  -no-prec-div
%endif
   FAST_NO_STATIC          = $(SSE) $(OPT_ROOT)    -qnextgen
   FORT_FAST_NO_STATIC     = $(SSE) $(OPT_ROOT_F)
   FAST                    = $(SSE) $(OPT_ROOT)  -static  -qnextgen
   FORT_FAST               = $(SSE) $(OPT_ROOT_F) -static

%if !defined(%{static})
   COPTIMIZE               = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   FOPTIMIZE               = $(FORT_FAST_NO_STATIC) -qopt-mem-layout-trans=4
%if defined(%{noopt})
   COPTIMIZE               = $(OPT_ROOT)
   CXXOPTIMIZE             = $(OPT_ROOT)
   FOPTIMIZE               = $(OPT_ROOT)
%endif
%else
   COPTIMIZE               = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   FOPTIMIZE               = $(FORT_FAST)  -qopt-mem-layout-trans=4
%if defined(%{noopt})
   COPTIMIZE               = $(OPT_ROOT) -static
   CXXOPTIMIZE             = $(OPT_ROOT) -static
   FOPTIMIZE               = $(OPT_ROOT) -static
%endif
%endif

fprate=default:
   EXTRA_LIBS              =  -L$(JEMALLOC64_DIR) -l$(JEMALLOC64)
   EXTRA_LDFLAGS           =  -Wl,-z,muldefs

fprate=base:
%if defined(%{noopt})
   OPT_ROOT                = -O0
%elif defined(%{medopt})
   OPT_ROOT                = -O2
%else
   OPT_ROOT                = -Ofast -ffast-math  -flto -mfpmath=sse  -funroll-loops
   OPT_ROOT_NOIPO          = -Ofast -ffast-math  -mfpmath=sse  -funroll-loops
   OPT_ROOT_F              = -O3  -ipo  -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-multiple-gather-scatter-by-shuffles
   OPT_ROOT_F_NOIPO        = -O3  -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-multiple-gather-scatter-by-shuffles
%endif
   FAST_NO_STATIC          = $(SSE) $(OPT_ROOT)
   FORT_FAST_NO_STATIC     = $(SSE) $(OPT_ROOT_F)
   FORT_FAST_NO_STATIC_NOIPO = $(SSE) $(OPT_ROOT_F_NOIPO)
   FAST                    = $(SSE) $(OPT_ROOT) -static
   FORT_FAST               = $(SSE) $(OPT_ROOT) -static

%if !defined(%{static})
   COPTIMIZE               = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   FOPTIMIZE               = $(FORT_FAST_NO_STATIC)  -qopt-mem-layout-trans=4
%if defined(%{noopt})
   COPTIMIZE               = $(OPT_ROOT)
   CXXOPTIMIZE             = $(OPT_ROOT)
   FOPTIMIZE               = $(OPT_ROOT)
%endif
%else
   COPTIMIZE               = $(FAST)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST)  -qopt-mem-layout-trans=4
   FOPTIMIZE               = $(FORT_FAST)  -qopt-mem-layout-trans=4
%if defined(%{noopt})
   COPTIMIZE               = $(OPT_ROOT) -static
   CXXOPTIMIZE             = $(OPT_ROOT) -static
   FOPTIMIZE               = $(OPT_ROOT) -static
%endif
%endif

fprate_mixed_fortran:
   COPTIMIZE               =  $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             =  $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   FOPTIMIZE               =  $(FORT_FAST_NO_STATIC_NOIPO)  -qopt-mem-layout-trans=4

intrate=peak:
%if defined(%{noopt}) || defined(%{medopt})
   #not building or executing peak against less opt
   fail=1
%endif

   OPT_ROOT                   = -flto -O3  -ffast-math
   OPT_ROOT_ICC               = -ipo  -O3  -no-prec-div

   FAST_NO_STATIC          = $(SSE) $(OPT_ROOT) -qnextgen
   FAST_NO_STATIC_ICC      = $(SSE) $(OPT_ROOT_ICC)

   COPTIMIZE               = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4

   PASS1_CFLAGS               = -prof-gen
   PASS2_CFLAGS               = -prof-use
   PASS1_FFLAGS               = -prof-gen
   PASS2_FFLAGS               = -prof-use
   PASS1_CXXFLAGS             = -prof-gen
   PASS2_CXXFLAGS             = -prof-use
   PASS1_LDFLAGS              = -prof-gen
   PASS2_LDFLAGS              = -prof-use

500.perlbench_r=peak=default:
#[56]00.perlbench[rs] has non standard signed overflow
   CC                        = icc
   LDFLAGS                   = %undef%
   FAST_NO_STATIC_ICC      = $(SSE) $(OPT_ROOT_ICC)
   COPTIMIZE                 = $(FAST_NO_STATIC_ICC)  -qopt-mem-layout-trans=4
   EXTRA_OPTIMIZE            = -fno-strict-overflow
   EXTRA_COPTIMIZE         = $(OPT_JCC)
   EXTRA_CXXOPTIMIZE       = $(OPT_JCC)

525.x264_r=peak:
    feedback                = 0
    EXTRA_OPTIMIZE          = -fno-alias

502.gcc_r=peak:
   CC                      = icc  -m32  -std=gnu89 -L/usr/local/IntelCompiler19/compilers_and_libraries_2020.3.275/linux/compiler/lib/ia32_lin
   CXX                     = icpc -m32  -std=gnu89 -L/usr/local/IntelCompiler19/compilers_and_libraries_2020.3.275/linux/compiler/lib/ia32_lin
   FAST_NO_STATIC          = $(SSE) $(OPT_ROOT) -qnextgen
   COPTIMIZE               = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   EXTRA_LIBS              = -L$(JEMALLOC32_DIR) -l$(JEMALLOC32)
   EXTRA_LDFLAGS           = -Wl,-z,muldefs
#Disable portability for 32b, large file support for safety
   PORTABILITY             =  -D_FILE_OFFSET_BITS=64

   PASS1_CFLAGS             = -fprofile-generate $(SSE) -flto  -Ofast
   PASS2_CFLAGS             = -fprofile-use=default.profdata
   PASS1_FFLAGS             = -fprofile-generate $(SSE) -flto  -Ofast
   PASS2_FFLAGS             = -fprofile-use=default.profdata
   PASS1_CXXFLAGS           = -fprofile-generate $(SSE) -flto  -Ofast
   PASS2_CXXFLAGS           = -fprofile-use=default.profdata
   PASS1_LDFLAGS            = -fprofile-generate $(SSE) -flto  -Ofast
   PASS2_LDFLAGS            = -fprofile-use=default.profdata
   fdo_run1                 = $command ; llvm-profdata merge -output=default.profdata *.profraw

557.xz_r=peak=default:
   feedback                 = 0
   CC                        = icc
   LDFLAGS                   = %undef%
   FAST_NO_STATIC_ICC      = $(SSE) $(OPT_ROOT_ICC)
   COPTIMIZE               = $(FAST_NO_STATIC_ICC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   EXTRA_COPTIMIZE         = $(OPT_JCC)
   EXTRA_CXXOPTIMIZE       = $(OPT_JCC)


505.mcf_r,520.omnetpp_r,523.xalancbmk_r,531.deepsjeng_r,541.leela_r,548.exchange2_r=peak:
    basepeak=1

fprate=peak:
%if defined(%{noopt}) || defined(%{medopt})
   #not building or executing peak against less opt
   fail=1
%endif
   OPT_ROOT                   = -flto -Ofast
   FAST_NO_STATIC_PASS1       = $(OPT_ROOT)
   FORT_FAST_NO_STATIC_PASS1  = $(OPT_ROOT)
   FAST_PASS1                 = $(OPT_ROOT) -static
   FORT_FAST_PASS1            = $(OPT_ROOT) -static
   FAST_NO_STATIC_PASS2       = $(SSE) $(OPT_ROOT)
   FORT_FAST_NO_STATIC_PASS2  = $(SSE) $(OPT_ROOT)
   FAST_PASS2                 = $(SSE) $(OPT_ROOT) -static
   FORT_FAST_PASS2            = $(SSE) $(OPT_ROOT) -static

%if !defined(%{static})
   PASS1_COPTIMIZE            = $(FAST_NO_STATIC_PASS1)  -qopt-mem-layout-trans=4
   PASS1_CXXOPTIMIZE          = $(FAST_NO_STATIC_PASS1)  -qopt-mem-layout-trans=4
   PASS1_FOPTIMIZE            = $(FORT_FAST_NO_STATIC_PASS1)  -qopt-mem-layout-trans=4
   PASS2_COPTIMIZE            = $(FAST_NO_STATIC_PASS2)  -qopt-mem-layout-trans=4
   PASS2_CXXOPTIMIZE          = $(FAST_NO_STATIC_PASS2)  -qopt-mem-layout-trans=4
   PASS2_FOPTIMIZE            = $(FORT_FAST_NO_STATIC_PASS2)  -qopt-mem-layout-trans=4
%else
   PASS1_COPTIMIZE            = $(FAST_PASS1)  -qopt-mem-layout-trans=4
   PASS1_CXXOPTIMIZE          = $(FAST_PASS1)  -qopt-mem-layout-trans=4
   PASS1_FOPTIMIZE            = $(FORT_FAST_PASS1)  -qopt-mem-layout-trans=4
   PASS2_COPTIMIZE            = $(FAST_PASS2)  -qopt-mem-layout-trans=4
   PASS2_CXXOPTIMIZE          = $(FAST_PASS2)  -qopt-mem-layout-trans=4
   PASS2_FOPTIMIZE            = $(FORT_FAST_PASS2)  -qopt-mem-layout-trans=4
%endif


#fp rate subset for removing FDO
503.bwaves_r,510.parest_r,554.roms_r=peak=default:
feedback                   = 0
%if defined(%{noopt})
   OPT_ROOT                = -O0
%elif defined(%{medopt})
   OPT_ROOT                = -O2
%else
   OPT_ROOT                = -Ofast -ffast-math  -flto -mfpmath=sse  -funroll-loops
   OPT_ROOT_NOIPO          = -Ofast -ffast-math  -mfpmath=sse  -funroll-loops
   OPT_ROOT_F              = -O3  -ipo  -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-multiple-gather-scatter-by-shuffles
   OPT_ROOT_F_NOIPO        = -O3  -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-multiple-gather-scatter-by-shuffles
%endif
   FAST_NO_STATIC          = $(SSE) $(OPT_ROOT)
   FORT_FAST_NO_STATIC     = $(SSE) $(OPT_ROOT_F)
   FORT_FAST_NO_STATIC_NOIPO = $(SSE) $(OPT_ROOT_F_NOIPO)
   FAST                    = $(SSE) $(OPT_ROOT) -static
   FORT_FAST               = $(SSE) $(OPT_ROOT) -static

%if !defined(%{static})
   COPTIMIZE               = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   FOPTIMIZE               = $(FORT_FAST_NO_STATIC)  -qopt-mem-layout-trans=4
%if defined(%{noopt})
   COPTIMIZE               = $(OPT_ROOT)
   CXXOPTIMIZE             = $(OPT_ROOT)
   FOPTIMIZE               = $(OPT_ROOT)
%endif
%else
   COPTIMIZE               = $(FAST)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST)  -qopt-mem-layout-trans=4
   FOPTIMIZE               = $(FORT_FAST)  -qopt-mem-layout-trans=4
%if defined(%{noopt})
   COPTIMIZE               = $(OPT_ROOT) -static
   CXXOPTIMIZE             = $(OPT_ROOT) -static
   FOPTIMIZE               = $(OPT_ROOT) -static
%endif
%endif

507.cactuBSSN_r,508.namd_r,519.lbm_r,526.blender_r,527.cam4_r=peak=default:
   basepeak=1

538.imagick_r,544.nab_r,549.fotonik3d_r,997.specrand_fr=peak:
   basepeak=1

511.povray_r,521.wrf_r=peak:

   CC                      = icc
   CXX                     = icpc
   FC                      = ifort
   OPT_ROOT                = -O3 -ipo  -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-multiple-gather-scatter-by-shuffles
   FAST_NO_STATIC          = $(SSE) $(OPT_ROOT)
   COPTIMIZE               = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   CXXOPTIMIZE             = $(FAST_NO_STATIC)  -qopt-mem-layout-trans=4
   EXTRA_LIBS              = -L$(JEMALLOC64_DIR) -l$(JEMALLOC64)
   EXTRA_COPTIMIZE         = $(OPT_JCC)
   EXTRA_CXXOPTIMIZE       = $(OPT_JCC)
   LDFLAGS                 = %undef%
   EXTRA_LDFLAGS           =  %undef%
   PASS1_CFLAGS               = -prof-gen
   PASS2_CFLAGS               = -prof-use
   PASS1_FFLAGS               = -prof-gen
   PASS2_FFLAGS               = -prof-use
   PASS1_CXXFLAGS             = -prof-gen
   PASS2_CXXFLAGS             = -prof-use
   PASS1_LDFLAGS              = -prof-gen
   PASS2_LDFLAGS              = -prof-use


#some benchmarks do not want to share a core
%if defined (%{smt-on})
%define numpeakcopies %{cores}

503.bwaves_r,510.parest_r,521.wrf_r,554.roms_r=peak:
   copies = %{numpeakcopies}
%endif

#-------------------------------------------------------------------------------
# Tester and System Descriptions - EDIT the sections below
#-------------------------------------------------------------------------------
#   For info about any field, see
#             https://www.spec.org/auto/cpu2017/Docs/config.html#fieldname
#   Example:  https://www.spec.org/auto/cpu2017/Docs/config.html#hw_memory
#-------------------------------------------------------------------------------

#--------- If you install new compilers, EDIT this section --------------------

intrate,intspeed,fpspeed,fprate:
   sw_compiler000   = C/C++: Version 19.1.2.275 of Intel C/C++
   sw_compiler001   = Compiler Build 20200604 for Linux;
   sw_compiler003   = Fortran: Version 19.1.2.275 of Intel Fortran
   sw_base_ptrsize  = 64-bit
   sw_other         = jemalloc memory allocator V5.0.1
power_management = BIOS set to prefer performance at the cost of additional power usage
fprate,fpspeed:
   sw_peak_ptrsize  = 64-bit
intspeed:
   sw_peak_ptrsize  = 64-bit
intrate:
   sw_peak_ptrsize  = 32/64-bit

#--------- EDIT Your info ---------------------------------------------------------
# To understand the difference between hw_vendor/sponsor/tester, see:
#     www.spec.org/auto/cpu2017/Docs/config.html#test_sponsor
intrate,intspeed,fprate,fpspeed: # Important: keep this line
   hw_vendor          = Altos Computing Inc.
   tester             = Altos Computing Inc.
   test_sponsor       = Altos Computing Inc.
   license_num        = 97
   prepared_by        = Altos Computing Inc.

#--------- EDIT system availability dates and system information ----------------------------------------------
intrate,intspeed,fprate,fpspeed: # Important: keep this line
                        # Example                             # Brief info about field
   hw_avail           = Feb-2020
   sw_avail           = Aug-2020
   hw_cpu_nominal_mhz = 3000
   hw_cpu_max_mhz     = 4000
   hw_ncores          = 48
   hw_nthreadspercore = 2
   hw_ncpuorder       = 1,2 chips

   hw_model           = BrainSphere R380 F4 (Intel Xeon Gold 6248R)
   hw_other           = None
#   sw_other           = # TurboHeap Library V8.1              # Other perf-relevant sw, or "None"

   hw_pcache          = 32 KB I + 32 KB D on chip per core
   hw_scache          = 1 MB I+D on chip per core
   hw_tcache          = 35.75 MB I+D on chip per chip
   hw_ocache          = None

#   hw_memory001       = # 4 TB (256 x 16 GB 2Rx4 PC4-2133P-R, # N GB (M x N GB nRxn
#   hw_memory002       = # running at 1600 MHz)                # PCn-nnnnnR-n[, ECC and other info])


#--------- Sysinfo fields - You may need to adjust this section ---------------
# Note: Some commented-out fields above are automatically set to preliminary
# values by sysinfo
#       www.spec.org/auto/cpu2017/Docs/config.html#sysinfo
# Uncomment lines for which you already have a better answer than sysinfo
#
intrate,intspeed,fprate,fpspeed: # Important: keep this line
                        # Example               # Brief info about field
 # hw_cpu_name        = # Intel Xeon E9-9999 v9               # chip name
 # hw_disk            = # 9 x 9 TB SATA III 9999 RPM          # Size, type, other perf-relevant info
 # hw_nchips          = # 99                                  # number chips enabled
 # sw_file            = # ext99                               # File system
 # sw_state           = # Run level 99                        # Software state.

 # sw_os001           = # Linux Sailboat                      # Operating system
 # sw_os002           = # Distribution 7.2 SP1                # and version



#--------- EDIT Intel Recommended Fields - You may wish to adjust this section -----

default:
   notes_000        = Binaries compiled on a system with 1x Intel Core i9-7980XE CPU + 64GB RAM
   notes_005        = memory using Redhat Enterprise Linux 8.0
   notes_os_000     = Stack size set to unlimited using "ulimit -s unlimited"

#Ease of tagging results from the runcpu command line with commands run outside of runcpu harneess
#Adjust as necessary for your SUT
%if defined(%{THP_enabled})
   notes_200        = Transparent Huge Pages enabled with:
   notes_201        = echo always > /sys/kernel/mm/transparent_hugepage/enabled
%elif defined(%{THP_disabled})
   notes_200        = Transparent Huge Pages disabled with:
   notes_201        = echo never  > /sys/kernel/mm/transparent_hugepage/enabled
%else
   notes_010        = Transparent Huge Pages enabled by default
%endif

%ifdef %{drop_caches}
   notes_015        = Prior to runcpu invocation
   notes_020        = Filesystem page cache synced and cleared with:
   notes_025        = sync; echo 3>       /proc/sys/vm/drop_caches
%endif

%ifdef %{invoke_with_interleave}
   notes_030        = runcpu command invoked through numactl i.e.:
   notes_035        = numactl --interleave=all runcpu <etc>
notes_040 =NA: The test sponsor attests, as of date of publication, that CVE-2017-5754 (Meltdown)
notes_045 =is mitigated in the system as tested and documented.
notes_050 =Yes: The test sponsor attests, as of date of publication, that CVE-2017-5753 (Spectre variant 1)
notes_055 =is mitigated in the system as tested and documented.
notes_060 =Yes: The test sponsor attests, as of date of publication, that CVE-2017-5715 (Spectre variant 2)
notes_065 =is mitigated in the system as tested and documented.
%endif

intrate,fprate:
%if defined(%{no-numa})
   notes_submit_000 = The taskset mechanism was used to bind copies to processors. The config file option 'submit'
   notes_submit_001 = was used to generate taskset commands to bind each copy to a specific processor.
   notes_submit_002 = For details, please see the config file.
%else
   notes_submit_000 = The numactl mechanism was used to bind copies to processors. The config file option 'submit'
   notes_submit_005 = was used to generate numactl commands to bind each copy to a specific processor.
   notes_submit_010 = For details, please see the config file.
%endif

intrate,fprate,intspeed,fpspeed:
   notes_jemalloc_000 = jemalloc, a general purpose malloc implementation
   notes_jemalloc_005 = built with the RedHat Enterprise 7.5, and the system compiler gcc 4.8.5
   notes_jemalloc_010 = sources available from jemalloc.net or https://github.com/jemalloc/jemalloc/releases


# The following settings were obtained by running the sysinfo_program
# 'specperl $[top]/bin/sysinfo' (sysinfo:SHA:1b187da62efa5d65f0e989c214b6a257d16a31d3cf135973c9043da741052207)
default:
notes_plat_sysinfo_000 =
notes_plat_sysinfo_005 = Sysinfo program /home/cpu2017/bin/sysinfo
notes_plat_sysinfo_010 = Rev: r6365 of 2019-08-21 295195f888a3d7edb1e6e46a485a0011
notes_plat_sysinfo_015 = running on rhel82 Sat Jan  9 22:38:16 2021
notes_plat_sysinfo_020 =
notes_plat_sysinfo_025 = SUT (System Under Test) info as seen by some common utilities.
notes_plat_sysinfo_030 = For more information on this section, see
notes_plat_sysinfo_035 =    https://www.spec.org/cpu2017/Docs/config.html#sysinfo
notes_plat_sysinfo_040 =
notes_plat_sysinfo_045 = From /proc/cpuinfo
notes_plat_sysinfo_050 =    model name : Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
notes_plat_sysinfo_055 =       2  "physical id"s (chips)
notes_plat_sysinfo_060 =       96 "processors"
notes_plat_sysinfo_065 =    cores, siblings (Caution: counting these is hw and system dependent. The following
notes_plat_sysinfo_070 =    excerpts from /proc/cpuinfo might not be reliable.  Use with caution.)
notes_plat_sysinfo_075 =       cpu cores : 24
notes_plat_sysinfo_080 =       siblings  : 48
notes_plat_sysinfo_085 =       physical 0: cores 0 1 2 3 4 5 6 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29
notes_plat_sysinfo_090 =       physical 1: cores 0 1 2 3 4 5 6 8 9 10 11 12 13 16 17 18 19 20 21 25 26 27 28 29
notes_plat_sysinfo_095 =
notes_plat_sysinfo_100 = From lscpu:
notes_plat_sysinfo_105 =      Architecture:        x86_64
notes_plat_sysinfo_110 =      CPU op-mode(s):      32-bit, 64-bit
notes_plat_sysinfo_115 =      Byte Order:          Little Endian
notes_plat_sysinfo_120 =      CPU(s):              96
notes_plat_sysinfo_125 =      On-line CPU(s) list: 0-95
notes_plat_sysinfo_130 =      Thread(s) per core:  2
notes_plat_sysinfo_135 =      Core(s) per socket:  24
notes_plat_sysinfo_140 =      Socket(s):           2
notes_plat_sysinfo_145 =      NUMA node(s):        4
notes_plat_sysinfo_150 =      Vendor ID:           GenuineIntel
notes_plat_sysinfo_155 =      CPU family:          6
notes_plat_sysinfo_160 =      Model:               85
notes_plat_sysinfo_165 =      Model name:          Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
notes_plat_sysinfo_170 =      Stepping:            7
notes_plat_sysinfo_175 =      CPU MHz:             3599.881
notes_plat_sysinfo_180 =      CPU max MHz:         4000.0000
notes_plat_sysinfo_185 =      CPU min MHz:         1200.0000
notes_plat_sysinfo_190 =      BogoMIPS:            6000.00
notes_plat_sysinfo_195 =      Virtualization:      VT-x
notes_plat_sysinfo_200 =      L1d cache:           32K
notes_plat_sysinfo_205 =      L1i cache:           32K
notes_plat_sysinfo_210 =      L2 cache:            1024K
notes_plat_sysinfo_215 =      L3 cache:            36608K
notes_plat_sysinfo_220 =      NUMA node0 CPU(s):   0-3,7,8,12-14,18-20,48-51,55,56,60-62,66-68
notes_plat_sysinfo_225 =      NUMA node1 CPU(s):   4-6,9-11,15-17,21-23,52-54,57-59,63-65,69-71
notes_plat_sysinfo_230 =      NUMA node2 CPU(s):   24-27,31-33,37-39,43,44,72-75,79-81,85-87,91,92
notes_plat_sysinfo_235 =      NUMA node3 CPU(s):   28-30,34-36,40-42,45-47,76-78,82-84,88-90,93-95
notes_plat_sysinfo_240 =      Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
notes_plat_sysinfo_245 =      pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp
notes_plat_sysinfo_250 =      lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid
notes_plat_sysinfo_255 =      aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16
notes_plat_sysinfo_260 =      xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave
notes_plat_sysinfo_265 =      avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3
notes_plat_sysinfo_270 =      invpcid_single ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority
notes_plat_sysinfo_275 =      ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a
notes_plat_sysinfo_280 =      avx512f avx512dq rdseed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl
notes_plat_sysinfo_285 =      xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local
notes_plat_sysinfo_290 =      dtherm ida arat pln pts pku ospke avx512_vnni md_clear flush_l1d arch_capabilities
notes_plat_sysinfo_295 =
notes_plat_sysinfo_300 = /proc/cpuinfo cache data
notes_plat_sysinfo_305 =    cache size : 36608 KB
notes_plat_sysinfo_310 =
notes_plat_sysinfo_315 = From numactl --hardware  WARNING: a numactl 'node' might or might not correspond to a
notes_plat_sysinfo_320 = physical chip.
notes_plat_sysinfo_325 =   available: 4 nodes (0-3)
notes_plat_sysinfo_330 =   node 0 cpus: 0 1 2 3 7 8 12 13 14 18 19 20 48 49 50 51 55 56 60 61 62 66 67 68
notes_plat_sysinfo_335 =   node 0 size: 95127 MB
notes_plat_sysinfo_340 =   node 0 free: 83979 MB
notes_plat_sysinfo_345 =   node 1 cpus: 4 5 6 9 10 11 15 16 17 21 22 23 52 53 54 57 58 59 63 64 65 69 70 71
notes_plat_sysinfo_350 =   node 1 size: 96762 MB
notes_plat_sysinfo_355 =   node 1 free: 87287 MB
notes_plat_sysinfo_360 =   node 2 cpus: 24 25 26 27 31 32 33 37 38 39 43 44 72 73 74 75 79 80 81 85 86 87 91 92
notes_plat_sysinfo_365 =   node 2 size: 96762 MB
notes_plat_sysinfo_370 =   node 2 free: 86533 MB
notes_plat_sysinfo_375 =   node 3 cpus: 28 29 30 34 35 36 40 41 42 45 46 47 76 77 78 82 83 84 88 89 90 93 94 95
notes_plat_sysinfo_380 =   node 3 size: 96734 MB
notes_plat_sysinfo_385 =   node 3 free: 87268 MB
notes_plat_sysinfo_390 =   node distances:
notes_plat_sysinfo_395 =   node   0   1   2   3
notes_plat_sysinfo_400 =     0:  10  11  21  21
notes_plat_sysinfo_405 =     1:  11  10  21  21
notes_plat_sysinfo_410 =     2:  21  21  10  11
notes_plat_sysinfo_415 =     3:  21  21  11  10
notes_plat_sysinfo_420 =
notes_plat_sysinfo_425 = From /proc/meminfo
notes_plat_sysinfo_430 =    MemTotal:       394636288 kB
notes_plat_sysinfo_435 =    HugePages_Total:       0
notes_plat_sysinfo_440 =    Hugepagesize:       2048 kB
notes_plat_sysinfo_445 =
notes_plat_sysinfo_450 = From /etc/*release* /etc/*version*
notes_plat_sysinfo_455 =    os-release:
notes_plat_sysinfo_460 =       NAME="Red Hat Enterprise Linux"
notes_plat_sysinfo_465 =       VERSION="8.2 (Ootpa)"
notes_plat_sysinfo_470 =       ID="rhel"
notes_plat_sysinfo_475 =       ID_LIKE="fedora"
notes_plat_sysinfo_480 =       VERSION_ID="8.2"
notes_plat_sysinfo_485 =       PLATFORM_ID="platform:el8"
notes_plat_sysinfo_490 =       PRETTY_NAME="Red Hat Enterprise Linux 8.2 (Ootpa)"
notes_plat_sysinfo_495 =       ANSI_COLOR="0;31"
notes_plat_sysinfo_500 =    redhat-release: Red Hat Enterprise Linux release 8.2 (Ootpa)
notes_plat_sysinfo_505 =    system-release: Red Hat Enterprise Linux release 8.2 (Ootpa)
notes_plat_sysinfo_510 =    system-release-cpe: cpe:/o:redhat:enterprise_linux:8.2:ga
notes_plat_sysinfo_515 =
notes_plat_sysinfo_520 = uname -a:
notes_plat_sysinfo_525 =    Linux rhel82 4.18.0-193.el8.x86_64 #1 SMP Fri Mar 27 14:35:58 UTC 2020 x86_64 x86_64
notes_plat_sysinfo_530 =    x86_64 GNU/Linux
notes_plat_sysinfo_535 =
notes_plat_sysinfo_540 = Kernel self-reported vulnerability status:
notes_plat_sysinfo_545 =
notes_plat_sysinfo_550 = itlb_multihit:                            KVM: Vulnerable
notes_plat_sysinfo_555 = CVE-2018-3620 (L1 Terminal Fault):        Not affected
notes_plat_sysinfo_560 = Microarchitectural Data Sampling:         Not affected
notes_plat_sysinfo_565 = CVE-2017-5754 (Meltdown):                 Not affected
notes_plat_sysinfo_570 = CVE-2018-3639 (Speculative Store Bypass): Mitigation: Speculative Store Bypass disabled
notes_plat_sysinfo_575 =                                           via prctl and seccomp
notes_plat_sysinfo_580 = CVE-2017-5753 (Spectre variant 1):        Mitigation: usercopy/swapgs barriers and __user
notes_plat_sysinfo_585 =                                           pointer sanitization
notes_plat_sysinfo_590 = CVE-2017-5715 (Spectre variant 2):        Mitigation: Enhanced IBRS, IBPB: conditional,
notes_plat_sysinfo_595 =                                           RSB filling
notes_plat_sysinfo_600 = tsx_async_abort:                          Mitigation: Clear CPU buffers; SMT vulnerable
notes_plat_sysinfo_605 =
notes_plat_sysinfo_610 = run-level 3 Jan 9 19:22
notes_plat_sysinfo_615 =
notes_plat_sysinfo_620 = SPEC is set to: /home/cpu2017
notes_plat_sysinfo_625 =    Filesystem            Type  Size  Used Avail Use% Mounted on
notes_plat_sysinfo_630 =    /dev/mapper/rhel-home xfs   1.5T   84G  1.4T   6% /home
notes_plat_sysinfo_635 =
notes_plat_sysinfo_640 = From /sys/devices/virtual/dmi/id
notes_plat_sysinfo_645 =     BIOS:    Intel Corporation SE5C620.86B.02.01.0012.070720200218 07/07/2020
notes_plat_sysinfo_650 =     Vendor:  Acer
notes_plat_sysinfo_655 =     Product: Altos R380 F4
notes_plat_sysinfo_660 =     Product Family: Family
notes_plat_sysinfo_665 =     Serial:  ..
notes_plat_sysinfo_670 =
notes_plat_sysinfo_675 = Additional information from dmidecode follows.  WARNING: Use caution when you interpret
notes_plat_sysinfo_680 = this section. The 'dmidecode' program reads system data which is "intended to allow
notes_plat_sysinfo_685 = hardware to be accurately determined", but the intent may not be met, as there are
notes_plat_sysinfo_690 = frequent changes to hardware, firmware, and the "DMTF SMBIOS" standard.
notes_plat_sysinfo_695 =   Memory:
notes_plat_sysinfo_700 =     12x NO DIMM NO DIMM
notes_plat_sysinfo_705 =     12x Samsung M393A4K40CB2-CVF 32 GB 2 rank 2933
notes_plat_sysinfo_710 =
notes_plat_sysinfo_715 = (End of data from sysinfo program)
hw_cpu_name    = Intel Xeon Gold 6248R
hw_disk        = 1 x 1.6 TB SATA SSD
hw_memory      = 384 GB (12 x 32 GB 2Rx4 PC4-2933V-R)
hw_nchips      = 2
prepared_by    = root  (is never output, only tags rawfile)
fw_bios = Version 02.01.0012 released Jul-2020
sw_file        = xfs
sw_os000       = Red Hat Enterprise Linux release 8.2 (Ootpa)
sw_os001       = 4.18.0-193.el8.x86_64
sw_state       = Run level 3 (multi-user)
# End of settings added by sysinfo_program


# The following section was added automatically, and contains settings that
# did not appear in the original configuration file, but were added to the
# raw file after the run.
default:
sw_compiler005 = Compiler Build 20200623 for Linux
notes_plat_000 =BIOS Configuration:
notes_plat_005 =Power Policy Quick Settings set to Performance
notes_plat_010 =IMC set to 1-way interleaving
notes_plat_015 =Sub_NUMA Cluster set to Enabled