SPEC CPU2017 Platform Settings for Supermicro Systems
- kernel.randomize_va_space (ASLR)
-
This setting can be used to select the type of process address space randomization.
Defaults differ based on whether the architecture supports ASLR, whether the kernel
was built with the CONFIG_COMPAT_BRK option or not, or the kernel boot options used.
Possible settings:
- 0: Turn process address space randomization off.
- 1: Randomize addresses of mmap base, stack, and VDSO pages.
- 2: Additionally randomize the heap. (This is probably the default.)
Disabling ASLR can make process execution more deterministic and runtimes more consistent.
For more information see the randomize_va_space entry in the
Linux sysctl documentation.
- Transparent Hugepages (THP)
-
THP is an abstraction layer that automates most aspects of creating, managing,
and using huge pages. It is designed to hide much of the complexity in using
huge pages from system administrators and developers. Huge pages
increase the memory page size from 4 kilobytes to 2 megabytes. This provides
significant performance advantages on systems with highly contended resources
and large memory workloads. If memory utilization is too high or memory is badly
fragmented which prevents hugepages being allocated, the kernel will assign
smaller 4k pages instead. Most recent Linux OS releases have THP enabled by default.
THP usage is controlled by the sysfs setting /sys/kernel/mm/transparent_hugepage/enabled.
Possible values:
- never: entirely disable THP usage.
- madvise: enable THP usage only inside regions marked MADV_HUGEPAGE using madvise(3).
- always: enable THP usage system-wide. This is the default.
THP creation is controlled by the sysfs setting /sys/kernel/mm/transparent_hugepage/defrag.
Possible values:
- never: if no THP are available to satisfy a request, do not attempt to make any.
- defer: an allocation requesting THP when none are available get normal pages while requesting THP creation in the background.
- defer+madvise: acts like "always", but only for allocations in regions marked MADV_HUGEPAGE using madvise(3); for all other regions it's like "defer".
- madvise: acts like "always", but only for allocations in regions marked MADV_HUGEPAGE using madvise(3). This is the default.
- always: an allocation requesting THP when none are available will stall until some are made.
An application that "always" requests THP often can benefit from waiting for an allocation until those huge pages can be assembled.
For more information see the Linux transparent hugepage documentation.
- Determinism Control:
-
This BIOS option allows for choose AGESA determinism control.
AGESA is an acronym for "AMD Generic Encapsulated Software Architecture."
AGESA is a bootstrap protocol by which system devices on AMD64-architecture mainboards are initialized, it responsible for the initialization of the processor cores, memory, and the HyperTransport controller.
Available settings are:
- Manual: User can customize determinism slider.
- Auto (Default setting): Use the processor fused determinism control.
- Determinism Slider:
-
This BIOS option allows for Enable/Disable AGESA determinism to control performance.
AGESA is an acronym for "AMD Generic Encapsulated Software Architecture."
AGESA is a bootstrap protocol by which system devices on AMD64-architecture mainboards are initialized, it responsible for the initialization of the processor cores, memory, and the HyperTransport controller.
Available settings are:
- Performance: AGESA will enable 100% deterministic performance control.
- Power: AGESA will not enable deterministic performance control.
- Auto (Default setting): Use default value for deterministic performance control.
- cTDP Control:
-
This BIOS option is for "Configurable TDP (cTDP)", it allows user can set customized value for TDP. Available settings are:
- Auto (Default setting): Use the fused TDP value.
- Manual: Let user specifies customized TDP value.
- cTDP:
-
TDP is an acronym for “Thermal Design Power.” TDP is the recommended target for power used when designing the cooling capacity for a server.
EPYC processors are able to control this target power consumption within certain limits. This capability is referred to as “configurable TDP” or "cTDP."
cTDP can be used to reduce power consumption for greater efficiency, or in some cases, increase power consumption above the default value to provide additional performance.
cTDP is controlled using a BIOS option.
The default EPYC cTDP value corresponds with the microprocessor’s nominal TDP. For the EPYC 7413, the default value is 180W.
The default cTDP value is set at a good balance between performance and energy efficiency.
The EPYC 7413 cTDP can be reduced as low as 165W, which will minimize the power consumption for the processor under load, but at the expense of peak performance.
Increasing the EPYC 7713 cTDP to 240W will maximize peak performance by allowing the CPU to maintain higher dynamic clock speeds, but will make the microprocessor less energy efficient.
Note that at maximum cTDP, the CPU thermal solution must be capable of dissipating at least 240W or the EPYC 7713 processor might engage in thermal throttling under load.
The available cTDP ranges for each EPYC model are in the table below:
Model | Nominal TDP | Minimum cTDP | Maximum cTDP** |
EPYC 7763 | 280W | 225W | 280W |
EPYC 7713 | 225W | 225W | 240W |
EPYC 7713P | 225W | 225W | 240W |
EPYC 7663 | 240W | 225W | 240W |
EPYC 7643 | 225W | 225W | 240W |
EPYC 75F3 | 280W | 225W | 280W |
EPYC 7543 | 225W | 225W | 240W |
EPYC 7543P | 225W | 225W | 240W |
EPYC 7513 | 200W | 165W | 200W |
EPYC 7453 | 225W | 225W | 240W |
EPYC 74F3 | 240W | 225W | 240W |
EPYC 7443 | 200W | 165W | 200W |
EPYC 7443P | 200W | 165W | 200W |
EPYC 7413 | 180W | 165W | 200W |
EPYC 73F3 | 224W | 225W | 240W |
EPYC 7343 | 195W | 165W | 200W |
EPYC 7313 | 155W | 155W | 180W |
EPYC 7313P | 155W | 155W | 180W |
EPYC 72F3 | 180W | 165W | 200W |
* cTDP must remain below the thermal solution design parameters or thermal throttling could be frequently encountered.
- IOMMU:
-
The I/O Memory Management Unit (IOMMU) extends the AMD64 system architecture by adding support for address translation and system memory access protection on DMA transfers from periph-eral devices.
IOMMU also helps filter and remap interrupts from peripheral devices.
Available settings are:
- Disabled: Disable IOMMU support.
- Enabled: Enable IOMMU support.
- Auto (Default setting): Use default value for IOMMU. The default value is disable.
- Package Power Limit Control:
-
This is a per processor Package Power Limit (PPT) value applicable for all populated processors in the system.
This can be set to limit the PPT to a certain value.
Available settings are:
- Auto (Default setting): Use the fused processor PPT value.
- Manual: Let user specifies customized processor PPT value.
- Package Power Limit:
-
Set customize processor Package Power Limit (PPT) value to be used on all populated processors in the system.
If set to 240 = Use the 240W PPT ***PPT will be used as the ASIC power limit***
- APBDIS:
-
APBDis is an IO Boost disable on uncore.
For any system user that needs to block these uncore optimizations that are impacting base core clock speed, we are exposing a method to disable this behavior called APBDis.
This locks the fabric clock to the non-boosted speeds.
Available settings are:
- 0: Disable APBDIS, locks the fabric clock to the non-boosted speeds.
- 1: Enable APBDIS, unlocks the fabric clock to the boosted speeds.
- Auto (Default setting): Use default value for APBDIS. The default value is 0.
- NUMA Nodes Per Socket:
-
Specifies the number of desired NUMA nodes per socket.
This option allows the user to divide the memory that each socket has into a certain number of NUMA memory nodes for optimal memory bandwidth.
Available settings are:
- NPS0: It will attempt to interleave the two sockets together.
- NPS1: Each processor socket will have one NUMA memory node.
- NPS2: Each processor socket will have two NUMA memory nodes.
- NPS4: Each processor socket will have four NUMA memory nodes.
- Auto (Default setting): Use default value for NUMA nodes per socket. The default value is NPS1.