1*de1f01a8SVipin Varghese.. SPDX-License-Identifier: BSD-3-Clause 2*de1f01a8SVipin Varghese Copyright(c) 2023 Advanced Micro Devices, Inc. All rights reserved. 3*de1f01a8SVipin Varghese 4*de1f01a8SVipin VargheseHow to get best performance on AMD platform 5*de1f01a8SVipin Varghese=========================================== 6*de1f01a8SVipin Varghese 7*de1f01a8SVipin VargheseThis document provides a detailed, step-by-step guide 8*de1f01a8SVipin Vargheseon configuring AMD EPYC System-on-Chip (SoC) for optimal performance 9*de1f01a8SVipin Varghesein DPDK applications across different SoC families. 10*de1f01a8SVipin Varghese 11*de1f01a8SVipin VargheseThe overall performance is influenced by factors such as BIOS settings, 12*de1f01a8SVipin VargheseNUMA per socket configuration, memory per NUMA allocation, 13*de1f01a8SVipin Vargheseand proximity to IO devices. 14*de1f01a8SVipin Varghese 15*de1f01a8SVipin VargheseThese are covered in various sections of tuning guides shared below. 16*de1f01a8SVipin Varghese 17*de1f01a8SVipin Varghese 18*de1f01a8SVipin VargheseTuning Guides for AMD EPYC SoC 19*de1f01a8SVipin Varghese------------------------------ 20*de1f01a8SVipin Varghese 21*de1f01a8SVipin Varghese#. `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*de1f01a8SVipin Varghese 23*de1f01a8SVipin Varghese#. `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*de1f01a8SVipin Varghese 25*de1f01a8SVipin Varghese#. `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*de1f01a8SVipin Varghese 27*de1f01a8SVipin Varghese 28*de1f01a8SVipin VargheseGeneral Requirements 29*de1f01a8SVipin Varghese-------------------- 30*de1f01a8SVipin Varghese 31*de1f01a8SVipin VargheseMemory 32*de1f01a8SVipin Varghese~~~~~~ 33*de1f01a8SVipin Varghese 34*de1f01a8SVipin VargheseRefer to the `Memory Configuration` section for specific details related to the System-on-Chip (SoC). 35*de1f01a8SVipin Varghese 36*de1f01a8SVipin Varghese.. note:: 37*de1f01a8SVipin Varghese 38*de1f01a8SVipin Varghese As a general guideline, it is recommended to populate 39*de1f01a8SVipin Varghese at least one memory DIMM in each memory channel. 40*de1f01a8SVipin Varghese The optimal memory size for each DIMM is at least 8, 16, or 32 GB, 41*de1f01a8SVipin Varghese utilizing ECC modules. 42*de1f01a8SVipin Varghese 43*de1f01a8SVipin Varghese 44*de1f01a8SVipin VargheseBIOS 45*de1f01a8SVipin Varghese---- 46*de1f01a8SVipin Varghese 47*de1f01a8SVipin VargheseRefer to the `BIOS Performance` section in tuning guide for recommended settings. 48*de1f01a8SVipin Varghese 49*de1f01a8SVipin Varghese 50*de1f01a8SVipin VargheseLinux GRUB 51*de1f01a8SVipin Varghese---------- 52*de1f01a8SVipin Varghese 53*de1f01a8SVipin VargheseRefer to the `Linux OS & Kernel` in tuning guide for recommended settings. 54*de1f01a8SVipin Varghese 55*de1f01a8SVipin Varghese 56*de1f01a8SVipin VargheseNIC and Accelerator 57*de1f01a8SVipin Varghese------------------- 58*de1f01a8SVipin Varghese 59*de1f01a8SVipin VargheseAMD EPYC supports PCIe Generation of 1|2|3|4|5 depending upon SoC families. 60*de1f01a8SVipin VargheseFor best performance ensure the right slots are used which provides adequate bandwidth. 61*de1f01a8SVipin Varghese 62*de1f01a8SVipin VargheseUse ``lspci`` to check the speed of a PCI slot:: 63*de1f01a8SVipin Varghese 64*de1f01a8SVipin Varghese lspci -s 41:00.0 -vv | grep LnkSta 65*de1f01a8SVipin Varghese 66*de1f01a8SVipin Varghese LnkSta: Speed 16GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- ... 67*de1f01a8SVipin Varghese LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ ... 68*de1f01a8SVipin Varghese 69*de1f01a8SVipin Varghese 70*de1f01a8SVipin VargheseCompiler 71*de1f01a8SVipin Varghese-------- 72*de1f01a8SVipin Varghese 73*de1f01a8SVipin VargheseRefer to the `Compiler Flags` in tuning guide for recommended version and `-march` flags. 74