1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright(c) 2023 Advanced Micro Devices, Inc. All rights reserved. 3 4How to get best performance on AMD platform 5=========================================== 6 7This document provides a detailed, step-by-step guide 8on configuring AMD EPYC System-on-Chip (SoC) for optimal performance 9in DPDK applications across different SoC families. 10 11The overall performance is influenced by factors such as BIOS settings, 12NUMA per socket configuration, memory per NUMA allocation, 13and proximity to IO devices. 14 15These are covered in various sections of tuning guides shared below. 16 17 18Tuning Guides for AMD EPYC SoC 19------------------------------ 20 21#. `MILAN <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/data-plane-development-kit-tuning-guide-amd-epyc7003-series-processors.pdf>`_ 22 23#. `GENOA <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58017-amd-epyc-9004-tg-data-plane-dpdk.pdf>`_ 24 25#. `BERGAMO|SIENNA <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58310_amd-epyc-8004-tg-data-plane-dpdk.pdf>`_ 26 27 28General Requirements 29-------------------- 30 31Memory 32~~~~~~ 33 34Refer to the `Memory Configuration` section for specific details related to the System-on-Chip (SoC). 35 36.. note:: 37 38 As a general guideline, it is recommended to populate 39 at least one memory DIMM in each memory channel. 40 The optimal memory size for each DIMM is at least 8, 16, or 32 GB, 41 utilizing ECC modules. 42 43 44BIOS 45---- 46 47Refer to the `BIOS Performance` section in tuning guide for recommended settings. 48 49 50Linux GRUB 51---------- 52 53Refer to the `Linux OS & Kernel` in tuning guide for recommended settings. 54 55 56NIC and Accelerator 57------------------- 58 59AMD EPYC supports PCIe Generation of 1|2|3|4|5 depending upon SoC families. 60For best performance ensure the right slots are used which provides adequate bandwidth. 61 62Use ``lspci`` to check the speed of a PCI slot:: 63 64 lspci -s 41:00.0 -vv | grep LnkSta 65 66 LnkSta: Speed 16GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- ... 67 LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ ... 68 69 70Compiler 71-------- 72 73Refer to the `Compiler Flags` in tuning guide for recommended version and `-march` flags. 74 75 76Max LCores 77---------- 78 79Refer to the `Compilation` in tuning guide for allowing more threads to run as DPDK `lcores`. 80 81 82Power 83----- 84 85Core 86~~~~ 87 88AMD EPYC SoC supports CPU power functions via ``rte_power`` API from `23.11 LTS` onwards. 89These are tested and validated on MILAN, GENOA, BERGAMO and SIENA 90using Linux kernel `6.4` and above with ``amd_pstate`` power driver. 91 92.. note:: 93 94 * Power libraries are supported on Linux only. 95 * DPDK uncore support on Linux is work in progress. 96