SPEC CPU2017 Platform Settings for Epsylon systems based on Supermicro Solutions

Firmware / BIOS / Microcode Settings

Power Technology:
    This BIOS option allows to disable or define Power Management on server.
    This can be one of the following:  [Disable], [Energy Efficient] or [Custom].
    Users should set this option as [Custom] for performing application benchmarking.
    
Turbo Mode:
    The options are [Disable] or [Enable].
    This option allows the processor to automatically increrase its frequency if it is running below power, temperature, and current specifications.
    Users should set this option as [Enable] for performing application benchmarking.
    
Enhanced Halt State (C1E):
    The options are [Disable] or [Enable].
    When enabled, C1E halt state invoked by the operating system's idle process turns down the entire CPU's clock frequency and voltage and cut a CPU's power consumption and heat production.
    Users should set this option as [Disabled] for performing application benchmarking.
    
CPU C6 report:
    The options are [Disable], [Enable] or [Auto].
    Enabling this option allows the processor to send the C6 report to the Operating system.
    Users should set this option as [Disable] for performing application benchmarking.
    
Package C State:
    The options are [C0/C1 state], [C2 state], [C6 non Retention state], [C6 Retention state], [No limit] or [Auto].
    Users should set this option as [No limit] for performing application benchmarking.
    
Software Controlled T-States:
    The options are [Enable] or [Disable].
    Users should set this option as [Disable] for performing application benchmarking.
    
Hyper-Threading (All):
    Enabling this option allows to use processor resources more efficiently, enabling multiple threads to run on each core
    and increases processor throughput, improving overall performance on threaded software.
    This can be one of the following:  [Enable] or [Disable].
    Users should set this option as [Enable] for CPU2017 INT/FP Rate benchmark.
    Users should set this option as [Disable] for CPU2017 INT/FP Speed benchmark.
    
Enforce POR:
    Enable to enforce POR restriction for DDR4 frequency and voltage programming.
    This can be one of the following:  [Disable] or [POR].
    
Memory Frequency:
    When Enforce POR option is set as [Disable], users can manually set Memory Frequency to maximum supported by the processor.
    
Patrol Scrub:
    The options are [Disable] and [Enable].
    When enabled, performs periodic checks on memory cells and proactively walks through populated memory space, to seek and correct soft ECC errors.
    Users should set this option as [Disable] for performing application benchmarking.
    
IMC Interleaving:
    This BIOS option controls the interleaving between the Integrated Memory Controllers (IMCs).
    The options are [Auto], [1-way Interleave] or [2-way Interleave].
    There are two Integrated Memory Controllers in Skylake CPUs.
    If IMC Interleaving is set to 2-way, addresses will be interleaved between the two IMCs. 
    If IMC Interleaving is set to 1-way, there will be no interleaving.  
    If Sub_NUMA Cluster is disabled, IMC Interleaving should be set to 2-way.  
    If Sub_NUMA Cluster is enabled, IMC Interleaving should be set to 1-way. 
    
SNC:
    The options are [Disable], [Enable] or [Auto].
    SNC (Sub_NUMA Cluster) provides similar localization benefits as Cluster-On-Die (COD), without some of COD downsides. 
    SNC breaks up the LLC into two disjoint clusters based on address range, with each cluster bound to a subset of the memory controllers in the system. 
    SNC improves average latency to the LLC (last level cache) and memory. 
    For a multi-socketed system, all clusters are mapped to unique NUMA domains. 
    IMC Interleaving must be set to the correct value to correspond with SNC enable/disable. 
    
NUMA:
    The options are [Disable] or [Enable].
    For OS and applications which are “NUMA aware” recommended setting is ENABLE. It can improve performance by faster access to local memory for NUMA nodes when more than single socket is used.
    For all other cases it should be left at Default: DISABLE. In such case the hardware will round-robin cachelines from each socket resulting in all memory allocations being spread over all sockets.
    So for OS or application which is not “NUMA aware” it will improve performance. Recommended also when the memory allocation exceeds the amount of memory on any single Numa node.