perfkitbenchmarker/data/speccpu17/Example-gcc-linux-x86.cfg (124 lines of code) (raw):

#------------------------------------------------------------------------------ # SPEC CPU(R) 2017 config file for: gcc / g++ / gfortran on Linux x86 #------------------------------------------------------------------------------ # # Usage: (1) Copy this to a new name # cd $SPEC/config # cp Example-x.cfg myname.cfg # (2) Change items that are marked 'EDIT' (search for it) # # SPEC tested this config file with: # Compiler version(s): 4.4.7, 4.9.2, 5.2.0, 6.3.0, 7.2.1, 7.3.1, # 8.1.0, 8.3.0, 9.1.0 # Operating system(s): Oracle Linux Server 6.5 and 7.4 / # Red Hat Enterprise Linux Server 6.5 and 7.4 # SUSE Linux Enterprise Server 15 # Ubuntu 19.04 # Hardware: Xeon, EPYC # # If your system differs, this config file might not work. # You might find a better config file at http://www.spec.org/cpu2017/results # # Known Limitations with GCC 4 # # (1) Possible problem: compile time messages # error: unrecognized command line option '...' # Recommendation: Use a newer version of the compiler. # If that is not possible, remove the unrecognized # option from this config file. # # (2) Possible problem: run time errors messages # 527.cam4_r or 627.cam4_s *** Miscompare of cam4_validate.txt # Recommendation: Use a newer version of the compiler. # If that is not possible, try reducing the optimization. # # # Compiler issues: Contact your compiler vendor, not SPEC. # For SPEC help: http://www.spec.org/cpu2017/Docs/techsupport.html #------------------------------------------------------------------------------ #--------- Label -------------------------------------------------------------- # Arbitrary string to tag binaries (no spaces allowed) # Two Suggestions: # (1) EDIT this label as you try new ideas. %define label "mytest" # (2) Use a label meaningful to *you*. #--------- Preprocessor ------------------------------------------------------- %ifndef %{bits} # EDIT to control 32 or 64 bit compilation. Or, % define bits 64 # you can set it on the command line using: %endif # 'runcpu --define bits=nn' %ifndef %{build_ncpus} # EDIT to adjust number of simultaneous compiles. % define build_ncpus 8 # Or, you can set it on the command line: %endif # 'runcpu --define build_ncpus=nn' # Don't change this part. %define os LINUX %if %{bits} == 64 % define model -m64 %elif %{bits} == 32 % define model -m32 %else % error Please define number of bits - see instructions in config file %endif %if %{label} =~ m/ / % error Your label "%{label}" contains spaces. Please try underscores instead. %endif %if %{label} !~ m/^[a-zA-Z0-9._-]+$/ % error Illegal character in label "%{label}". Please use only alphanumerics, underscore, hyphen, and period. %endif #--------- Global Settings ---------------------------------------------------- # For info, see: # https://www.spec.org/cpu2017/Docs/config.html#fieldname # Example: https://www.spec.org/cpu2017/Docs/config.html#tune command_add_redirect = 1 flagsurl = $[top]/config/flags/gcc.xml ignore_errors = 1 iterations = 1 label = %{label}-m%{bits} line_width = 1020 log_line_width = 1020 makeflags = --jobs=%{build_ncpus} mean_anyway = 1 output_format = txt,html,cfg,pdf,csv preenv = 1 reportable = 0 tune = base #--------- How Many CPUs? ----------------------------------------------------- # Both SPECrate and SPECspeed can test multiple chips / cores / hw threads # - For SPECrate, you set the number of copies. # - For SPECspeed, you set the number of threads. # 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 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 # # threads - This config file sets a starting point. You could try raising # it. A higher thread count is much more likely to be useful for # fpspeed than for intspeed. # intrate,fprate: copies = 1 # EDIT to change number of copies (see above) intspeed,fpspeed: threads = 4 # EDIT to change number of OpenMP threads (see above) #------- Compilers ------------------------------------------------------------ default: # EDIT: The parent directory for your compiler. # Do not include the trailing /bin/ # Do not include a trailing slash # Examples: # 1 On a Red Hat system, you said # 'yum install devtoolset-7' # Use: % define gcc_dir "/opt/rh/devtoolset-7/root/usr" # # 2 You built GCC in: /disk1/mybuild/gcc-8.1.0/bin/gcc # Use: % define gcc_dir "/disk1/mybuild/gcc-8.1.0" # # 3 You want: /usr/bin/gcc # Use: % define gcc_dir "/usr" # WARNING: See section # "Known Limitations with GCC 4" # %ifndef %{gcc_dir} % define gcc_dir "/opt/rh/devtoolset-7/root/usr" # EDIT (see above) %endif # EDIT if needed: the preENV line adds library directories to the runtime # path. You can adjust it, or add lines for other environment variables. # See: https://www.spec.org/cpu2017/Docs/config.html#preenv # and: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64 #preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64:%{ENV_LD_LIBRARY_PATH} SPECLANG = %{gcc_dir}/bin/ CC = $(SPECLANG)gcc -std=c99 %{model} CXX = $(SPECLANG)g++ -std=c++03 %{model} FC = $(SPECLANG)gfortran %{model} # How to say "Show me your version, please" CC_VERSION_OPTION = -v CXX_VERSION_OPTION = -v FC_VERSION_OPTION = -v default: %if %{bits} == 64 sw_base_ptrsize = 64-bit sw_peak_ptrsize = Not Applicable %else sw_base_ptrsize = 32-bit sw_peak_ptrsize = Not Applicable %endif #--------- Portability -------------------------------------------------------- default: # data model applies to all benchmarks %if %{bits} == 32 # Strongly recommended because at run-time, operations using modern file # systems may fail spectacularly and frequently (or, worse, quietly and # randomly) if a program does not accommodate 64-bit metadata. EXTRA_PORTABILITY = -D_FILE_OFFSET_BITS=64 %else EXTRA_PORTABILITY = -DSPEC_LP64 %endif # Benchmark-specific portability (ordered by last 2 digits of bmark number) 500.perlbench_r,600.perlbench_s: #lang='C' %if %{bits} == 32 % define suffix IA32 %else % define suffix X64 %endif PORTABILITY = -DSPEC_%{os}_%{suffix} 521.wrf_r,621.wrf_s: #lang='F,C' CPORTABILITY = -DSPEC_CASE_FLAG FPORTABILITY = -fconvert=big-endian 523.xalancbmk_r,623.xalancbmk_s: #lang='CXX' PORTABILITY = -DSPEC_%{os} 526.blender_r: #lang='CXX,C' PORTABILITY = -funsigned-char -DSPEC_LINUX 527.cam4_r,627.cam4_s: #lang='F,C' PORTABILITY = -DSPEC_CASE_FLAG 628.pop2_s: #lang='F,C' CPORTABILITY = -DSPEC_CASE_FLAG FPORTABILITY = -fconvert=big-endian #-------- Tuning Flags common to Base and Peak -------------------------------- # # Speed (OpenMP and Autopar allowed) # %if %{bits} == 32 intspeed,fpspeed: # # Many of the speed benchmarks (6nn.benchmark_s) do not fit in 32 bits # If you wish to run SPECint2017_speed or SPECfp2017_speed, please use # # runcpu --define bits=64 # fail_build = 1 %else intspeed,fpspeed: EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP fpspeed: # # 627.cam4 needs a big stack; the preENV will apply it to all # benchmarks in the set, as required by the rules. # preENV_OMP_STACKSIZE = 120M %endif #-------- Baseline Tuning Flags ---------------------------------------------- # # EDIT if needed -- Older GCC might not support some of the optimization # switches here. See also 'About the -fno switches' below. # default=base: # flags for all base OPTIMIZE = -g -O3 -march=native -fno-unsafe-math-optimizations -fno-tree-loop-vectorize intrate,intspeed=base: # flags for integer base EXTRA_COPTIMIZE = -fno-strict-aliasing -fgnu89-inline # Notes about the above # - 500.perlbench_r/600.perlbench_s needs -fno-strict-aliasing. # - 502.gcc_r/602.gcc_s needs -fgnu89-inline or -z muldefs # - For 'base', all benchmarks in a set must use the same options. # - Therefore, all base benchmarks get the above. See: # www.spec.org/cpu2017/Docs/runrules.html#BaseFlags # www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html # www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html #-------- Peak Tuning Flags ---------------------------------------------- default: # If you develop some peak tuning, remove these two lines basepeak = yes # and put your tuning in the default=peak: section below. default=peak: # # ----------------------- # About the -fno switches # ----------------------- # # For 'base', this config file (conservatively) disables some optimizations. # You might want to try turning some of them back on, by creating a 'peak' # section here, with individualized benchmark options: # # 500.perlbench_r=peak: # OPTIMIZE = this # 502.gcc_r=peak: # OPTIMIZE = that # 503.bwaves_r=peak: # OPTIMIZE = other .....(and so forth) # # If you try it: # - You must remove the 'basepeak' option, above. # - You will need time and patience, to diagnose and avoid any errors. # - perlbench is unlikely to work with strict aliasing # - Some floating point benchmarks may get wrong answers, depending on: # the particular chip # the version of GCC # other optimizations enabled # -m32 vs. -m64 # - See: http://www.spec.org/cpu2017/Docs/config.html # - and: http://www.spec.org/cpu2017/Docs/runrules.html #------------------------------------------------------------------------------ # Tester and System Descriptions - EDIT all sections below this point #------------------------------------------------------------------------------ # For info about any field, see # https://www.spec.org/cpu2017/Docs/config.html#fieldname # Example: https://www.spec.org/cpu2017/Docs/config.html#hw_memory #------------------------------------------------------------------------------- #--------- EDIT to match your version ----------------------------------------- default: sw_compiler001 = C/C++/Fortran: Version 7.2.1 of GCC, the sw_compiler002 = GNU Compiler Collection #--------- EDIT info about you ------------------------------------------------ # To understand the difference between hw_vendor/sponsor/tester, see: # https://www.spec.org/cpu2017/Docs/config.html#test_sponsor intrate,intspeed,fprate,fpspeed: # Important: keep this line hw_vendor = My Corporation tester = My Corporation test_sponsor = My Corporation license_num = nnn (Your SPEC license number) # prepared_by = # Ima Pseudonym # Whatever you like: is never output #--------- EDIT system availability dates ------------------------------------- intrate,intspeed,fprate,fpspeed: # Important: keep this line # Example # Brief info about field hw_avail = # Nov-2099 # Date of LAST hardware component to ship sw_avail = # Nov-2099 # Date of LAST software component to ship #--------- EDIT system information -------------------------------------------- intrate,intspeed,fprate,fpspeed: # Important: keep this line # Example # Brief info about field # hw_cpu_name = # Intel Xeon E9-9999 v9 # chip name hw_cpu_nominal_mhz = # 9999 # Nominal chip frequency, in MHz hw_cpu_max_mhz = # 9999 # Max chip frequency, in MHz # hw_disk = # 9 x 9 TB SATA III 9999 RPM # Size, type, other perf-relevant info hw_model = # TurboBlaster 3000 # system model name # hw_nchips = # 99 # number chips enabled hw_ncores = # 9999 # number cores enabled hw_ncpuorder = # 1-9 chips # Ordering options hw_nthreadspercore = # 9 # number threads enabled per core hw_other = # TurboNUMA Router 10 Gb # Other perf-relevant hw, or "None" # hw_memory001 = # 999 GB (99 x 9 GB 2Rx4 PC4-2133P-R, # The 'PCn-etc' is from the JEDEC # hw_memory002 = # running at 1600 MHz) # label on the DIMM. hw_pcache = # 99 KB I + 99 KB D on chip per core # Primary cache size, type, location hw_scache = # 99 KB I+D on chip per 9 cores # Second cache or "None" hw_tcache = # 9 MB I+D on chip per chip # Third cache or "None" hw_ocache = # 9 GB I+D off chip per system board # Other cache or "None" fw_bios = # American Megatrends 39030100 02/29/2016 # Firmware information # sw_file = # ext99 # File system # sw_os001 = # Linux Sailboat # Operating system # sw_os002 = # Distribution 7.2 SP1 # and version sw_other = # TurboHeap Library V8.1 # Other perf-relevant sw, or "None" # sw_state = # Run level 99 # Software state. # Note: Some commented-out fields above are automatically set to preliminary # values by sysinfo # https://www.spec.org/cpu2017/Docs/config.html#sysinfo # Uncomment lines for which you already know a better answer than sysinfo