From 5c9f4f9974fe9e6e9d036f95273db77cdfa05339 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 05:18:38 -0500 Subject: [PATCH 01/12] Bump rocm-docs-core from 1.31.2 to 1.31.3 in /docs/sphinx (#21) Bumps [rocm-docs-core](https://github.com/ROCm/rocm-docs-core) from 1.31.2 to 1.31.3. - [Release notes](https://github.com/ROCm/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/ROCm/rocm-docs-core/compare/v1.31.2...v1.31.3) --- updated-dependencies: - dependency-name: rocm-docs-core dependency-version: 1.31.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/sphinx/requirements.in | 2 +- docs/sphinx/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/sphinx/requirements.in b/docs/sphinx/requirements.in index 4fed706..c77e32b 100644 --- a/docs/sphinx/requirements.in +++ b/docs/sphinx/requirements.in @@ -1,4 +1,4 @@ -rocm-docs-core==1.31.2 +rocm-docs-core==1.31.3 sphinx-reredirects sphinxcontrib.datatemplates==0.11.0 Sphinx-Substitution-Extensions==2026.1.12 diff --git a/docs/sphinx/requirements.txt b/docs/sphinx/requirements.txt index 8f10d51..7abcd8a 100644 --- a/docs/sphinx/requirements.txt +++ b/docs/sphinx/requirements.txt @@ -193,7 +193,7 @@ requests==2.32.5 # via # pygithub # sphinx -rocm-docs-core==1.31.2 +rocm-docs-core==1.31.3 # via -r requirements.in rpds-py==0.28.0 # via From fbb88a5c4e56d3c9d48ca036ac78ae5422d2c5f4 Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Mon, 23 Mar 2026 12:41:01 -0400 Subject: [PATCH 02/12] 30.30.1 release update (#26) * 30.30.1 release update * bump up OL version to 10.1 * add release notes * update release date * update GA date * Update resolved issues * simplify wordings * bump up OL version to 9.7 * bump up RL version to 9.7 * update GA date * update dkms outputs * update OS support --- docs/compatibility/compatibility-matrix.rst | 2 +- docs/conf.py | 16 ++++---- docs/documentation/release-notes.md | 18 ++++----- .../install/detailed-install/post-install.rst | 40 +++++++++---------- .../detailed-install/prerequisites.rst | 7 +++- docs/release/versions.rst | 1 + 6 files changed, 44 insertions(+), 40 deletions(-) diff --git a/docs/compatibility/compatibility-matrix.rst b/docs/compatibility/compatibility-matrix.rst index 492cf2e..16f128e 100644 --- a/docs/compatibility/compatibility-matrix.rst +++ b/docs/compatibility/compatibility-matrix.rst @@ -6,7 +6,7 @@ Compatibility matrix ************************************************************************************** -The AMD GPU Driver (amdgpu) 30.30.0 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix +The AMD GPU Driver (amdgpu) 30.30.1 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix `__. ====================================== diff --git a/docs/conf.py b/docs/conf.py index 1e410ac..cde8880 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,15 +7,15 @@ html_context["READTHEDOCS"] = True project = "AMD GPU Driver (amdgpu)" -version = "30.30.0" -rocm_version = '7.2' -rocm_directory_version = '7.2.0' # in 6.0 rocm was located in /opt/rocm-6.0.0 -amdgpu_version = '30.30' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ -amdgpu_url_version = '30.30' +version = "30.30.1" +rocm_version = '7.2.1' +rocm_directory_version = '7.2.1' # in 6.0 rocm was located in /opt/rocm-6.0.0 +amdgpu_version = '30.30.1' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ +amdgpu_url_version = '30.30.1' release = version html_title = f"AMD GPU Driver (amdgpu) {version}" author = "Advanced Micro Devices, Inc." -copyright = "Copyright (c) 2025 Advanced Micro Devices, Inc. All rights reserved." +copyright = "Copyright (c) 2026 Advanced Micro Devices, Inc. All rights reserved." # Supported linux version numbers ubuntu_version_numbers = [('24.04', 'noble'), ('22.04', 'jammy')] @@ -24,8 +24,8 @@ rhel_version_numbers = ['10.1', '10.0', '9.7', '9.6', '9.4', '8.10'] sles_version_numbers = ['15.7'] ol_release_version_numbers = ['10', '9', '8'] -ol_version_numbers = ['10.0', '9.6', '8.10'] -rl_version_numbers = ['9.6'] +ol_version_numbers = ['10.1', '9.7', '8.10'] +rl_version_numbers = ['9.7'] html_context = { "ubuntu_version_numbers" : ubuntu_version_numbers, diff --git a/docs/documentation/release-notes.md b/docs/documentation/release-notes.md index b128ad7..8e5f9b1 100644 --- a/docs/documentation/release-notes.md +++ b/docs/documentation/release-notes.md @@ -1,23 +1,21 @@ -# AMD GPU Driver (amdgpu) 30.30.0 release notes +# AMD GPU Driver (amdgpu) 30.30.1 release notes -The release notes provide release highlights and resolved issues since the previous AMD GPU Driver release (30.20.1). +The release notes provide release highlights and resolved issues since the previous AMD GPU Driver release (30.30.0). ## Release highlights -The following are notable new features and improvements in AMD GPU Driver 30.30.0. +The following are notable new features and improvements in AMD GPU Driver 30.30.1. ### Operating system and hardware support changes -This release doesn't introduce operating system or hardware support changes. +The AMD GPU Driver 30.30.1 introduces support for Ubuntu 24.04.4 HWE (Hardware Enablement). For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). -## Resolved issues - -The following previously known issues have been resolved in this release: +### GPU resiliency -- Resolved an issue where several GDB unit tests were timing out because the test application sent a `kill` command to the kernel while it was still shutting down VM entities, and the VM release work queue was active. +AMD GPU Driver now supports Multimedia Engine Reset for AMD Instinct MI325X GPUs. This finer-grain GPU resiliency feature enables recovery from faults related to VCN or JPEG without requiring a full GPU reset, thereby improving system stability and fault tolerance. Note that VCN queue reset functionality requires PLDM bundle 01.25.06.05 (or later) firmware. -- Resolved an issue where `MEM_USAGE` showed values in exabytes during KFD tests. +## Resolved issues -- Resolved errors that occurred during the execution of the `mem_leak_hip_samples` test. +Resolved an issue on Navi3x platforms where the Kernel Fusion Driver (KFD) could stop functioning if a GPU device was removed at runtime. The driver now supports hot‑unplug scenarios and reports device unavailability when all GPUs are removed. This fix has been validated on MI200-Series GPUs and MI300-Series GPUs. diff --git a/docs/install/detailed-install/post-install.rst b/docs/install/detailed-install/post-install.rst index dc9db13..dda01be 100644 --- a/docs/install/detailed-install/post-install.rst +++ b/docs/install/detailed-install/post-install.rst @@ -25,13 +25,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2278356.24.04, 6.14.0-37-generic, x86_64: installed + amdgpu/6.16.13-2303411.24.04, 6.17.0-19-generic, x86_64: installed - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2278356``: amdgpu driver build number + - ``2303411``: amdgpu driver build number - ``24.04``: distro version - - ``6.14.0-37-generic``: kernel version of dkms build + - ``6.17.0-19-generic``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: Debian @@ -44,12 +44,12 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2278356.24.04, 6.12.57+deb13-amd64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2303411.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2278356``: amdgpu driver build number - - ``6.12.57+deb13-amd64``: kernel version of dkms build + - ``2303411``: amdgpu driver build number + - ``6.12.63+deb13-amd64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: RHEL @@ -62,13 +62,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2278356.el10, 6.12.0-124.8.1.el10_1.x86_64: installed (Original modules exist) + amdgpu/6.16.13-2303411.el10, 6.12.0-124.45.1.el10_1.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2278356``: amdgpu driver build number + - ``2303411``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-124.8.1.el10_1.x86_64``: kernel version of dkms build + - ``6.12.0-124.45.1.el10_1.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: OL @@ -77,17 +77,17 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp sudo dkms status - **Sample output for OL 10.0:** + **Sample output for OL 10.1:** .. code-block:: bash - amdgpu/6.16.13-2278356.el10, 6.12.0-106.55.4.2.el10uek.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2303411.el10, 6.12.0-109.67.6.el10uek.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2278356``: amdgpu driver build number + - ``2303411``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-106.55.4.2.el10uek.x86_64``: kernel version of dkms build + - ``6.12.0-109.67.6.el10uek.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: Rocky @@ -96,17 +96,17 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp sudo dkms status - **Sample output for Rocky 9.6:** + **Sample output for Rocky 9.7:** .. code-block:: bash - amdgpu/6.16.13-2278356.el9, 5.14.0-611.20.1.el9_7.x86_64, x86_64: installed + amdgpu/6.16.13-2303411.el9, 5.14.0-611.36.1.el9_7.x86_64, x86_64: installed - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2278356``: amdgpu driver build number + - ``2303411``: amdgpu driver build number - ``el9``: distro version - - ``5.14.0-611.20.1.el9_7.x86_64``: kernel version of dkms build + - ``5.14.0-611.36.1.el9_7.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: SLES @@ -119,12 +119,12 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2278356, 6.4.0-150700.53.25-default, x86_64: installed (original_module exists) + amdgpu/6.16.13-2303411, 6.4.0-150700.53.31-default, x86_64: installed (original_module exists) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2278356``: amdgpu driver build number - - ``6.4.0-150700.53.25-default``: kernel version of dkms build + - ``2303411``: amdgpu driver build number + - ``6.4.0-150700.53.31-default``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. _other_resources: diff --git a/docs/install/detailed-install/prerequisites.rst b/docs/install/detailed-install/prerequisites.rst index 7c18105..cf84c09 100644 --- a/docs/install/detailed-install/prerequisites.rst +++ b/docs/install/detailed-install/prerequisites.rst @@ -153,7 +153,12 @@ This is a requirement for newer hardware on older versions of RHEL, SLES, OL, or .. code-block:: bash :substitutions: - sudo dnf update --releasever={{ os_version }} --exclude=\*release\* + {% if os_version == '10.1' -%} + sudo dnf update redhat-release + sudo dnf update --releasever={{ os_version }} --exclude=\*release\* + {%- else -%} + sudo dnf update --releasever={{ os_version }} --exclude=\*release\* + {%- endif %} {% endfor %} .. tab-item:: Oracle Linux diff --git a/docs/release/versions.rst b/docs/release/versions.rst index 1c7369c..fe79617 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,6 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 + "`30.30.1 `_", "March 23, 2026" "`30.30.0 `_", "January 21, 2026" "`30.20.1 `_", "November 26, 2025" "`30.20.0 `_", "October 30, 2025" From 27c03ae8869190a5329697794921e1a81764126e Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Mon, 23 Mar 2026 16:17:33 -0400 Subject: [PATCH 03/12] update release date --- docs/release/versions.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release/versions.rst b/docs/release/versions.rst index fe79617..547c10a 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,7 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 - "`30.30.1 `_", "March 23, 2026" + "`30.30.1 `_", "March 24, 2026" "`30.30.0 `_", "January 21, 2026" "`30.20.1 `_", "November 26, 2025" "`30.20.0 `_", "October 30, 2025" From 7a9a894b543cc071dd4425b5b4c2390c7f738c5c Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Tue, 24 Mar 2026 10:41:30 -0400 Subject: [PATCH 04/12] remove the GPU resiliency entry --- docs/documentation/release-notes.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/documentation/release-notes.md b/docs/documentation/release-notes.md index 8e5f9b1..ef4bcb1 100644 --- a/docs/documentation/release-notes.md +++ b/docs/documentation/release-notes.md @@ -12,10 +12,6 @@ The AMD GPU Driver 30.30.1 introduces support for Ubuntu 24.04.4 HWE (Hardware E For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). -### GPU resiliency - -AMD GPU Driver now supports Multimedia Engine Reset for AMD Instinct MI325X GPUs. This finer-grain GPU resiliency feature enables recovery from faults related to VCN or JPEG without requiring a full GPU reset, thereby improving system stability and fault tolerance. Note that VCN queue reset functionality requires PLDM bundle 01.25.06.05 (or later) firmware. - ## Resolved issues Resolved an issue on Navi3x platforms where the Kernel Fusion Driver (KFD) could stop functioning if a GPU device was removed at runtime. The driver now supports hot‑unplug scenarios and reports device unavailability when all GPUs are removed. This fix has been validated on MI200-Series GPUs and MI300-Series GPUs. From e6ff91f4a2197fcc7ec8e0356800541d61e7c677 Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Wed, 25 Mar 2026 07:17:47 -0400 Subject: [PATCH 05/12] update release date --- docs/release/versions.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release/versions.rst b/docs/release/versions.rst index 547c10a..f4b005c 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,7 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 - "`30.30.1 `_", "March 24, 2026" + "`30.30.1 `_", "March 25, 2026" "`30.30.0 `_", "January 21, 2026" "`30.20.1 `_", "November 26, 2025" "`30.20.0 `_", "October 30, 2025" From 83e7ba6c2e847ac78be2ca305c366c16ceff574d Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Fri, 17 Apr 2026 15:46:50 -0400 Subject: [PATCH 06/12] 30.30.2 release update (#30) * 30.30.2 release update * update word list * change from MI325X to MI300-Series * update release date * update dkms status output * fix per review * update release date * update release date --- .wordlist.txt | 1 + docs/compatibility/compatibility-matrix.rst | 2 +- docs/conf.py | 6 ++-- docs/documentation/release-notes.md | 18 +++++++--- .../install/detailed-install/post-install.rst | 34 +++++++++---------- docs/release/versions.rst | 1 + 6 files changed, 36 insertions(+), 26 deletions(-) diff --git a/.wordlist.txt b/.wordlist.txt index 8a6a833..06b2809 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -107,6 +107,7 @@ Deprecations DevCap Dockerfile Doxygen +EEPROM ELMo ENDPGM EPYC diff --git a/docs/compatibility/compatibility-matrix.rst b/docs/compatibility/compatibility-matrix.rst index 16f128e..57d9657 100644 --- a/docs/compatibility/compatibility-matrix.rst +++ b/docs/compatibility/compatibility-matrix.rst @@ -6,7 +6,7 @@ Compatibility matrix ************************************************************************************** -The AMD GPU Driver (amdgpu) 30.30.1 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix +The AMD GPU Driver (amdgpu) 30.30.2 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix `__. ====================================== diff --git a/docs/conf.py b/docs/conf.py index cde8880..78bd7f5 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,11 +7,11 @@ html_context["READTHEDOCS"] = True project = "AMD GPU Driver (amdgpu)" -version = "30.30.1" +version = "30.30.2" rocm_version = '7.2.1' rocm_directory_version = '7.2.1' # in 6.0 rocm was located in /opt/rocm-6.0.0 -amdgpu_version = '30.30.1' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ -amdgpu_url_version = '30.30.1' +amdgpu_version = '30.30.2' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ +amdgpu_url_version = '30.30.2' release = version html_title = f"AMD GPU Driver (amdgpu) {version}" author = "Advanced Micro Devices, Inc." diff --git a/docs/documentation/release-notes.md b/docs/documentation/release-notes.md index ef4bcb1..e73fae2 100644 --- a/docs/documentation/release-notes.md +++ b/docs/documentation/release-notes.md @@ -1,17 +1,25 @@ -# AMD GPU Driver (amdgpu) 30.30.1 release notes +# AMD GPU Driver (amdgpu) 30.30.2 release notes -The release notes provide release highlights and resolved issues since the previous AMD GPU Driver release (30.30.0). +The release notes provide release highlights and resolved issues since the previous AMD GPU Driver release (30.30.1). ## Release highlights -The following are notable new features and improvements in AMD GPU Driver 30.30.1. +The following are notable improvements and updates in AMD GPU Driver 30.30.2. ### Operating system and hardware support changes -The AMD GPU Driver 30.30.1 introduces support for Ubuntu 24.04.4 HWE (Hardware Enablement). +This release doesn’t introduce operating system or hardware support changes. For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). +### RAS and memory reliability improvements + +The AMD GPU Driver 30.30.2 improves the Reliability, Availability, and Serviceability (RAS) subsystem with enhanced Bad Page Retirement handling on AMD Instinct MI300 Series GPUs. The driver now correctly identifies and retires all bad pages within a physical memory row, and properly recovers from invalid EEPROM table states. + ## Resolved issues -Resolved an issue on Navi3x platforms where the Kernel Fusion Driver (KFD) could stop functioning if a GPU device was removed at runtime. The driver now supports hot‑unplug scenarios and reports device unavailability when all GPUs are removed. This fix has been validated on MI200-Series GPUs and MI300-Series GPUs. +The following previously known issues have been resolved in this release: + +- Resolved an issue on AMD Instinct MI300 Series GPUs where the RAS EEPROM bad page table could become invalid, preventing the Bad Page Retirement feature from functioning correctly. The driver now detects and resets invalid EEPROM tables, restoring proper bad page tracking. + +- Resolved an issue where VRAM type information was not being queried from firmware, causing incorrect memory type handling that affected the algorithm used to identify all bad pages within the same physical row. The driver now retrieves VRAM information directly from firmware for accurate bad page identification on AMD Instinct MI300 Series GPUs. diff --git a/docs/install/detailed-install/post-install.rst b/docs/install/detailed-install/post-install.rst index dda01be..352a94a 100644 --- a/docs/install/detailed-install/post-install.rst +++ b/docs/install/detailed-install/post-install.rst @@ -25,13 +25,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2303411.24.04, 6.17.0-19-generic, x86_64: installed + amdgpu/6.16.13-2317211.24.04, 6.17.0-20-generic, x86_64: installed - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2303411``: amdgpu driver build number + - ``2317211``: amdgpu driver build number - ``24.04``: distro version - - ``6.17.0-19-generic``: kernel version of dkms build + - ``6.17.0-20-generic``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: Debian @@ -44,11 +44,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2303411.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2317211.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2303411``: amdgpu driver build number + - ``2317211``: amdgpu driver build number - ``6.12.63+deb13-amd64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -62,13 +62,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2303411.el10, 6.12.0-124.45.1.el10_1.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2317211.el10, 6.12.0-124.49.1.el10_1.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2303411``: amdgpu driver build number + - ``2317211``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-124.45.1.el10_1.x86_64``: kernel version of dkms build + - ``6.12.0-124.49.1.el10_1.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: OL @@ -81,13 +81,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2303411.el10, 6.12.0-109.67.6.el10uek.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2317211.el10, 6.12.0-200.74.27.2.el10uek.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2303411``: amdgpu driver build number + - ``2317211``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-109.67.6.el10uek.x86_64``: kernel version of dkms build + - ``6.12.0-200.74.27.2.el10uek.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: Rocky @@ -100,13 +100,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2303411.el9, 5.14.0-611.36.1.el9_7.x86_64, x86_64: installed + amdgpu/6.16.13-2317211.el9, 5.14.0-611.47.1.el9_7.x86_64, x86_64: installed - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2303411``: amdgpu driver build number + - ``2317211``: amdgpu driver build number - ``el9``: distro version - - ``5.14.0-611.36.1.el9_7.x86_64``: kernel version of dkms build + - ``5.14.0-611.47.1.el9_7.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: SLES @@ -119,12 +119,12 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2303411, 6.4.0-150700.53.31-default, x86_64: installed (original_module exists) + amdgpu/6.16.13-2317211, 6.4.0-150700.53.34-default, x86_64: installed (original_module exists) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2303411``: amdgpu driver build number - - ``6.4.0-150700.53.31-default``: kernel version of dkms build + - ``2317211``: amdgpu driver build number + - ``6.4.0-150700.53.34-default``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. _other_resources: diff --git a/docs/release/versions.rst b/docs/release/versions.rst index f4b005c..5755cfb 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,6 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 + "`30.30.2 `_", "April 17, 2026" "`30.30.1 `_", "March 25, 2026" "`30.30.0 `_", "January 21, 2026" "`30.20.1 `_", "November 26, 2025" From a6945f2b670bd5a888ae1f73345817ba649ef569 Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Mon, 4 May 2026 09:42:19 -0400 Subject: [PATCH 07/12] 30.30.3 release update (#31) * 30.30.3 release update * fix linting * update release date * update release date * update per feedback * update per review * dkms status output update * update release date --- docs/compatibility/compatibility-matrix.rst | 2 +- docs/conf.py | 10 +++---- docs/documentation/release-notes.md | 20 +++----------- .../install/detailed-install/post-install.rst | 26 +++++++++---------- docs/release/versions.rst | 1 + 5 files changed, 24 insertions(+), 35 deletions(-) diff --git a/docs/compatibility/compatibility-matrix.rst b/docs/compatibility/compatibility-matrix.rst index 57d9657..f3a3dbc 100644 --- a/docs/compatibility/compatibility-matrix.rst +++ b/docs/compatibility/compatibility-matrix.rst @@ -6,7 +6,7 @@ Compatibility matrix ************************************************************************************** -The AMD GPU Driver (amdgpu) 30.30.2 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix +The AMD GPU Driver (amdgpu) 30.30.3 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix `__. ====================================== diff --git a/docs/conf.py b/docs/conf.py index 78bd7f5..5a11376 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,11 +7,11 @@ html_context["READTHEDOCS"] = True project = "AMD GPU Driver (amdgpu)" -version = "30.30.2" -rocm_version = '7.2.1' -rocm_directory_version = '7.2.1' # in 6.0 rocm was located in /opt/rocm-6.0.0 -amdgpu_version = '30.30.2' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ -amdgpu_url_version = '30.30.2' +version = "30.30.3" +rocm_version = '7.2.3' +rocm_directory_version = '7.2.3' # in 6.0 rocm was located in /opt/rocm-6.0.0 +amdgpu_version = '30.30.3' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ +amdgpu_url_version = '30.30.3' release = version html_title = f"AMD GPU Driver (amdgpu) {version}" author = "Advanced Micro Devices, Inc." diff --git a/docs/documentation/release-notes.md b/docs/documentation/release-notes.md index e73fae2..64bc1ea 100644 --- a/docs/documentation/release-notes.md +++ b/docs/documentation/release-notes.md @@ -1,25 +1,13 @@ -# AMD GPU Driver (amdgpu) 30.30.2 release notes +# AMD GPU Driver (amdgpu) 30.30.3 release notes -The release notes provide release highlights and resolved issues since the previous AMD GPU Driver release (30.30.1). +The release notes provide release highlights since the previous AMD GPU Driver release (30.30.2). ## Release highlights -The following are notable improvements and updates in AMD GPU Driver 30.30.2. +Added support for ROCm 7.2.3. -### Operating system and hardware support changes +## Operating system and hardware support changes This release doesn’t introduce operating system or hardware support changes. For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). - -### RAS and memory reliability improvements - -The AMD GPU Driver 30.30.2 improves the Reliability, Availability, and Serviceability (RAS) subsystem with enhanced Bad Page Retirement handling on AMD Instinct MI300 Series GPUs. The driver now correctly identifies and retires all bad pages within a physical memory row, and properly recovers from invalid EEPROM table states. - -## Resolved issues - -The following previously known issues have been resolved in this release: - -- Resolved an issue on AMD Instinct MI300 Series GPUs where the RAS EEPROM bad page table could become invalid, preventing the Bad Page Retirement feature from functioning correctly. The driver now detects and resets invalid EEPROM tables, restoring proper bad page tracking. - -- Resolved an issue where VRAM type information was not being queried from firmware, causing incorrect memory type handling that affected the algorithm used to identify all bad pages within the same physical row. The driver now retrieves VRAM information directly from firmware for accurate bad page identification on AMD Instinct MI300 Series GPUs. diff --git a/docs/install/detailed-install/post-install.rst b/docs/install/detailed-install/post-install.rst index 352a94a..de1cdd4 100644 --- a/docs/install/detailed-install/post-install.rst +++ b/docs/install/detailed-install/post-install.rst @@ -25,11 +25,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2317211.24.04, 6.17.0-20-generic, x86_64: installed + amdgpu/6.16.13-2327507.24.04, 6.17.0-20-generic, x86_64: installed - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2317211``: amdgpu driver build number + - ``2327507``: amdgpu driver build number - ``24.04``: distro version - ``6.17.0-20-generic``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -44,11 +44,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2317211.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2327507.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2317211``: amdgpu driver build number + - ``2327507``: amdgpu driver build number - ``6.12.63+deb13-amd64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -62,13 +62,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2317211.el10, 6.12.0-124.49.1.el10_1.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2327507.el10, 6.12.0-124.52.1.el10_1.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2317211``: amdgpu driver build number + - ``2327507``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-124.49.1.el10_1.x86_64``: kernel version of dkms build + - ``6.12.0-124.52.1.el10_1.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: OL @@ -81,11 +81,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2317211.el10, 6.12.0-200.74.27.2.el10uek.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2327507.el10, 6.12.0-200.74.27.2.el10uek.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2317211``: amdgpu driver build number + - ``2327507``: amdgpu driver build number - ``el10``: distro version - ``6.12.0-200.74.27.2.el10uek.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -100,11 +100,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2317211.el9, 5.14.0-611.47.1.el9_7.x86_64, x86_64: installed + amdgpu/6.16.13-2327507.el9, 5.14.0-611.47.1.el9_7.x86_64, x86_64: installed - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2317211``: amdgpu driver build number + - ``2327507``: amdgpu driver build number - ``el9``: distro version - ``5.14.0-611.47.1.el9_7.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -119,11 +119,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2317211, 6.4.0-150700.53.34-default, x86_64: installed (original_module exists) + amdgpu/6.16.13-2327507, 6.4.0-150700.53.34-default, x86_64: installed (original_module exists) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2317211``: amdgpu driver build number + - ``2327507``: amdgpu driver build number - ``6.4.0-150700.53.34-default``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver diff --git a/docs/release/versions.rst b/docs/release/versions.rst index 5755cfb..cd3fde7 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,6 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 + "`30.30.3 `_", "May 4, 2026" "`30.30.2 `_", "April 17, 2026" "`30.30.1 `_", "March 25, 2026" "`30.30.0 `_", "January 21, 2026" From 2dc6112bbcf5000f4faa5d3e1dc5817bcba18d87 Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Thu, 14 May 2026 23:15:58 -0400 Subject: [PATCH 08/12] 31.30.0 release update (#32) * 30.30.3 release update * fix linting * update release date * update release date * 31.30.0 release update * style edits * fix linting * update release date * update xrefs to 7.13 doc * Update docs/documentation/release-notes.md Co-authored-by: Leo Paoletti <164940351+lpaoletti@users.noreply.github.com> * edit landing page * fix md link * GPU resiliency update * edit for consistency * Revert "fix md link" This reverts commit 285cf213d3e4e3698d03134b406289cc1accf942. * Revert "edit landing page" This reverts commit b3d1e625c3175b4cd78b7a441f661adb14c99e8c. * update release date * update release date * add ubuntu 26.04 & SLES 16 updates * remove the GPU resiliency entry * update GA date * sync tabs * sync OS version * remove mention of ARM * add preview banner * update sample outputs * add tabs for Ubuntu kernel headers * refactor tab condition --------- Co-authored-by: Leo Paoletti <164940351+lpaoletti@users.noreply.github.com> --- .wordlist.txt | 10 ++++ docs/compatibility/compatibility-matrix.rst | 16 +++--- docs/conf.py | 15 +++--- docs/documentation/release-notes.md | 42 ++++++++++++--- .../package-manager/package-manager-sles.rst | 8 +++ .../install/detailed-install/post-install.rst | 54 +++++++++---------- .../detailed-install/prerequisites.rst | 43 ++++++++++++--- docs/install/package-manager-index.rst | 2 +- docs/release/versions.rst | 1 + 9 files changed, 134 insertions(+), 57 deletions(-) diff --git a/.wordlist.txt b/.wordlist.txt index 06b2809..071d3b7 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -114,6 +114,7 @@ EPYC ESXi EoS FBGEMM +FCLK FFT FFTs FFmpeg @@ -144,6 +145,7 @@ GIM GL GLXT Gloo +GMC GMI GPG GPR @@ -221,6 +223,7 @@ LLVM LM LSAN LSan +LSDMA LTS LoRA MCP @@ -235,6 +238,7 @@ MIOpen's MIVisionX MLM MMA +MMHUB MMIO MMIOH MMU @@ -306,6 +310,7 @@ OpenXLA Oversubscription PagedAttention Pallas +PASID PCC PCI PCIe @@ -317,6 +322,7 @@ PLDM POR PRNG PRs +PSP PaLM Pageable PeerDirect @@ -389,6 +395,7 @@ SLES SMEM SMI SMT +SMU SPI SQs SRAM @@ -571,6 +578,7 @@ detections dev devicelibs devsel +dGPU dimensionality disambiguates distro @@ -816,6 +824,7 @@ symlink symlinks sys td +teardown tensorfloat th tokenization @@ -918,4 +927,5 @@ addressability datacenter programmability uptime +userq TPX diff --git a/docs/compatibility/compatibility-matrix.rst b/docs/compatibility/compatibility-matrix.rst index f3a3dbc..c1cb311 100644 --- a/docs/compatibility/compatibility-matrix.rst +++ b/docs/compatibility/compatibility-matrix.rst @@ -6,17 +6,17 @@ Compatibility matrix ************************************************************************************** -The AMD GPU Driver (amdgpu) 30.30.3 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix -`__. +The AMD GPU Driver (amdgpu) 31.30.0 is compatible with ROCm 7.13.0. For more information, see `ROCm 7.13.0 compatibility matrix +`__. -====================================== +==================================== Operating system and kernel version -====================================== +==================================== -See `Supported operating systems `_ for ROCm supported operating systems and their kernel versions. +See `Operating system support `_ for ROCm supported operating systems and their kernel versions. -============= +============ GPU support -============= +============ -See `Supported GPUs `_ for the list of supported AMD Instinct™, Radeon™ PRO, and Radeon GPUs. +See `Hardware support `_ for the list of supported AMD Instinct™, Radeon™ PRO, Radeon, and Ryzen™ AI GPUs. \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 5a11376..73dfafe 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,22 +7,22 @@ html_context["READTHEDOCS"] = True project = "AMD GPU Driver (amdgpu)" -version = "30.30.3" -rocm_version = '7.2.3' -rocm_directory_version = '7.2.3' # in 6.0 rocm was located in /opt/rocm-6.0.0 -amdgpu_version = '30.30.3' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ -amdgpu_url_version = '30.30.3' +version = "31.30.0" +rocm_version = '7.13' +rocm_directory_version = '7.13.0' # in 6.0 rocm was located in /opt/rocm-6.0.0 +amdgpu_version = '31.30' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ +amdgpu_url_version = '31.30' release = version html_title = f"AMD GPU Driver (amdgpu) {version}" author = "Advanced Micro Devices, Inc." copyright = "Copyright (c) 2026 Advanced Micro Devices, Inc. All rights reserved." # Supported linux version numbers -ubuntu_version_numbers = [('24.04', 'noble'), ('22.04', 'jammy')] +ubuntu_version_numbers = [('26.04', 'resolute'), ('24.04', 'noble'), ('22.04', 'jammy')] debian_version_numbers = [('13', 'noble'), ('12', 'jammy')] rhel_release_version_numbers = ['10', '9', '8'] rhel_version_numbers = ['10.1', '10.0', '9.7', '9.6', '9.4', '8.10'] -sles_version_numbers = ['15.7'] +sles_version_numbers = ['16.0', '15.7'] ol_release_version_numbers = ['10', '9', '8'] ol_version_numbers = ['10.1', '9.7', '8.10'] rl_version_numbers = ['9.7'] @@ -43,6 +43,7 @@ html_theme = "rocm_docs_theme" html_theme_options = { "flavor": "amdgpu", + "announcement": f"AMD GPU Driver {version} is a technology preview intended for use only with AMD ROCm 7.13.0 technology preview.", "link_main_doc": True, # Add any additional theme options here } diff --git a/docs/documentation/release-notes.md b/docs/documentation/release-notes.md index 64bc1ea..767c593 100644 --- a/docs/documentation/release-notes.md +++ b/docs/documentation/release-notes.md @@ -1,13 +1,43 @@ -# AMD GPU Driver (amdgpu) 30.30.3 release notes +# AMD GPU Driver (amdgpu) 31.30.0 release notes -The release notes provide release highlights since the previous AMD GPU Driver release (30.30.2). +The release notes provide release highlights and resolved issues since the previous AMD GPU Driver release (31.20.0, a preview release). ## Release highlights -Added support for ROCm 7.2.3. +The following are notable new features and improvements in AMD GPU Driver 31.30.0. -## Operating system and hardware support changes +For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). -This release doesn’t introduce operating system or hardware support changes. +### Broader hardware enablement -For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). +- New SMU power-management generation v15.0.8 with full clock, thermal, power-limit, and metrics reporting on next-generation AMD platforms. + +- New system-DMA (LSDMA v7.1) and PSP 13.0.15 support for upcoming products. + +- APU + dGPU (A+A) platform enablement on GMC 12.x with correct VRAM sizing, aperture layout, and page tables for unified-memory systems. + +### Compute and AI workload improvements + +Hardened user-mode queues (userq) with stronger validation, safer doorbell handling, and cleaner create/teardown to reduce hang and resource-leak risk under heavy AI/ML submission. + +### Power, thermal, and telemetry + +- Per-component temperature reporting (AID, XCD, HBM) plus baseboard and GPU-board metrics for data-center monitoring. + +- User-tunable GFX clock ranges, custom FCLK (`OD_FCLK`), and zero-fan OD on SMU v13/v14 for finer control over performance and acoustics. + +- NPM (Node Power Management) on SMU v15.0.8 for platform-level power budgeting. + +### Stability and security + +- Broad NULL-pointer, use-after-free, and race-condition hardening in device init/teardown, VM acquisition, PASID reuse, and RAS paths. + +- Bounds checking on MMHUB/GMC client-ID decoders to prevent out-of-range reads when decoding page-fault sources. + +## Resolved issues + +The following previously known issues have been resolved in this release: + +- Resolved KFD/ROCm workload startup failures on hosts with non-4K page sizes. + +- Resolved a GPU idle power consumption regression on the latest GFX v12 discrete GPUs. diff --git a/docs/install/detailed-install/package-manager/package-manager-sles.rst b/docs/install/detailed-install/package-manager/package-manager-sles.rst index 57b4355..a5c6ea8 100644 --- a/docs/install/detailed-install/package-manager/package-manager-sles.rst +++ b/docs/install/detailed-install/package-manager/package-manager-sles.rst @@ -24,13 +24,20 @@ Additional package repositories {% set os_release, os_sp = os_version.split('.') %} .. tab-item:: SLES {{ os_version }} + :sync: {{ os_version }} + {% if os_version == '16.0' -%} + + There are no additional package repositories needed for SLES 16.0. + + {%- else -%} .. code-block:: shell sudo SUSEConnect -p sle-module-desktop-applications/{{ os_version }}/x86_64 sudo SUSEConnect -p sle-module-development-tools/{{ os_version }}/x86_64 sudo SUSEConnect -p PackageHub/{{ os_version }}/x86_64 sudo zypper install zypper + {%- endif %} {% endfor %} @@ -50,6 +57,7 @@ Register kernel-mode driver .. tab-set:: {% for os_version in config.html_context['sles_version_numbers'] %} .. tab-item:: SLES {{ os_version }} + :sync: {{ os_version }} .. code-block:: bash :substitutions: diff --git a/docs/install/detailed-install/post-install.rst b/docs/install/detailed-install/post-install.rst index de1cdd4..762982f 100644 --- a/docs/install/detailed-install/post-install.rst +++ b/docs/install/detailed-install/post-install.rst @@ -21,17 +21,17 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp sudo dkms status - **Sample output for Ubuntu 24.04:** + **Sample output for Ubuntu 26.04:** .. code-block:: bash - amdgpu/6.16.13-2327507.24.04, 6.17.0-20-generic, x86_64: installed + amdgpu/6.19.4-2337710.26.04, 7.0.0-15-generic, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number - - ``24.04``: distro version - - ``6.17.0-20-generic``: kernel version of dkms build + - ``6.19.4``: amdgpu driver version + - ``2337710``: amdgpu driver build number + - ``26.04``: distro version + - ``7.0.0-15-generic``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: Debian @@ -44,11 +44,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) + amdgpu/6.19.4-2337710.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``6.19.4``: amdgpu driver version + - ``2337710``: amdgpu driver build number - ``6.12.63+deb13-amd64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -62,13 +62,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.el10, 6.12.0-124.52.1.el10_1.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.19.4-2337710.el10, 6.12.0-124.45.1.el10_1.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``6.19.4``: amdgpu driver version + - ``2337710``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-124.52.1.el10_1.x86_64``: kernel version of dkms build + - ``6.12.0-124.45.1.el10_1.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: OL @@ -81,13 +81,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.el10, 6.12.0-200.74.27.2.el10uek.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.19.4-2337710.el10, 6.12.0-109.67.6.el10uek.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``6.19.4``: amdgpu driver version + - ``2337710``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-200.74.27.2.el10uek.x86_64``: kernel version of dkms build + - ``6.12.0-109.67.6.el10uek.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: Rocky @@ -100,13 +100,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.el9, 5.14.0-611.47.1.el9_7.x86_64, x86_64: installed + amdgpu/6.19.4-2337710.el9, 5.14.0-611.36.1.el9_7.x86_64, x86_64: installed - ``amdgpu``: dkms module name - - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``6.19.4``: amdgpu driver version + - ``2337710``: amdgpu driver build number - ``el9``: distro version - - ``5.14.0-611.47.1.el9_7.x86_64``: kernel version of dkms build + - ``5.14.0-611.36.1.el9_7.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: SLES @@ -119,12 +119,12 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507, 6.4.0-150700.53.34-default, x86_64: installed (original_module exists) + amdgpu/6.19.4-2337710, 6.12.0-160000.26-default, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number - - ``6.4.0-150700.53.34-default``: kernel version of dkms build + - ``6.19.4``: amdgpu driver version + - ``2337710``: amdgpu driver build number + - ``6.12.0-160000.26-default``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. _other_resources: @@ -134,6 +134,6 @@ Additional software for user space The AMD ROCm platform provides a comprehensive set of user space software components for GPU-accelerated computing. See the following resources: -- `ROCm components `_ -- `ROCm installation guide (Linux) `_ +- `ROCm components `_ +- `ROCm installation guide (Linux) `_ - `HIP documentation `_ diff --git a/docs/install/detailed-install/prerequisites.rst b/docs/install/detailed-install/prerequisites.rst index cf84c09..424ecd1 100644 --- a/docs/install/detailed-install/prerequisites.rst +++ b/docs/install/detailed-install/prerequisites.rst @@ -16,7 +16,7 @@ Before installing the driver, complete the following prerequisites. uname -m && cat /etc/*release - * Confirm that your Linux distribution matches a :ref:`supported distribution `. + * Confirm that your Linux distribution matches a `supported distribution `_. **Example:** Running the preceding command on an Ubuntu system produces the following output: @@ -24,9 +24,22 @@ Before installing the driver, complete the following prerequisites. x86_64 DISTRIB_ID=Ubuntu - DISTRIB_RELEASE=24.04 - DISTRIB_CODENAME=noble - DISTRIB_DESCRIPTION="Ubuntu 24.04.3 LTS" + DISTRIB_RELEASE=26.04 + DISTRIB_CODENAME=resolute + DISTRIB_DESCRIPTION="Ubuntu 26.04 LTS" + PRETTY_NAME="Ubuntu 26.04 LTS" + NAME="Ubuntu" + VERSION_ID="26.04" + VERSION="26.04 (Resolute Raccoon)" + VERSION_CODENAME=resolute + ID=ubuntu + ID_LIKE=debian + HOME_URL="https://www.ubuntu.com/" + SUPPORT_URL="https://help.ubuntu.com/" + BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" + PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" + UBUNTU_CODENAME=resolute + LOGO=ubuntu-logo .. _verify_kernel_version: @@ -42,9 +55,9 @@ Before installing the driver, complete the following prerequisites. .. code-block:: shell - Linux 6.8.0-50-generic #51-Ubuntu SMP PREEMPT_DYNAMIC Sat Nov 9 17:58:29 UTC 2024 x86_64 + Linux 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64 - * Confirm that your kernel version matches the system requirements, as listed in :ref:`supported_distributions`. + * Confirm that your kernel version matches the system requirements, as listed in `Operating system support `_ .. _register-enterprise-linux: @@ -216,9 +229,23 @@ To install for the currently active kernel run the command corresponding to your .. tab-item:: Ubuntu :sync: ubuntu-tab - .. code-block:: shell + .. datatemplate:nodata:: + + .. tab-set:: + + {% for (os_version, os_release) in config.html_context['ubuntu_version_numbers'] %} + .. tab-item:: {{ os_version }} + :sync: {{ os_version }} - sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" + .. code-block:: shell + + {% if os_version == '26.04' -%} + sudo apt install "linux-headers-$(uname -r)" + {%- else -%} + sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" + {%- endif %} + + {% endfor %} .. tab-item:: Debian :sync: debian-tab diff --git a/docs/install/package-manager-index.rst b/docs/install/package-manager-index.rst index 363d1a9..4779b60 100644 --- a/docs/install/package-manager-index.rst +++ b/docs/install/package-manager-index.rst @@ -39,4 +39,4 @@ Select the install instructions for your operating system * :ref:`Rocky Linux ` * :ref:`SUSE Linux Enterprise Server ` -See `System requirements `_ for a full list of supported operating systems. +See `System requirements `_ for a full list of supported operating systems. diff --git a/docs/release/versions.rst b/docs/release/versions.rst index cd3fde7..9aa4a2a 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,6 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 + "`31.30.0 `_", "May 14, 2026" "`30.30.3 `_", "May 4, 2026" "`30.30.2 `_", "April 17, 2026" "`30.30.1 `_", "March 25, 2026" From 73ad9861f398924387411dcc9f9a1bb43953f58e Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Fri, 15 May 2026 14:53:14 -0400 Subject: [PATCH 09/12] Revert "31.30.0 release update (#32)" This reverts commit 2dc6112bbcf5000f4faa5d3e1dc5817bcba18d87. --- .wordlist.txt | 10 ---- docs/compatibility/compatibility-matrix.rst | 16 +++--- docs/conf.py | 15 +++--- docs/documentation/release-notes.md | 42 +++------------ .../package-manager/package-manager-sles.rst | 8 --- .../install/detailed-install/post-install.rst | 54 +++++++++---------- .../detailed-install/prerequisites.rst | 43 +++------------ docs/install/package-manager-index.rst | 2 +- docs/release/versions.rst | 1 - 9 files changed, 57 insertions(+), 134 deletions(-) diff --git a/.wordlist.txt b/.wordlist.txt index 071d3b7..06b2809 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -114,7 +114,6 @@ EPYC ESXi EoS FBGEMM -FCLK FFT FFTs FFmpeg @@ -145,7 +144,6 @@ GIM GL GLXT Gloo -GMC GMI GPG GPR @@ -223,7 +221,6 @@ LLVM LM LSAN LSan -LSDMA LTS LoRA MCP @@ -238,7 +235,6 @@ MIOpen's MIVisionX MLM MMA -MMHUB MMIO MMIOH MMU @@ -310,7 +306,6 @@ OpenXLA Oversubscription PagedAttention Pallas -PASID PCC PCI PCIe @@ -322,7 +317,6 @@ PLDM POR PRNG PRs -PSP PaLM Pageable PeerDirect @@ -395,7 +389,6 @@ SLES SMEM SMI SMT -SMU SPI SQs SRAM @@ -578,7 +571,6 @@ detections dev devicelibs devsel -dGPU dimensionality disambiguates distro @@ -824,7 +816,6 @@ symlink symlinks sys td -teardown tensorfloat th tokenization @@ -927,5 +918,4 @@ addressability datacenter programmability uptime -userq TPX diff --git a/docs/compatibility/compatibility-matrix.rst b/docs/compatibility/compatibility-matrix.rst index c1cb311..f3a3dbc 100644 --- a/docs/compatibility/compatibility-matrix.rst +++ b/docs/compatibility/compatibility-matrix.rst @@ -6,17 +6,17 @@ Compatibility matrix ************************************************************************************** -The AMD GPU Driver (amdgpu) 31.30.0 is compatible with ROCm 7.13.0. For more information, see `ROCm 7.13.0 compatibility matrix -`__. +The AMD GPU Driver (amdgpu) 30.30.3 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix +`__. -==================================== +====================================== Operating system and kernel version -==================================== +====================================== -See `Operating system support `_ for ROCm supported operating systems and their kernel versions. +See `Supported operating systems `_ for ROCm supported operating systems and their kernel versions. -============ +============= GPU support -============ +============= -See `Hardware support `_ for the list of supported AMD Instinct™, Radeon™ PRO, Radeon, and Ryzen™ AI GPUs. \ No newline at end of file +See `Supported GPUs `_ for the list of supported AMD Instinct™, Radeon™ PRO, and Radeon GPUs. diff --git a/docs/conf.py b/docs/conf.py index 73dfafe..5a11376 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,22 +7,22 @@ html_context["READTHEDOCS"] = True project = "AMD GPU Driver (amdgpu)" -version = "31.30.0" -rocm_version = '7.13' -rocm_directory_version = '7.13.0' # in 6.0 rocm was located in /opt/rocm-6.0.0 -amdgpu_version = '31.30' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ -amdgpu_url_version = '31.30' +version = "30.30.3" +rocm_version = '7.2.3' +rocm_directory_version = '7.2.3' # in 6.0 rocm was located in /opt/rocm-6.0.0 +amdgpu_version = '30.30.3' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ +amdgpu_url_version = '30.30.3' release = version html_title = f"AMD GPU Driver (amdgpu) {version}" author = "Advanced Micro Devices, Inc." copyright = "Copyright (c) 2026 Advanced Micro Devices, Inc. All rights reserved." # Supported linux version numbers -ubuntu_version_numbers = [('26.04', 'resolute'), ('24.04', 'noble'), ('22.04', 'jammy')] +ubuntu_version_numbers = [('24.04', 'noble'), ('22.04', 'jammy')] debian_version_numbers = [('13', 'noble'), ('12', 'jammy')] rhel_release_version_numbers = ['10', '9', '8'] rhel_version_numbers = ['10.1', '10.0', '9.7', '9.6', '9.4', '8.10'] -sles_version_numbers = ['16.0', '15.7'] +sles_version_numbers = ['15.7'] ol_release_version_numbers = ['10', '9', '8'] ol_version_numbers = ['10.1', '9.7', '8.10'] rl_version_numbers = ['9.7'] @@ -43,7 +43,6 @@ html_theme = "rocm_docs_theme" html_theme_options = { "flavor": "amdgpu", - "announcement": f"AMD GPU Driver {version} is a technology preview intended for use only with AMD ROCm 7.13.0 technology preview.", "link_main_doc": True, # Add any additional theme options here } diff --git a/docs/documentation/release-notes.md b/docs/documentation/release-notes.md index 767c593..64bc1ea 100644 --- a/docs/documentation/release-notes.md +++ b/docs/documentation/release-notes.md @@ -1,43 +1,13 @@ -# AMD GPU Driver (amdgpu) 31.30.0 release notes +# AMD GPU Driver (amdgpu) 30.30.3 release notes -The release notes provide release highlights and resolved issues since the previous AMD GPU Driver release (31.20.0, a preview release). +The release notes provide release highlights since the previous AMD GPU Driver release (30.30.2). ## Release highlights -The following are notable new features and improvements in AMD GPU Driver 31.30.0. +Added support for ROCm 7.2.3. -For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). - -### Broader hardware enablement - -- New SMU power-management generation v15.0.8 with full clock, thermal, power-limit, and metrics reporting on next-generation AMD platforms. - -- New system-DMA (LSDMA v7.1) and PSP 13.0.15 support for upcoming products. - -- APU + dGPU (A+A) platform enablement on GMC 12.x with correct VRAM sizing, aperture layout, and page tables for unified-memory systems. - -### Compute and AI workload improvements - -Hardened user-mode queues (userq) with stronger validation, safer doorbell handling, and cleaner create/teardown to reduce hang and resource-leak risk under heavy AI/ML submission. - -### Power, thermal, and telemetry - -- Per-component temperature reporting (AID, XCD, HBM) plus baseboard and GPU-board metrics for data-center monitoring. +## Operating system and hardware support changes -- User-tunable GFX clock ranges, custom FCLK (`OD_FCLK`), and zero-fan OD on SMU v13/v14 for finer control over performance and acoustics. +This release doesn’t introduce operating system or hardware support changes. -- NPM (Node Power Management) on SMU v15.0.8 for platform-level power budgeting. - -### Stability and security - -- Broad NULL-pointer, use-after-free, and race-condition hardening in device init/teardown, VM acquisition, PASID reuse, and RAS paths. - -- Bounds checking on MMHUB/GMC client-ID decoders to prevent out-of-range reads when decoding page-fault sources. - -## Resolved issues - -The following previously known issues have been resolved in this release: - -- Resolved KFD/ROCm workload startup failures on hosts with non-4K page sizes. - -- Resolved a GPU idle power consumption regression on the latest GFX v12 discrete GPUs. +For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). diff --git a/docs/install/detailed-install/package-manager/package-manager-sles.rst b/docs/install/detailed-install/package-manager/package-manager-sles.rst index a5c6ea8..57b4355 100644 --- a/docs/install/detailed-install/package-manager/package-manager-sles.rst +++ b/docs/install/detailed-install/package-manager/package-manager-sles.rst @@ -24,20 +24,13 @@ Additional package repositories {% set os_release, os_sp = os_version.split('.') %} .. tab-item:: SLES {{ os_version }} - :sync: {{ os_version }} - {% if os_version == '16.0' -%} - - There are no additional package repositories needed for SLES 16.0. - - {%- else -%} .. code-block:: shell sudo SUSEConnect -p sle-module-desktop-applications/{{ os_version }}/x86_64 sudo SUSEConnect -p sle-module-development-tools/{{ os_version }}/x86_64 sudo SUSEConnect -p PackageHub/{{ os_version }}/x86_64 sudo zypper install zypper - {%- endif %} {% endfor %} @@ -57,7 +50,6 @@ Register kernel-mode driver .. tab-set:: {% for os_version in config.html_context['sles_version_numbers'] %} .. tab-item:: SLES {{ os_version }} - :sync: {{ os_version }} .. code-block:: bash :substitutions: diff --git a/docs/install/detailed-install/post-install.rst b/docs/install/detailed-install/post-install.rst index 762982f..de1cdd4 100644 --- a/docs/install/detailed-install/post-install.rst +++ b/docs/install/detailed-install/post-install.rst @@ -21,17 +21,17 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp sudo dkms status - **Sample output for Ubuntu 26.04:** + **Sample output for Ubuntu 24.04:** .. code-block:: bash - amdgpu/6.19.4-2337710.26.04, 7.0.0-15-generic, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2327507.24.04, 6.17.0-20-generic, x86_64: installed - ``amdgpu``: dkms module name - - ``6.19.4``: amdgpu driver version - - ``2337710``: amdgpu driver build number - - ``26.04``: distro version - - ``7.0.0-15-generic``: kernel version of dkms build + - ``6.16.13``: amdgpu driver version + - ``2327507``: amdgpu driver build number + - ``24.04``: distro version + - ``6.17.0-20-generic``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: Debian @@ -44,11 +44,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.19.4-2337710.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2327507.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - - ``6.19.4``: amdgpu driver version - - ``2337710``: amdgpu driver build number + - ``6.16.13``: amdgpu driver version + - ``2327507``: amdgpu driver build number - ``6.12.63+deb13-amd64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -62,13 +62,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.19.4-2337710.el10, 6.12.0-124.45.1.el10_1.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2327507.el10, 6.12.0-124.52.1.el10_1.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - - ``6.19.4``: amdgpu driver version - - ``2337710``: amdgpu driver build number + - ``6.16.13``: amdgpu driver version + - ``2327507``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-124.45.1.el10_1.x86_64``: kernel version of dkms build + - ``6.12.0-124.52.1.el10_1.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: OL @@ -81,13 +81,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.19.4-2337710.el10, 6.12.0-109.67.6.el10uek.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2327507.el10, 6.12.0-200.74.27.2.el10uek.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - - ``6.19.4``: amdgpu driver version - - ``2337710``: amdgpu driver build number + - ``6.16.13``: amdgpu driver version + - ``2327507``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-109.67.6.el10uek.x86_64``: kernel version of dkms build + - ``6.12.0-200.74.27.2.el10uek.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: Rocky @@ -100,13 +100,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.19.4-2337710.el9, 5.14.0-611.36.1.el9_7.x86_64, x86_64: installed + amdgpu/6.16.13-2327507.el9, 5.14.0-611.47.1.el9_7.x86_64, x86_64: installed - ``amdgpu``: dkms module name - - ``6.19.4``: amdgpu driver version - - ``2337710``: amdgpu driver build number + - ``6.16.13``: amdgpu driver version + - ``2327507``: amdgpu driver build number - ``el9``: distro version - - ``5.14.0-611.36.1.el9_7.x86_64``: kernel version of dkms build + - ``5.14.0-611.47.1.el9_7.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: SLES @@ -119,12 +119,12 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.19.4-2337710, 6.12.0-160000.26-default, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2327507, 6.4.0-150700.53.34-default, x86_64: installed (original_module exists) - ``amdgpu``: dkms module name - - ``6.19.4``: amdgpu driver version - - ``2337710``: amdgpu driver build number - - ``6.12.0-160000.26-default``: kernel version of dkms build + - ``6.16.13``: amdgpu driver version + - ``2327507``: amdgpu driver build number + - ``6.4.0-150700.53.34-default``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. _other_resources: @@ -134,6 +134,6 @@ Additional software for user space The AMD ROCm platform provides a comprehensive set of user space software components for GPU-accelerated computing. See the following resources: -- `ROCm components `_ -- `ROCm installation guide (Linux) `_ +- `ROCm components `_ +- `ROCm installation guide (Linux) `_ - `HIP documentation `_ diff --git a/docs/install/detailed-install/prerequisites.rst b/docs/install/detailed-install/prerequisites.rst index 424ecd1..cf84c09 100644 --- a/docs/install/detailed-install/prerequisites.rst +++ b/docs/install/detailed-install/prerequisites.rst @@ -16,7 +16,7 @@ Before installing the driver, complete the following prerequisites. uname -m && cat /etc/*release - * Confirm that your Linux distribution matches a `supported distribution `_. + * Confirm that your Linux distribution matches a :ref:`supported distribution `. **Example:** Running the preceding command on an Ubuntu system produces the following output: @@ -24,22 +24,9 @@ Before installing the driver, complete the following prerequisites. x86_64 DISTRIB_ID=Ubuntu - DISTRIB_RELEASE=26.04 - DISTRIB_CODENAME=resolute - DISTRIB_DESCRIPTION="Ubuntu 26.04 LTS" - PRETTY_NAME="Ubuntu 26.04 LTS" - NAME="Ubuntu" - VERSION_ID="26.04" - VERSION="26.04 (Resolute Raccoon)" - VERSION_CODENAME=resolute - ID=ubuntu - ID_LIKE=debian - HOME_URL="https://www.ubuntu.com/" - SUPPORT_URL="https://help.ubuntu.com/" - BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" - PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" - UBUNTU_CODENAME=resolute - LOGO=ubuntu-logo + DISTRIB_RELEASE=24.04 + DISTRIB_CODENAME=noble + DISTRIB_DESCRIPTION="Ubuntu 24.04.3 LTS" .. _verify_kernel_version: @@ -55,9 +42,9 @@ Before installing the driver, complete the following prerequisites. .. code-block:: shell - Linux 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64 + Linux 6.8.0-50-generic #51-Ubuntu SMP PREEMPT_DYNAMIC Sat Nov 9 17:58:29 UTC 2024 x86_64 - * Confirm that your kernel version matches the system requirements, as listed in `Operating system support `_ + * Confirm that your kernel version matches the system requirements, as listed in :ref:`supported_distributions`. .. _register-enterprise-linux: @@ -229,23 +216,9 @@ To install for the currently active kernel run the command corresponding to your .. tab-item:: Ubuntu :sync: ubuntu-tab - .. datatemplate:nodata:: - - .. tab-set:: - - {% for (os_version, os_release) in config.html_context['ubuntu_version_numbers'] %} - .. tab-item:: {{ os_version }} - :sync: {{ os_version }} - - .. code-block:: shell - - {% if os_version == '26.04' -%} - sudo apt install "linux-headers-$(uname -r)" - {%- else -%} - sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" - {%- endif %} + .. code-block:: shell - {% endfor %} + sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" .. tab-item:: Debian :sync: debian-tab diff --git a/docs/install/package-manager-index.rst b/docs/install/package-manager-index.rst index 4779b60..363d1a9 100644 --- a/docs/install/package-manager-index.rst +++ b/docs/install/package-manager-index.rst @@ -39,4 +39,4 @@ Select the install instructions for your operating system * :ref:`Rocky Linux ` * :ref:`SUSE Linux Enterprise Server ` -See `System requirements `_ for a full list of supported operating systems. +See `System requirements `_ for a full list of supported operating systems. diff --git a/docs/release/versions.rst b/docs/release/versions.rst index 9aa4a2a..cd3fde7 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,7 +12,6 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 - "`31.30.0 `_", "May 14, 2026" "`30.30.3 `_", "May 4, 2026" "`30.30.2 `_", "April 17, 2026" "`30.30.1 `_", "March 25, 2026" From d099e827467e622c4ea949a282cbeb72efc516bd Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Thu, 28 May 2026 09:41:19 -0400 Subject: [PATCH 10/12] 30.30.4 release update (#33) * 30.30.4 release update * Update dkms status outputs --- docs/compatibility/compatibility-matrix.rst | 2 +- docs/conf.py | 10 +++---- docs/documentation/release-notes.md | 6 ++--- .../install/detailed-install/post-install.rst | 26 +++++++++---------- docs/release/versions.rst | 1 + 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/docs/compatibility/compatibility-matrix.rst b/docs/compatibility/compatibility-matrix.rst index f3a3dbc..1eb94dc 100644 --- a/docs/compatibility/compatibility-matrix.rst +++ b/docs/compatibility/compatibility-matrix.rst @@ -6,7 +6,7 @@ Compatibility matrix ************************************************************************************** -The AMD GPU Driver (amdgpu) 30.30.3 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix +The AMD GPU Driver (amdgpu) 30.30.4 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix `__. ====================================== diff --git a/docs/conf.py b/docs/conf.py index 5a11376..5133429 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,11 +7,11 @@ html_context["READTHEDOCS"] = True project = "AMD GPU Driver (amdgpu)" -version = "30.30.3" -rocm_version = '7.2.3' -rocm_directory_version = '7.2.3' # in 6.0 rocm was located in /opt/rocm-6.0.0 -amdgpu_version = '30.30.3' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ -amdgpu_url_version = '30.30.3' +version = "30.30.4" +rocm_version = '7.2.4' +rocm_directory_version = '7.2.4' # in 6.0 rocm was located in /opt/rocm-6.0.0 +amdgpu_version = '30.30.4' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ +amdgpu_url_version = '30.30.4' release = version html_title = f"AMD GPU Driver (amdgpu) {version}" author = "Advanced Micro Devices, Inc." diff --git a/docs/documentation/release-notes.md b/docs/documentation/release-notes.md index 64bc1ea..6ed51f9 100644 --- a/docs/documentation/release-notes.md +++ b/docs/documentation/release-notes.md @@ -1,10 +1,10 @@ -# AMD GPU Driver (amdgpu) 30.30.3 release notes +# AMD GPU Driver (amdgpu) 30.30.4 release notes -The release notes provide release highlights since the previous AMD GPU Driver release (30.30.2). +The release notes provide release highlights since the previous AMD GPU Driver release (30.30.3). ## Release highlights -Added support for ROCm 7.2.3. +Added support for ROCm 7.2.4. ## Operating system and hardware support changes diff --git a/docs/install/detailed-install/post-install.rst b/docs/install/detailed-install/post-install.rst index de1cdd4..5fad525 100644 --- a/docs/install/detailed-install/post-install.rst +++ b/docs/install/detailed-install/post-install.rst @@ -25,11 +25,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.24.04, 6.17.0-20-generic, x86_64: installed + amdgpu/6.16.13-2341068.24.04, 6.17.0-20-generic, x86_64: installed - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``2341068``: amdgpu driver build number - ``24.04``: distro version - ``6.17.0-20-generic``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -44,11 +44,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2341068.24.04, 6.12.63+deb13-amd64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``2341068``: amdgpu driver build number - ``6.12.63+deb13-amd64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -62,13 +62,13 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.el10, 6.12.0-124.52.1.el10_1.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2341068.el10, 6.12.0-124.56.1.el10_1.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``2341068``: amdgpu driver build number - ``el10``: distro version - - ``6.12.0-124.52.1.el10_1.x86_64``: kernel version of dkms build + - ``6.12.0-124.56.1.el10_1.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver .. tab-item:: OL @@ -81,11 +81,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.el10, 6.12.0-200.74.27.2.el10uek.x86_64, x86_64: installed (Original modules exist) + amdgpu/6.16.13-2341068.el10, 6.12.0-200.74.27.2.el10uek.x86_64, x86_64: installed (Original modules exist) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``2341068``: amdgpu driver build number - ``el10``: distro version - ``6.12.0-200.74.27.2.el10uek.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -100,11 +100,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507.el9, 5.14.0-611.47.1.el9_7.x86_64, x86_64: installed + amdgpu/6.16.13-2341068.el9, 5.14.0-611.47.1.el9_7.x86_64, x86_64: installed - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``2341068``: amdgpu driver build number - ``el9``: distro version - ``5.14.0-611.47.1.el9_7.x86_64``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver @@ -119,11 +119,11 @@ Use the following command to check the installation of the AMD GPU Driver (amdgp .. code-block:: bash - amdgpu/6.16.13-2327507, 6.4.0-150700.53.34-default, x86_64: installed (original_module exists) + amdgpu/6.16.13-2341068, 6.4.0-150700.53.34-default, x86_64: installed (original_module exists) - ``amdgpu``: dkms module name - ``6.16.13``: amdgpu driver version - - ``2327507``: amdgpu driver build number + - ``2341068``: amdgpu driver build number - ``6.4.0-150700.53.34-default``: kernel version of dkms build - ``installed``: dkms status; ``installed`` indicates successful installation of the amdgpu driver diff --git a/docs/release/versions.rst b/docs/release/versions.rst index cd3fde7..637e034 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,6 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 + "`30.30.4 `_", "May 28, 2026" "`30.30.3 `_", "May 4, 2026" "`30.30.2 `_", "April 17, 2026" "`30.30.1 `_", "March 25, 2026" From b866b72ec712c47acd0f5ba07b615608ad9ce411 Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Thu, 28 May 2026 11:02:59 -0400 Subject: [PATCH 11/12] update GA day --- docs/release/versions.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release/versions.rst b/docs/release/versions.rst index 637e034..01d1ece 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,7 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 - "`30.30.4 `_", "May 28, 2026" + "`30.30.4 `_", "May 29, 2026" "`30.30.3 `_", "May 4, 2026" "`30.30.2 `_", "April 17, 2026" "`30.30.1 `_", "March 25, 2026" From 592900b7b0101b4f23ac2a353b225c9ec3ee3395 Mon Sep 17 00:00:00 2001 From: yugang-amd Date: Tue, 14 Jul 2026 19:13:50 -0400 Subject: [PATCH 12/12] 31.40.0 release update (#35) * 30.30.3 release update * fix linting * update release date * update release date * 31.30.0 release update * style edits * fix linting * update release date * update xrefs to 7.13 doc * Update docs/documentation/release-notes.md Co-authored-by: Leo Paoletti <164940351+lpaoletti@users.noreply.github.com> * edit landing page * fix md link * GPU resiliency update * edit for consistency * Revert "fix md link" This reverts commit 285cf213d3e4e3698d03134b406289cc1accf942. * Revert "edit landing page" This reverts commit b3d1e625c3175b4cd78b7a441f661adb14c99e8c. * update release date * update release date * add ubuntu 26.04 & SLES 16 updates * remove the GPU resiliency entry * update GA date * sync tabs * sync OS version * remove mention of ARM * add preview banner * update sample outputs * add tabs for Ubuntu kernel headers * refactor tab condition * sync up with public repo * more sync up * post release sync up * 31.40.0 release update * Update versions * fix linting * fix: replace Docker-based spelling lint * fix: limit lint workflow token permissions * 31.40.0 release notes * wordlist update * Remove system optimization guides * update AIS enablement descriptions * Update AIS release notes * Add NFSoRDMA and oF to wordlist to fix spelling check * rhel version bump * update "Registering ROCm repositories" to "Registering repositories" * Update dkms status output --------- Co-authored-by: Leo Paoletti <164940351+lpaoletti@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- .github/workflows/linting.yml | 71 +- .wordlist.txt | 25 + docs/compatibility/compatibility-matrix.rst | 16 +- docs/conf.py | 16 +- docs/documentation/release-notes.md | 64 +- docs/index.md | 1 - .../package-manager-debian.rst | 2 +- .../package-manager/package-manager-ol.rst | 4 - .../package-manager/package-manager-rhel.rst | 6 +- .../package-manager/package-manager-rl.rst | 4 +- .../package-manager/package-manager-sles.rst | 10 +- .../package-manager-ubuntu.rst | 2 +- .../install/detailed-install/post-install.rst | 71 +- .../detailed-install/prerequisites.rst | 43 +- docs/install/package-manager-index.rst | 2 +- docs/release/versions.rst | 3 +- docs/sphinx/_toc.yml.in | 12 - docs/system-optimization/index.rst | 116 --- docs/system-optimization/mi100.md | 475 --------- docs/system-optimization/mi200.md | 459 --------- docs/system-optimization/mi300a.rst | 452 --------- docs/system-optimization/mi300x.rst | 916 ------------------ 22 files changed, 248 insertions(+), 2522 deletions(-) delete mode 100644 docs/system-optimization/index.rst delete mode 100644 docs/system-optimization/mi100.md delete mode 100644 docs/system-optimization/mi200.md delete mode 100644 docs/system-optimization/mi300a.rst delete mode 100644 docs/system-optimization/mi300x.rst diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index a56602b..a1dd2be 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -2,15 +2,68 @@ name: Linting on: push: - branches: - - develop - - main + branches: + - develop + - main pull_request: - branches: - - develop - - main + branches: + - develop + - main + +permissions: + contents: read jobs: - call-workflow-passing-data: - name: Documentation - uses: ROCm/rocm-docs-core/.github/workflows/linting.yml@develop + markdown: + name: Documentation / Markdown + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Fetch config + shell: sh + run: | + test -f .markdownlint.yaml && echo "Using local config file" || curl --silent --show-error --fail --location https://raw.githubusercontent.com/ROCm/rocm-docs-core/develop/.markdownlint.yaml -O + - name: Set up Node.js + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + node-version: 24 + - name: Run markdownlint + run: npx --yes markdownlint-cli2 "**/*.md" + + spelling: + name: Documentation / Spelling + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Fetch config + shell: sh + run: | + curl --silent --show-error --fail --location https://raw.githubusercontent.com/ROCm/rocm-docs-core/develop/.github/workflows/yaml_merger.py -o .github/workflows/yaml_merger.py + curl --silent --show-error --fail --location https://raw.githubusercontent.com/ROCm/rocm-docs-core/develop/.spellcheck.yaml -O + curl --silent --show-error --fail --location https://raw.githubusercontent.com/ROCm/rocm-docs-core/develop/.wordlist.txt >> .wordlist.txt + - name: Check local spelling file + id: check_local_spelling + run: | + if [ -f .spellcheck.local.yaml ]; then + echo "check_result=true" >> $GITHUB_OUTPUT + else + echo "check_result=false" >> $GITHUB_OUTPUT + fi + - name: Merge local and main YAML files + if: steps.check_local_spelling.outputs.check_result == 'true' + shell: sh + run: | + python3 .github/workflows/yaml_merger.py .spellcheck.yaml .spellcheck.local.yaml .spellcheck.yaml + - name: Install spellcheck dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends aspell aspell-en + python3 -m pip install pyspelling==2.12.1 + - name: Run spellcheck + run: python3 -m pyspelling --config .spellcheck.yaml + - name: On fail + if: failure() + run: | + echo "Please check for spelling mistakes or add them to '.wordlist.txt' in either the root of this project or in rocm-docs-core." diff --git a/.wordlist.txt b/.wordlist.txt index 06b2809..e9543c4 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -6,6 +6,7 @@ ACS AccVGPR AccVGPRs AER +AIS allreduce ALU AMD @@ -20,6 +21,7 @@ APBDIS APIC APIs APU +APUs ASIC ASICs ASan @@ -114,6 +116,7 @@ EPYC ESXi EoS FBGEMM +FCLK FFT FFTs FFmpeg @@ -136,6 +139,7 @@ GDB GDDR GDR GDS +GPUDirect GEMM GEMMs GFortran @@ -144,6 +148,7 @@ GIM GL GLXT Gloo +GMC GMI GPG GPR @@ -157,6 +162,7 @@ GenZ GitHub Gitpod HBM +HipFile HCA HGX HIPCC @@ -221,6 +227,7 @@ LLVM LM LSAN LSan +LSDMA LTS LoRA MCP @@ -235,6 +242,7 @@ MIOpen's MIVisionX MLM MMA +MMHUB MMIO MMIOH MMU @@ -276,6 +284,10 @@ NVCC NVIDIA NVPTX NaN +NFS +NFSoRDMA +NVMe +NVMeoF Nano Navi Noncoherently @@ -306,6 +318,7 @@ OpenXLA Oversubscription PagedAttention Pallas +PASID PCC PCI PCIe @@ -317,6 +330,7 @@ PLDM POR PRNG PRs +PSP PaLM Pageable PeerDirect @@ -359,6 +373,7 @@ ROCmValidationSuite ROCprofiler ROCr RPP +RSL RST RW Radeon @@ -389,6 +404,7 @@ SLES SMEM SMI SMT +SMU SPI SQs SRAM @@ -448,6 +464,7 @@ UTCL UTIL Uncached Unittests +UniRAS Unhandled VALU VBIOS @@ -571,6 +588,7 @@ detections dev devicelibs devsel +dGPU dimensionality disambiguates distro @@ -631,6 +649,7 @@ hlist hotspotting hpc hpp +html hsa hsakmt hyperparameter @@ -681,6 +700,7 @@ mkdir mlirmiopen mtypes mutex +myst mvffr namespace namespaces @@ -688,6 +708,7 @@ nanoGPT num numref ocl +oF ol opencl opencv @@ -811,11 +832,13 @@ subfolder subfolders submodule submodules +suboptimal supercomputing symlink symlinks sys td +teardown tensorfloat th tokenization @@ -904,6 +927,7 @@ amd amdsmi celerator chiplets +vLLM vllm misconfigurations integrators @@ -918,4 +942,5 @@ addressability datacenter programmability uptime +userq TPX diff --git a/docs/compatibility/compatibility-matrix.rst b/docs/compatibility/compatibility-matrix.rst index 1eb94dc..2ff357e 100644 --- a/docs/compatibility/compatibility-matrix.rst +++ b/docs/compatibility/compatibility-matrix.rst @@ -6,17 +6,17 @@ Compatibility matrix ************************************************************************************** -The AMD GPU Driver (amdgpu) 30.30.4 is compatible with ROCm 7.2.x, 7.1.x, 7.0.x, 6.4.x, and 6.3.x. For more information, see `AMD GPU Driver (amdgpu) support matrix -`__. +The AMD GPU Driver (amdgpu) 31.40.0 is compatible with ROCm 7.14.0 and Radeon™ Software for Linux (RSL) 26.13. For more information, see `ROCm 7.14.0 compatibility matrix +`__. -====================================== +==================================== Operating system and kernel version -====================================== +==================================== -See `Supported operating systems `_ for ROCm supported operating systems and their kernel versions. +See `Operating system support `_ for ROCm supported operating systems and their kernel versions. -============= +============ GPU support -============= +============ -See `Supported GPUs `_ for the list of supported AMD Instinct™, Radeon™ PRO, and Radeon GPUs. +See `Hardware support `_ for the list of supported AMD Instinct™, Radeon™ PRO, Radeon, and Ryzen™ AI GPUs. \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 5133429..23e36f2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,22 +7,22 @@ html_context["READTHEDOCS"] = True project = "AMD GPU Driver (amdgpu)" -version = "30.30.4" -rocm_version = '7.2.4' -rocm_directory_version = '7.2.4' # in 6.0 rocm was located in /opt/rocm-6.0.0 -amdgpu_version = '30.30.4' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ -amdgpu_url_version = '30.30.4' +version = "31.40.0" +rocm_version = '7.14' +rocm_directory_version = '7.14.0' # in 6.0 rocm was located in /opt/rocm-6.0.0 +amdgpu_version = '31.40' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/ +amdgpu_url_version = '31.40' release = version html_title = f"AMD GPU Driver (amdgpu) {version}" author = "Advanced Micro Devices, Inc." copyright = "Copyright (c) 2026 Advanced Micro Devices, Inc. All rights reserved." # Supported linux version numbers -ubuntu_version_numbers = [('24.04', 'noble'), ('22.04', 'jammy')] +ubuntu_version_numbers = [('26.04', 'resolute'), ('24.04', 'noble'), ('22.04', 'jammy')] debian_version_numbers = [('13', 'noble'), ('12', 'jammy')] rhel_release_version_numbers = ['10', '9', '8'] -rhel_version_numbers = ['10.1', '10.0', '9.7', '9.6', '9.4', '8.10'] -sles_version_numbers = ['15.7'] +rhel_version_numbers = ['10.2', '10.0', '9.8', '9.6', '9.4', '8.10'] +sles_version_numbers = ['16.0', '15.7'] ol_release_version_numbers = ['10', '9', '8'] ol_version_numbers = ['10.1', '9.7', '8.10'] rl_version_numbers = ['9.7'] diff --git a/docs/documentation/release-notes.md b/docs/documentation/release-notes.md index 6ed51f9..d286801 100644 --- a/docs/documentation/release-notes.md +++ b/docs/documentation/release-notes.md @@ -1,13 +1,65 @@ -# AMD GPU Driver (amdgpu) 30.30.4 release notes +# AMD GPU Driver (amdgpu) 31.40.0 release notes -The release notes provide release highlights since the previous AMD GPU Driver release (30.30.3). +The release notes provide release highlights and resolved issues since the previous AMD GPU Driver release (31.30.0, a preview release). ## Release highlights -Added support for ROCm 7.2.4. +The AMD GPU Driver 31.40.0 builds on 31.30.0 with a wide range of enhancements in compute performance, power management, and overall reliability. It is compatible with ROCm 7.14.0 and Radeon™ Software for Linux (RSL) 26.13. -## Operating system and hardware support changes - -This release doesn’t introduce operating system or hardware support changes. +This release introduces more resilient handling of AI and compute workloads, expanded monitoring capabilities, and numerous stability improvements to reduce hangs, crashes, and memory-related issues. It also includes targeted improvements for Instinct MI300-series platforms and newer compute GPUs. For compatibility between AMD GPU Driver, ROCm, GPUs, and operating systems, see the [Compatibility matrix](../compatibility/compatibility-matrix.rst). + +The following are notable new features and improvements in AMD GPU Driver 31.40.0. + +### Compute and Instinct improvements + +- **Improved compute trap-handler memory placement:** Compute trap-handler data is now stored in GPU device memory instead of system memory on supported Instinct platforms. This enhancement improves reliability for AI and HPC workloads that depend on stable compute error handling. + +- **Finer-grained queue recovery:** Added compute user queue reset and pipe reset for AMD Radeon™ RX 7000 and RX 9000 Series GPUs. This enables recovery from compute-related faults without requiring a full GPU reset, improving overall stability and fault tolerance. + +- **Enhanced user-mode queue handling:** Additional validation, hang detection, and reset logic for user-mode queues reduces the risk of stalled AI/ML jobs and prevents resource leaks under heavy submissions. + +- **Expanded HBM queue descriptor support:** Optimized placement and management of compute queue metadata on high-memory Instinct platforms. + +- **AMD Infinity Storage (AIS) enablement:** Introduces AMD Infinity Storage (AIS) enablement together with HipFile support, enabling direct data transfers between AMD GPUs and storage. AIS allows data to move directly between GPU VRAM and storage devices, including local NVMe, NVMe-oF RDMA, and NFSoRDMA, without staging data through host memory and delivers high-bandwidth, low-overhead storage I/O for GPU compute workloads. + +### Power, thermal, and telemetry + +- **SMU 15.0.5 support:** Introduces updated power management features for upcoming platforms. + +- **Enhanced SMU v15 metrics:** Adds support for monitoring memory temperature, partition-level metrics, and thermal alerts, offering improved data-center monitoring and diagnostics capabilities. + +- **Improved driver unload on APU platforms:** Refines power management processes when the driver is removed or during system shutdown on SMU v15 APUs. + +### Reliability, serviceability, and RAS + +- **Enhanced UniRAS and bad-page management:** Adds EEPROM-backed reliability data, poison-error handling, and improved bad-page tracking, enabling easier serviceability and diagnostics. + +- **System stability improvements:** Implements extensive memory safety, locking, and validation enhancements across device setup, GPU memory management, user queues, and error-reporting paths. + +## Resolved issues + +The following previously known issues have been resolved in this release: + +### Driver security + +- Resolved multiple memory safety vulnerabilities, including null-pointer access, use-after-free, buffer overflows, and out-of-bounds access, which could lead to system instability under fault or stress conditions. + +- Resolved incorrect video memory mapping behavior on systems using non-4 KB memory page sizes. + +- Resolved issues with user-mode queue creation, waiting, and path reset operations that could cause system hangs or resource leaks. + +- Resolved module unload issues to ensure pending cleanup processes complete reliably when the driver is removed. + +### Compute and power + +- Resolved issues with compute scheduling and reset paths on newer GPU generations, including MES queue removal and pipe reset handling. + +- Resolved power-management reporting and overdrive table handling on select SMU v14/v15 platforms, addressing memory leaks and incorrect limit calculations. + +- Resolved incorrect SDMA queue counter reporting affected platforms. + +### Reliability and RAS + +Resolved RAS reservation and EEPROM synchronization issues that caused incorrect reporting of available bad-page capacity. diff --git a/docs/index.md b/docs/index.md index 2ea47ec..a1c6d20 100644 --- a/docs/index.md +++ b/docs/index.md @@ -28,7 +28,6 @@ The AMD GPU Driver documentation is organized into the following categories: :::{grid-item-card} How to :class-body: rocm-card-banner rocm-hue-12 -* [System optimization](./system-optimization/index.rst) * [GPU Partitioning](./gpu-partitioning/index.rst) ::: diff --git a/docs/install/detailed-install/package-manager/package-manager-debian.rst b/docs/install/detailed-install/package-manager/package-manager-debian.rst index 317169d..c188e4c 100644 --- a/docs/install/detailed-install/package-manager/package-manager-debian.rst +++ b/docs/install/detailed-install/package-manager/package-manager-debian.rst @@ -13,7 +13,7 @@ Debian native installation .. _debian-register-repo: -Registering ROCm repositories +Registering repositories ================================================= .. _debian-package-key: diff --git a/docs/install/detailed-install/package-manager/package-manager-ol.rst b/docs/install/detailed-install/package-manager/package-manager-ol.rst index 7980b7d..836cb09 100644 --- a/docs/install/detailed-install/package-manager/package-manager-ol.rst +++ b/docs/install/detailed-install/package-manager/package-manager-ol.rst @@ -33,11 +33,7 @@ Register kernel-mode driver sudo tee /etc/yum.repos.d/amdgpu.repo <`_ -- `ROCm installation guide (Linux) `_ +- `ROCm installation guide `_ - `HIP documentation `_ diff --git a/docs/install/detailed-install/prerequisites.rst b/docs/install/detailed-install/prerequisites.rst index cf84c09..ef850c9 100644 --- a/docs/install/detailed-install/prerequisites.rst +++ b/docs/install/detailed-install/prerequisites.rst @@ -16,7 +16,7 @@ Before installing the driver, complete the following prerequisites. uname -m && cat /etc/*release - * Confirm that your Linux distribution matches a :ref:`supported distribution `. + * Confirm that your Linux distribution matches a `supported distribution `_. **Example:** Running the preceding command on an Ubuntu system produces the following output: @@ -24,9 +24,22 @@ Before installing the driver, complete the following prerequisites. x86_64 DISTRIB_ID=Ubuntu - DISTRIB_RELEASE=24.04 - DISTRIB_CODENAME=noble - DISTRIB_DESCRIPTION="Ubuntu 24.04.3 LTS" + DISTRIB_RELEASE=26.04 + DISTRIB_CODENAME=resolute + DISTRIB_DESCRIPTION="Ubuntu 26.04 LTS" + PRETTY_NAME="Ubuntu 26.04 LTS" + NAME="Ubuntu" + VERSION_ID="26.04" + VERSION="26.04 (Resolute Raccoon)" + VERSION_CODENAME=resolute + ID=ubuntu + ID_LIKE=debian + HOME_URL="https://www.ubuntu.com/" + SUPPORT_URL="https://help.ubuntu.com/" + BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" + PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" + UBUNTU_CODENAME=resolute + LOGO=ubuntu-logo .. _verify_kernel_version: @@ -42,9 +55,9 @@ Before installing the driver, complete the following prerequisites. .. code-block:: shell - Linux 6.8.0-50-generic #51-Ubuntu SMP PREEMPT_DYNAMIC Sat Nov 9 17:58:29 UTC 2024 x86_64 + Linux 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64 - * Confirm that your kernel version matches the system requirements, as listed in :ref:`supported_distributions`. + * Confirm that your kernel version matches the system requirements, as listed in `Operating system support `_ .. _register-enterprise-linux: @@ -216,9 +229,23 @@ To install for the currently active kernel run the command corresponding to your .. tab-item:: Ubuntu :sync: ubuntu-tab - .. code-block:: shell + .. datatemplate:nodata:: + + .. tab-set:: + + {% for (os_version, os_release) in config.html_context['ubuntu_version_numbers'] %} + .. tab-item:: {{ os_version }} + :sync: {{ os_version }} - sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" + .. code-block:: shell + + {% if os_version == '26.04' -%} + sudo apt install "linux-headers-$(uname -r)" + {%- else -%} + sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" + {%- endif %} + + {% endfor %} .. tab-item:: Debian :sync: debian-tab diff --git a/docs/install/package-manager-index.rst b/docs/install/package-manager-index.rst index 363d1a9..c8896de 100644 --- a/docs/install/package-manager-index.rst +++ b/docs/install/package-manager-index.rst @@ -39,4 +39,4 @@ Select the install instructions for your operating system * :ref:`Rocky Linux ` * :ref:`SUSE Linux Enterprise Server ` -See `System requirements `_ for a full list of supported operating systems. +See `System requirements `_ for a full list of supported operating systems. diff --git a/docs/release/versions.rst b/docs/release/versions.rst index 01d1ece..6071dd1 100644 --- a/docs/release/versions.rst +++ b/docs/release/versions.rst @@ -12,6 +12,7 @@ AMD GPU Driver (amdgpu) release history :header: "Version","Release date" :widths: 10, 30 + "`31.40.0 `_", "July 15, 2026" "`30.30.4 `_", "May 29, 2026" "`30.30.3 `_", "May 4, 2026" "`30.30.2 `_", "April 17, 2026" @@ -21,4 +22,4 @@ AMD GPU Driver (amdgpu) release history "`30.20.0 `_", "October 30, 2025" "`30.10.2 `_", "October 10, 2025" "`30.10.1 `_", "September 17, 2025" - "`30.10.0 `_", "September 16, 2025" + "`30.10.0 `_", "September 16, 2025" \ No newline at end of file diff --git a/docs/sphinx/_toc.yml.in b/docs/sphinx/_toc.yml.in index ec98fb5..d735b1d 100644 --- a/docs/sphinx/_toc.yml.in +++ b/docs/sphinx/_toc.yml.in @@ -29,18 +29,6 @@ subtrees: title: Post-install instructions - caption: How to entries: - - file: system-optimization/index.rst - title: System optimization - subtrees: - - entries: - - file: system-optimization/mi300x.rst - title: AMD Instinct MI300X - - file: system-optimization/mi300a.rst - title: AMD Instinct MI300A - - file: system-optimization/mi200.md - title: AMD Instinct MI200 - - file: system-optimization/mi100.md - title: AMD Instinct MI100 - file: gpu-partitioning/index.rst title: GPU Partitioning subtrees: diff --git a/docs/system-optimization/index.rst b/docs/system-optimization/index.rst deleted file mode 100644 index fcf1309..0000000 --- a/docs/system-optimization/index.rst +++ /dev/null @@ -1,116 +0,0 @@ -.. meta:: - :description: AMD hardware optimization for specific workloads - :keywords: high-performance computing, HPC, Instinct GPUs, Radeon, - tuning, tuning guide, AMD, ROCm - -******************* -System optimization -******************* - -This guide outlines system setup and tuning suggestions for AMD hardware to -optimize performance for specific types of workloads or use-cases. - -High-performance computing workloads -==================================== - -High-performance computing (HPC) workloads have unique requirements. The default -hardware and BIOS configurations for OEM platforms may not provide optimal -performance for HPC workloads. To enable optimal HPC settings on a per-platform -and per-workload level, this chapter describes: - -* BIOS settings that can impact performance -* Hardware configuration best practices -* Supported versions of operating systems -* Workload-specific recommendations for optimal BIOS and operating system - settings - -There is also a discussion on the AMD Instinct™ software development -environment, including information on how to install and run the DGEMM, STREAM, -HPCG, and HPL benchmarks. This guide provides a good starting point but is -not tested exhaustively across all compilers. - -Knowledge prerequisites to better understand this document and to perform tuning -for HPC applications include: - -* Experience in configuring servers -* Administrative access to the server's Management Interface (BMC) -* Administrative access to the operating system -* Familiarity with the OEM server's BMC (strongly recommended) -* Familiarity with the OS specific tools for configuration, monitoring, and - troubleshooting (strongly recommended) - -This document provides guidance on tuning systems with various AMD Instinct -GPUs for HPC workloads. The following sections don't comprise an -all-inclusive guide, and some items referred to may have similar, but different, -names in various OEM systems (for example, OEM-specific BIOS settings). This -following sections also provide suggestions on items that should be the initial -focus of additional, application-specific tuning. - -While this guide is a good starting point, developers are encouraged to perform -their own performance testing for additional tuning. - -.. list-table:: - :header-rows: 1 - :stub-columns: 1 - - * - System optimization guide - - - Architecture reference - - - White papers - - * - :doc:`AMD Instinct MI300X ` - - - `AMD Instinct MI300 instruction set architecture `_ - - - `CDNA 3 architecture `_ - - * - :doc:`AMD Instinct MI300A ` - - - `AMD Instinct MI300 instruction set architecture `_ - - - `CDNA 3 architecture `_ - - * - :doc:`AMD Instinct MI200 ` - - - `AMD Instinct MI200 instruction set architecture `_ - - - `CDNA 2 architecture `_ - - * - :doc:`AMD Instinct MI100 ` - - - `AMD Instinct MI100 instruction set architecture `_ - - - `CDNA architecture `_ - - -Workstation workloads -===================== - -Workstation workloads, much like those for HPC, have a unique set of -requirements: a blend of both graphics and compute, certification, stability and -others. - -The document covers specific software requirements and processes needed to use -these GPUs for Single Root I/O Virtualization (SR-IOV) and machine learning -tasks. - -The main purpose of this document is to help users utilize the RDNA™ 2 GPUs to -their full potential. - -.. list-table:: - :header-rows: 1 - :stub-columns: 1 - - * - System optimization guide - - - Architecture reference - - - White papers - - * - :doc:`AMD Radeon PRO W6000 and V620 ` - - - `AMD RDNA 2 instruction set architecture `_ - - - `RDNA 2 architecture `_ - diff --git a/docs/system-optimization/mi100.md b/docs/system-optimization/mi100.md deleted file mode 100644 index 8920fab..0000000 --- a/docs/system-optimization/mi100.md +++ /dev/null @@ -1,475 +0,0 @@ - - - - - - -# AMD Instinct MI100 system optimization - -## System settings - -This chapter reviews system settings that are required to configure the system -for AMD Instinct™ MI100 GPUs and that can improve performance of the -GPUs. It is advised to configure the system for best possible host configuration -according to the high-performance computing tuning guides for AMD EPYC™ -7002 Series and EPYC™ 7003 Series processors, depending on the processor generation of the -system. - -In addition to the BIOS settings listed below the following settings -({ref}`mi100-bios-settings`) will also have to be enacted via the command line (see -{ref}`mi100-os-settings`): - -* Core C states -* AMD-PCI-UTIL (on AMD EPYC™ 7002 series processors) -* IOMMU (if needed) - -(mi100-bios-settings)= - -### System BIOS settings - -For maximum MI100 GPU performance on systems with AMD EPYC™ 7002 series -processors (codename "Rome") and AMI System BIOS, the following configuration of -System BIOS settings has been validated. These settings must be used for the -qualification process and should be set as default values for the system BIOS. -Analogous settings for other non-AMI System BIOS providers could be set -similarly. For systems with Intel processors, some settings may not apply or be -available as listed in the following table. - -```{list-table} Recommended settings for the system BIOS in a GIGABYTE platform. -:header-rows: 1 -:name: mi100-bios - -* - - BIOS Setting Location - - Parameter - - Value - - Comments -* - - Advanced / PCI Subsystem Settings - - Above 4G Decoding - - Enabled - - GPU Large BAR Support -* - - AMD CBS / CPU Common Options - - Global C-state Control - - Auto - - Global C-States -* - - AMD CBS / CPU Common Options - - CCD/Core/Thread Enablement - - Accept - - Global C-States -* - - AMD CBS / CPU Common Options / Performance - - SMT Control - - Disable - - Global C-States -* - - AMD CBS / DF Common Options / Memory Addressing - - NUMA nodes per socket - - NPS 1,2,4 - - NUMA Nodes (NPS) -* - - AMD CBS / DF Common Options / Memory Addressing - - Memory interleaving - - Auto - - Numa Nodes (NPS) -* - - AMD CBS / DF Common Options / Link - - 4-link xGMI max speed - - 18 Gbps - - Set AMD CPU xGMI speed to highest rate supported -* - - AMD CBS / DF Common Options / Link - - 3-link xGMI max speed - - 18 Gbps - - Set AMD CPU xGMI speed to highest rate supported -* - - AMD CBS / NBIO Common Options - - IOMMU - - Disable - - -* - - AMD CBS / NBIO Common Options - - PCIe Ten Bit Tag Support - - Enable - - -* - - AMD CBS / NBIO Common Options - - Preferred IO - - Manual - - -* - - AMD CBS / NBIO Common Options - - Preferred IO Bus - - "Use lspci to find pci device id" - - -* - - AMD CBS / NBIO Common Options - - Enhanced Preferred IO Mode - - Enable - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Determinism Control - - Manual - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Determinism Slider - - Power - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - cTDP Control - - Manual - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - cTDP - - 240 - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Package Power Limit Control - - Manual - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Package Power Limit - - 240 - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - xGMI Link Width Control - - Manual - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - xGMI Force Link Width - - 2 - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - xGMI Force Link Width Control - - Force - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - APBDIS - - 1 - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - DF C-states - - Auto - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Fixed SOC P-state - - P0 - - -* - - AMD CBS / UMC Common Options / DDR4 Common Options - - Enforce POR - - Accept - - -* - - AMD CBS / UMC Common Options / DDR4 Common Options / Enforce POR - - Overclock - - Enabled - - -* - - AMD CBS / UMC Common Options / DDR4 Common Options / Enforce POR - - Memory Clock Speed - - 1600 MHz - - Set to max Memory Speed, if using 3200 MHz DIMMs -* - - AMD CBS / UMC Common Options / DDR4 Common Options / DRAM Controller - Configuration / DRAM Power Options - - Power Down Enable - - Disabled - - RAM Power Down -* - - AMD CBS / Security - - TSME - - Disabled - - Memory Encryption -``` - -#### NBIO link clock frequency - -The NBIOs (4x per AMD EPYC™ processor) are the serializers/deserializers (also -known as "SerDes") that convert and prepare the I/O signals for the processor's -128 external I/O interface lanes (32 per NBIO). - -LCLK (short for link clock frequency) controls the link speed of the internal -bus that connects the NBIO silicon with the data fabric. All data between the -processor and its PCIe lanes flow to the data fabric based on these LCLK -frequency settings. The link clock frequency of the NBIO components need to be -forced to the maximum frequency for optimal PCIe performance. - -For AMD EPYC™ 7002 series processors, this setting cannot be modified via -configuration options in the server BIOS alone. Instead, the AMD-IOPM-UTIL (see -Section 3.2.3) must be run at every server boot to disable Dynamic Power -Management for all PCIe Root Complexes and NBIOs within the system and to lock -the logic into the highest performance operational mode. - -For AMD EPYC™ 7003 series processors, configuring all NBIOs to be in "Enhanced -Preferred I/O" mode is sufficient to enable highest link clock frequency for the -NBIO components. - -#### Memory configuration - -For the memory addressing modes, especially the -number of NUMA nodes per socket/processor (NPS), the recommended setting is -to follow the guidance of the high-performance computing tuning guides -for AMD EPYC™ 7002 Series and AMD EPYC™ 7003 Series processors to provide the optimal -configuration for host side computation. - -If the system is set to one NUMA domain per socket/processor (NPS1), -bidirectional copy bandwidth between host memory and GPU memory may be -slightly higher (up to about 16% more) than with four NUMA domains per socket -processor (NPS4). For memory bandwidth sensitive applications using MPI, NPS4 -is recommended. For applications that are not optimized for NUMA locality, -NPS1 is the recommended setting. - -(mi100-os-settings)= - -### Operating system settings - -#### CPU core states - C-states - -There are several core states (C-states) that an AMD EPYC CPU can idle within: - -* C0: active. This is the active state while running an application. -* C1: idle -* C2: idle and power gated. This is a deeper sleep state and will have a - greater latency when moving back to the C0 state, compared to when the - CPU is coming out of C1. - -Disabling C2 is important for running with a high performance, low-latency -network. To disable power-gating on all cores run the following on Linux -systems: - -```shell -cpupower idle-set -d 2 -``` - -Note that the `cpupower` tool must be installed, as it is not part of the base -packages of most Linux® distributions. The package needed varies with the -respective Linux distribution. - -::::{tab-set} -:::{tab-item} Ubuntu -:sync: ubuntu - -```shell -sudo apt install linux-tools-common -``` - -::: - -:::{tab-item} Red Hat Enterprise Linux -:sync: RHEL - -```shell -sudo yum install cpupowerutils -``` - -::: - -:::{tab-item} SUSE Linux Enterprise Server -:sync: SLES - -```shell -sudo zypper install cpupower -``` - -::: -:::: - -#### AMD-IOPM-UTIL - -This section applies to AMD EPYC™ 7002 processors to optimize advanced -Dynamic Power Management (DPM) in the I/O logic (see NBIO description above) -for performance. Certain I/O workloads may benefit from disabling this power -management. This utility disables DPM for all PCI-e root complexes in the -system and locks the logic into the highest performance operational mode. - -Disabling I/O DPM will reduce the latency and/or improve the throughput of -low-bandwidth messages for PCI-e InfiniBand NICs and GPUs. Other workloads -with low-bandwidth bursty PCI-e I/O characteristics may benefit as well if -multiple such PCI-e devices are installed in the system. - -The actions of the utility do not persist across reboots. There is no need to -change any existing firmware settings when using this utility. The "Preferred -I/O" and "Enhanced Preferred I/O" settings should remain unchanged at enabled. - -```{tip} -The recommended method to use the utility is either to create a system -start-up script, for example, a one-shot `systemd` service unit, or run the -utility when starting up a job scheduler on the system. The installer -packages (see -[Power Management Utility](https://developer.amd.com/iopm-utility/)) will -create and enable a `systemd` service unit for you. This service unit is -configured to run in one-shot mode. This means that even when the service -unit runs as expected, the status of the service unit will show inactive. -This is the expected behavior when the utility runs normally. If the service -unit shows failed, the utility did not run as expected. The output in either -case can be shown with the `systemctl status` command. - -Stopping the service unit has no effect since the utility does not leave -anything running. To undo the effects of the utility, disable the service -unit with the `systemctl disable` command and reboot the system. - -The utility does not have any command-line options, and it must be run with -super-user permissions. -``` - -#### Systems with 256 CPU threads - IOMMU configuration - -For systems that have 256 logical CPU cores or more (e.g., 64-core AMD EPYC™ -7763 in a dual-socket configuration and SMT enabled), setting the input-output -memory management unit (IOMMU) configuration to "disabled" can limit the number -of available logical cores to 255. The reason is that the Linux® kernel disables -X2APIC in this case and falls back to Advanced Programmable Interrupt Controller -(APIC), which can only enumerate a maximum of 255 (logical) cores. - -If SMT is enabled by setting "CCD/Core/Thread Enablement > SMT Control" to -"enable", the following steps can be applied to the system to enable all -(logical) cores of the system: - -* In the server BIOS, set IOMMU to "Enabled". -* When configuring the Grub boot loader, add the following argument for the - Linux kernel: `iommu=pt` -* Update Grub to use the modified configuration: - - ```shell - sudo grub2-mkconfig -o /boot/grub2/grub.cfg - ``` - -* Reboot the system. -* Verify IOMMU passthrough mode by inspecting the kernel log via `dmesg`: - - ```none - [...] - [ 0.000000] Kernel command line: [...] iommu=pt - [...] - ``` - -Once the system is properly configured, ROCm software can be -installed. - -## System management - -For a complete guide on how to install/manage/uninstall ROCm on Linux, refer to -{doc}`Quick-start (Linux)`. To verify that the installation was -successful, refer to the -{doc}`post-install instructions` and -{doc}`system tools`. Should verification -fail, consult the {doc}`System debugging guide `. - -(mi100-hw-verification)= - -### Hardware verification with ROCm - -The AMD ROCm™ platform ships with tools to query the system structure. To query -the GPU hardware, the `rocm-smi` command is available. It can show available -GPUs in the system with their device ID and their respective firmware (or VBIOS) -versions: - -![rocm-smi --showhw output on an 8*MI100 system](../data/how-to/tuning-guides/tuning001.png "'rocm-smi --showhw' output on an 8*MI100 system") - -Another important query is to show the system structure, the localization of the -GPUs in the system, and the fabric connections between the system components: - -![mi100-smi-showtopo output on an 8*MI100 system](../data/how-to/tuning-guides/tuning002.png "'mi100-smi-showtopo' output on an 8*MI100 system") - -The previous command shows the system structure in four blocks: - -* The first block of the output shows the distance between the GPUs similar to - what the `numactl` command outputs for the NUMA domains of a system. The - weight is a qualitative measure for the "distance" data must travel to reach - one GPU from another one. While the values do not carry a special (physical) - meaning, the higher the value the more hops are needed to reach the - destination from the source GPU. -* The second block has a matrix for the number of hops required to send data - from one GPU to another. For the GPUs in the local hive, this number is one, - while for the others it is three (one hop to leave the hive, one hop across - the processors, and one hop within the destination hive). -* The third block outputs the link types between the GPUs. This can either be - "XGMI" for AMD Infinity Fabric™ links or "PCIE" for PCIe Gen4 links. -* The fourth block reveals the localization of a GPU with respect to the NUMA - organization of the shared memory of the AMD EPYC™ processors. - -To query the compute capabilities of the GPU devices, the `rocminfo` command is -available with the AMD ROCm™ platform. It lists specific details about the GPU -devices, including but not limited to the number of compute units, width of the -SIMD pipelines, memory information, and Instruction Set Architecture: - -![rocminfo output fragment on an 8*MI100 system](../data/how-to/tuning-guides/tuning003.png "rocminfo output fragment on an 8*MI100 system") - -For a complete list of architecture (LLVM target) names, refer to -{doc}`Linux` and -{doc}`Windows` support. - -### Testing inter-device bandwidth - -{ref}`mi100-hw-verification` showed the `rocm-smi --showtopo` command to show -how the system structure and how the GPUs are located and connected in this -structure. For more details, the `rocm-bandwidth-test` can run benchmarks to -show the effective link bandwidth between the components of the system. - -The ROCm Bandwidth Test program can be installed with the following -package-manager commands: - -::::{tab-set} -:::{tab-item} Ubuntu -:sync: ubuntu - -```shell -sudo apt install rocm-bandwidth-test -``` - -::: - -:::{tab-item} Red Hat Enterprise Linux -:sync: RHEL - -```shell -sudo yum install rocm-bandwidth-test -``` - -::: - -:::{tab-item} SUSE Linux Enterprise Server -:sync: SLES - -```shell -sudo zypper install rocm-bandwidth-test -``` - -::: -:::: - -Alternatively, the source code can be downloaded and built from -[source](https://github.com/ROCm/rocm_bandwidth_test). - -The output will list the available compute devices (CPUs and GPUs): - -![rocm-bandwidth-test output fragment on an 8*MI100 system listing devices](../data/how-to/tuning-guides/tuning004.png "'rocm-bandwidth-test' output fragment on an 8*MI100 system listing devices") - -The output will also show a matrix that contains a "1" if a device can -communicate to another device (CPU and GPU) of the system and it will show the -NUMA distance (similar to `rocm-smi`): - -![rocm-bandwidth-test output fragment on an 8*MI100 system showing inter-device access matrix](../data/how-to/tuning-guides/tuning005.png "'rocm-bandwidth-test' output fragment on an 8*MI100 system showing inter-device access matrix") - -![rocm-bandwidth-test output fragment on an 8*MI100 system showing inter-device NUMA distance](../data/how-to/tuning-guides/tuning006.png "'rocm-bandwidth-test' output fragment on an 8*MI100 system showing inter-device NUMA distance") - -The output also contains the measured bandwidth for unidirectional and -bidirectional transfers between the devices (CPU and GPU): - -![rocm-bandwidth-test output fragment on an 8*MI100 system showing uni- and bidirectional bandwidths](../data/how-to/tuning-guides/tuning004.png "'rocm-bandwidth-test' output fragment on an 8*MI100 system showing uni- and bidirectional bandwidths") diff --git a/docs/system-optimization/mi200.md b/docs/system-optimization/mi200.md deleted file mode 100644 index d144363..0000000 --- a/docs/system-optimization/mi200.md +++ /dev/null @@ -1,459 +0,0 @@ - - - - - - -# AMD Instinct MI200 system optimization - -## System settings - -This chapter reviews system settings that are required to configure the system -for AMD Instinct MI250 GPUs and improve the performance of the GPUs. It -is advised to configure the system for the best possible host configuration -according to the *High Performance Computing (HPC) Tuning Guide for AMD EPYC -7003 Series Processors*. - -Configure the system BIOS settings as explained in {ref}`mi200-bios-settings` and -enact the below given settings via the command line as explained in -{ref}`mi200-os-settings`: - -* Core C states -* input-output memory management unit (IOMMU), if needed - -(mi200-bios-settings)= - -### System BIOS settings - -For maximum MI250 GPU performance on systems with AMD EPYC™ 7003-series -processors (codename "Milan") and AMI System BIOS, the following configuration -of system BIOS settings has been validated. These settings must be used for the -qualification process and should be set as default values for the system BIOS. -Analogous settings for other non-AMI System BIOS providers could be set -similarly. For systems with Intel processors, some settings may not apply or be -available as listed in the following table. - -```{list-table} -:header-rows: 1 -:name: mi200-bios - -* - - BIOS Setting Location - - Parameter - - Value - - Comments -* - - Advanced / PCI Subsystem Settings - - Above 4G Decoding - - Enabled - - GPU Large BAR Support -* - - Advanced / PCI Subsystem Settings - - SR-IOV Support - - Disabled - - Disable Single Root IO Virtualization -* - - AMD CBS / CPU Common Options - - Global C-state Control - - Auto - - Global C-States -* - - AMD CBS / CPU Common Options - - CCD/Core/Thread Enablement - - Accept - - Global C-States -* - - AMD CBS / CPU Common Options / Performance - - SMT Control - - Disable - - Global C-States -* - - AMD CBS / DF Common Options / Memory Addressing - - NUMA nodes per socket - - NPS 1,2,4 - - NUMA Nodes (NPS) -* - - AMD CBS / DF Common Options / Memory Addressing - - Memory interleaving - - Auto - - Numa Nodes (NPS) -* - - AMD CBS / DF Common Options / Link - - 4-link xGMI max speed - - 18 Gbps - - Set AMD CPU xGMI speed to highest rate supported -* - - AMD CBS / NBIO Common Options - - IOMMU - - Disable - - -* - - AMD CBS / NBIO Common Options - - PCIe Ten Bit Tag Support - - Auto - - -* - - AMD CBS / NBIO Common Options - - Preferred IO - - Bus - - -* - - AMD CBS / NBIO Common Options - - Preferred IO Bus - - "Use lspci to find pci device id" - - -* - - AMD CBS / NBIO Common Options - - Enhanced Preferred IO Mode - - Enable - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Determinism Control - - Manual - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Determinism Slider - - Power - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - cTDP Control - - Manual - - Set cTDP to the maximum supported by the installed CPU -* - - AMD CBS / NBIO Common Options / SMU Common Options - - cTDP - - 280 - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Package Power Limit Control - - Manual - - Set Package Power Limit to the maximum supported by the installed CPU -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Package Power Limit - - 280 - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - xGMI Link Width Control - - Manual - - Set AMD CPU xGMI width to 16 bits -* - - AMD CBS / NBIO Common Options / SMU Common Options - - xGMI Force Link Width - - 2 - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - xGMI Force Link Width Control - - Force - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - APBDIS - - 1 - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - DF C-states - - Enabled - - -* - - AMD CBS / NBIO Common Options / SMU Common Options - - Fixed SOC P-state - - P0 - - -* - - AMD CBS / UMC Common Options / DDR4 Common Options - - Enforce POR - - Accept - - -* - - AMD CBS / UMC Common Options / DDR4 Common Options / Enforce POR - - Overclock - - Enabled - - -* - - AMD CBS / UMC Common Options / DDR4 Common Options / Enforce POR - - Memory Clock Speed - - 1600 MHz - - Set to max Memory Speed, if using 3200 MHz DIMMs -* - - AMD CBS / UMC Common Options / DDR4 Common Options / DRAM Controller - Configuration / DRAM Power Options - - Power Down Enable - - Disabled - - RAM Power Down -* - - AMD CBS / Security - - TSME - - Disabled - - Memory Encryption -``` - -#### NBIO link clock frequency - -The NBIOs (4x per AMD EPYC™ processor) are the serializers/deserializers (also -known as "SerDes") that convert and prepare the I/O signals for the processor's -128 external I/O interface lanes (32 per NBIO). - -LCLK (short for link clock frequency) controls the link speed of the internal -bus that connects the NBIO silicon with the data fabric. All data between the -processor and its PCIe lanes flow to the data fabric based on these LCLK -frequency settings. The link clock frequency of the NBIO components need to be -forced to the maximum frequency for optimal PCIe performance. - -For AMD EPYC™ 7003 series processors, configuring all NBIOs to be in "Enhanced -Preferred I/O" mode is sufficient to enable highest link clock frequency for the -NBIO components. - -#### Memory configuration - -For setting the memory addressing modes, especially -the number of NUMA nodes per socket/processor (NPS), follow the guidance of the -"High Performance Computing (HPC) Tuning Guide for AMD EPYC 7003 Series -Processors" to provide the optimal configuration for host side computation. For -most HPC workloads, NPS=4 is the recommended value. - -(mi200-os-settings)= - -### Operating system settings - -#### CPU core states - C-states - -There are several core states (C-states) that an AMD EPYC CPU can idle within: - -* C0: active. This is the active state while running an application. -* C1: idle -* C2: idle and power gated. This is a deeper sleep state and will have a - greater latency when moving back to the C0 state, compared to when the - CPU is coming out of C1. - -Disabling C2 is important for running with a high performance, low-latency -network. To disable power-gating on all cores run the following on Linux -systems: - -```shell -cpupower idle-set -d 2 -``` - -Note that the `cpupower` tool must be installed, as it is not part of the base -packages of most Linux® distributions. The package needed varies with the -respective Linux distribution. - -::::{tab-set} -:::{tab-item} Ubuntu -:sync: ubuntu - -```shell -sudo apt install linux-tools-common -``` - -::: - -:::{tab-item} Red Hat Enterprise Linux -:sync: RHEL - -```shell -sudo yum install cpupowerutils -``` - -::: - -:::{tab-item} SUSE Linux Enterprise Server -:sync: SLES - -```shell -sudo zypper install cpupower -``` - -::: -:::: - -#### AMD-IOPM-UTIL - -This section applies to AMD EPYC™ 7002 processors to optimize advanced -Dynamic Power Management (DPM) in the I/O logic (see NBIO description above) -for performance. Certain I/O workloads may benefit from disabling this power -management. This utility disables DPM for all PCI-e root complexes in the -system and locks the logic into the highest performance operational mode. - -Disabling I/O DPM will reduce the latency and/or improve the throughput of -low-bandwidth messages for PCI-e InfiniBand NICs and GPUs. Other workloads -with low-bandwidth bursty PCI-e I/O characteristics may benefit as well if -multiple such PCI-e devices are installed in the system. - -The actions of the utility do not persist across reboots. There is no need to -change any existing firmware settings when using this utility. The "Preferred -I/O" and "Enhanced Preferred I/O" settings should remain unchanged at enabled. - -```{tip} -The recommended method to use the utility is either to create a system -start-up script, for example, a one-shot `systemd` service unit, or run the -utility when starting up a job scheduler on the system. The installer -packages (see -[Power Management Utility](https://developer.amd.com/iopm-utility/)) will -create and enable a `systemd` service unit for you. This service unit is -configured to run in one-shot mode. This means that even when the service -unit runs as expected, the status of the service unit will show inactive. -This is the expected behavior when the utility runs normally. If the service -unit shows failed, the utility did not run as expected. The output in either -case can be shown with the `systemctl status` command. - -Stopping the service unit has no effect since the utility does not leave -anything running. To undo the effects of the utility, disable the service -unit with the `systemctl disable` command and reboot the system. - -The utility does not have any command-line options, and it must be run with -super-user permissions. -``` - -#### Systems with 256 CPU threads - IOMMU configuration - -For systems that have 256 logical CPU cores or more (e.g., 64-core AMD EPYC™ -7763 in a dual-socket configuration and SMT enabled), setting the input-output -memory management unit (IOMMU) configuration to "disabled" can limit the number -of available logical cores to 255. The reason is that the Linux® kernel disables -X2APIC in this case and falls back to Advanced Programmable Interrupt Controller -(APIC), which can only enumerate a maximum of 255 (logical) cores. - -If SMT is enabled by setting "CCD/Core/Thread Enablement > SMT Control" to -"enable", the following steps can be applied to the system to enable all -(logical) cores of the system: - -* In the server BIOS, set IOMMU to "Enabled". -* When configuring the Grub boot loader, add the following argument for the - Linux kernel: `iommu=pt` -* Update Grub to use the modified configuration: - - ```shell - sudo grub2-mkconfig -o /boot/grub2/grub.cfg - ``` - -* Reboot the system. -* Verify IOMMU passthrough mode by inspecting the kernel log via `dmesg`: - - ```none - [...] - [ 0.000000] Kernel command line: [...] iommu=pt - [...] - ``` - -Once the system is properly configured, ROCm software can be -installed. - -## System management - -For a complete guide on how to install/manage/uninstall ROCm on Linux, refer to -{doc}`Quick-start (Linux)`. For verifying that the -installation was successful, refer to the -{doc}`post-install instructions` and -{doc}`system tools`. Should verification -fail, consult the {doc}`System debugging guide `. - -(mi200-hw-verification)= - -### Hardware verification with ROCm - -The AMD ROCm™ platform ships with tools to query the system structure. To query -the GPU hardware, the `rocm-smi` command is available. It can show available -GPUs in the system with their device ID and their respective firmware (or VBIOS) -versions: - -![rocm-smi --showhw output on an 8*MI200 system](../data/how-to/tuning-guides/tuning008.png "'rocm-smi --showhw' output on an 8*MI200 system") - -To see the system structure, the localization of the GPUs in the system, and the -fabric connections between the system components, use: - -![rocm-smi --showtopo output on an 8*MI200 system](../data/how-to/tuning-guides/tuning009.png "'rocm-smi --showtopo' output on an 8*MI200 system") - -* The first block of the output shows the distance between the GPUs similar to - what the `numactl` command outputs for the NUMA domains of a system. The - weight is a qualitative measure for the "distance" data must travel to reach - one GPU from another one. While the values do not carry a special (physical) - meaning, the higher the value the more hops are needed to reach the - destination from the source GPU. -* The second block has a matrix named "Hops between two GPUs", where 1 means the - two GPUs are directly connected with XGMI, 2 means both GPUs are linked to the - same CPU socket and GPU communications will go through the CPU, and 3 means - both GPUs are linked to different CPU sockets so communications will go - through both CPU sockets. This number is one for all GPUs in this case since - they are all connected to each other through the Infinity Fabric links. -* The third block outputs the link types between the GPUs. This can either be - "XGMI" for AMD Infinity Fabric links or "PCIE" for PCIe Gen4 links. -* The fourth block reveals the localization of a GPU with respect to the NUMA - organization of the shared memory of the AMD EPYC processors. - -To query the compute capabilities of the GPU devices, use `rocminfo` command. It -lists specific details about the GPU devices, including but not limited to the -number of compute units, width of the SIMD pipelines, memory information, and -Instruction Set Architecture (ISA): - -![rocminfo output fragment on an 8*MI200 system](../data/how-to/tuning-guides/tuning010.png "'rocminfo' output fragment on an 8*MI200 system") - -For a complete list of architecture (LLVM target) names, refer to GPU OS Support for -{doc}`Linux` and -{doc}`Windows`. - -### Testing inter-device bandwidth - -{ref}`mi100-hw-verification` showed the `rocm-smi --showtopo` command to show -how the system structure and how the GPUs are located and connected in this -structure. For more details, the `rocm-bandwidth-test` can run benchmarks to -show the effective link bandwidth between the components of the system. - -The ROCm Bandwidth Test program can be installed with the following -package-manager commands: - -::::{tab-set} -:::{tab-item} Ubuntu -:sync: ubuntu - -```shell -sudo apt install rocm-bandwidth-test -``` - -::: - -:::{tab-item} Red Hat Enterprise Linux -:sync: RHEL - -```shell -sudo yum install rocm-bandwidth-test -``` - -::: - -:::{tab-item} SUSE Linux Enterprise Server -:sync: SLES - -```shell -sudo zypper install rocm-bandwidth-test -``` - -::: -:::: - -Alternatively, the source code can be downloaded and built from -[source](https://github.com/ROCm/rocm_bandwidth_test). - -The output will list the available compute devices (CPUs and GPUs), including -their device ID and PCIe ID: - -![rocm-bandwidth-test output fragment on an 8*MI200 system listing devices](../data/how-to/tuning-guides/tuning011.png "'rocm-bandwidth-test' output fragment on an 8*MI200 system listing devices") - -The output will also show a matrix that contains a "1" if a device can -communicate to another device (CPU and GPU) of the system and it will show the -NUMA distance (similar to `rocm-smi`): - -!['rocm-bandwidth-test' output fragment on an 8*MI200 system showing inter-device access matrix and NUMA distances](../data/how-to/tuning-guides/tuning012.png "'rocm-bandwidth-test' output fragment on an 8*MI200 system showing inter-device access matrix and NUMA distances") - -The output also contains the measured bandwidth for unidirectional and -bidirectional transfers between the devices (CPU and GPU): - -!['rocm-bandwidth-test' output fragment on an 8*MI200 system showing uni- and bidirectional bandwidths](../data/how-to/tuning-guides/tuning013.png "'rocm-bandwidth-test' output fragment on an 8*MI200 system showing uni- and bidirectional bandwidths") diff --git a/docs/system-optimization/mi300a.rst b/docs/system-optimization/mi300a.rst deleted file mode 100644 index 55c7976..0000000 --- a/docs/system-optimization/mi300a.rst +++ /dev/null @@ -1,452 +0,0 @@ -.. meta:: - :description: AMD Instinct MI300A system settings - :keywords: AMD, Instinct, MI300A, HPC, tuning, BIOS settings, NBIO, ROCm, - environment variable, performance, GPU, EPYC, GRUB, - operating system - -*************************************************** -AMD Instinct MI300A system optimization -*************************************************** - -This topic discusses the operating system settings and system management commands for -the AMD Instinct MI300A GPU. This topic can help you optimize performance. - -System settings -======================================== - -This section reviews the system settings required to configure a MI300A SOC system and -optimize its performance. - -The MI300A system-on-a-chip (SOC) design requires you to review and potentially adjust your OS configuration as explained in -the :ref:`operating-system-settings-label` section. These settings are critical for -performance because the OS on an accelerated processing unit (APU) is responsible for memory management across the CPU and GPUs. -In the APU memory model, system settings are available to limit GPU memory allocation. -This limit is important because legacy software often determines the -amount of allowable memory at start-up time -by probing discrete memory until it is exhausted. If left unchecked, this practice -can starve the OS of resources. - -System BIOS settings ------------------------------------ - -System BIOS settings are preconfigured for optimal performance from the -platform vendor. This means that you do not need to adjust these settings -when using MI300A. If you have any questions regarding these settings, -contact your MI300A platform vendor. - -GRUB settings ------------------------------------ - -The ``/etc/default/grub`` file is used to configure the GRUB bootloader on modern Linux distributions. -Linux uses the string assigned to ``GRUB_CMDLINE_LINUX`` in this file as -its command line parameters during boot. - -Appending strings using the Linux command line -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -It is recommended that you append the following string to ``GRUB_CMDLINE_LINUX``. - -``pci=realloc=off`` - This setting disables the automatic reallocation - of PCI resources, so Linux is able to unambiguously detect all GPUs on the - MI300A-based system. It's used when Single Root I/O Virtualization (SR-IOV) Base - Address Registers (BARs) have not been allocated by the BIOS. This can help - avoid potential issues with certain hardware configurations. - -Validating the IOMMU setting -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -IOMMU is a system-specific IO mapping mechanism for DMA mapping -and isolation. IOMMU is turned off by default in the operating system settings -for optimal performance. - -To verify IOMMU is turned off, first install the ``acpica-tools`` package using your -package manager. - -.. code-block:: shell - - sudo apt install acpica-tools - -Then confirm that the following commands do not return any results. - -.. code-block:: shell - - sudo acpidump | grep IVRS - sudo acpidump | grep DMAR - -Update GRUB -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Use this command to update GRUB to use the modified configuration: - -.. code-block:: shell - - sudo grub2-mkconfig -o /boot/grub2/grub.cfg - -On some Red Hat-based systems, the ``grub2-mkconfig`` command might not be available. In this case, -use ``grub-mkconfig`` instead. Verify that you have the -correct version by using the following command: - -.. code-block:: shell - - grub-mkconfig -version - -.. _operating-system-settings-label: - -Operating system settings ------------------------------------ - -The operating system provides several options to customize and tune performance. For more information -about supported operating systems, see the :doc:`Compatibility matrix `. - -If you are using a distribution other than RHEL or SLES, the latest Linux kernel is recommended. -Performance considerations for the Zen4, which is the core architecture in the MI300A, -require a Linux kernel running version 5.18 or higher. - -This section describes performance-based settings. - -* **Enable transparent huge pages** - - To enable transparent huge pages, use one of the following methods: - - * From the command line, run the following command: - - .. code-block:: shell - - echo always > /sys/kernel/mm/transparent_hugepage/enabled - - * Set the Linux kernel parameter ``transparent_hugepage`` as follows in the - relevant ``.cfg`` file for your system. - - .. code-block:: cfg - - transparent_hugepage=always - -* **Increase the amount of allocatable memory** - - By default, when using a device allocator via HIP, it is only possible to allocate 96 GiB out of - a possible 128 GiB of memory on the MI300A. This limitation does not affect host allocations. - To increase the available system memory, load the ``amdttm`` module with new values for - ``pages_limit`` and ``page_pool_size``. These numbers correspond to the number of 4 KiB pages of memory. - To make 128 GiB of memory available across all four devices, for a total amount of 512 GiB, - set ``pages_limit`` and ``page_pool_size`` to ``134217728``. For a two-socket system, divide these values - by two. After setting these values, reload the AMDGPU driver. - - First, review the current settings using this shell command: - - .. code-block:: shell - - cat /sys/module/amdttm/parameters/pages_limit - - To set the amount of allocatable memory to all available memory on all four APU devices, run these commands: - - .. code-block:: shell - - sudo modprobe amdttm pages_limit=134217728 page_pool_size=134217728 - sudo modprobe amdgpu - - These settings can also be hardcoded in the ``/etc/modprobe.d/amdttm.conf`` file or specified as boot - parameters. - - To use the hardcoded method, - the filesystem must already be set up when the kernel driver is loaded. - To hardcode the settings, add the following lines to ``/etc/modprobe.d/amdttm.conf``: - - .. code-block:: shell - - options amdttm pages_limit=134217728 - options amdttm page_pool_size=134217728 - - If the filesystem is not already set up when the kernel driver is loaded, then the options - must be specified as boot parameters. To specify the settings - as boot parameters when loading the kernel, use this example as a guideline: - - .. code-block:: shell - - vmlinux-[...] amdttm.pages_limit=134217728 amdttm.page_pool_size=134217728 [...] - - To verify the new settings and confirm the change, use this command: - - .. code-block:: shell - - cat /sys/module/amdttm/parameters/pages_limit - - .. note:: - - The system settings for ``pages_limit`` and ``page_pool_size`` are calculated by multiplying the - per-APU limit of 4 KiB pages, which is ``33554432``, by the number of APUs on the node. The limit for a system with - two APUs ``33554432 x 2`` or ``67108864``. - This means the ``modprobe`` command for two APUs is ``sudo modprobe amdttm pages_limit=67108864 page_pool_size=67108864``. - -* **Limit the maximum and single memory allocations on the GPU** - - Many AI-related applications were originally developed on discrete GPUs. Some of these applications - have fixed problem sizes associated with the targeted GPU size, and some attempt to determine the - system memory limits by allocating chunks until failure. These techniques can cause issues in an - APU with a shared space. - - To allow these applications to run on the APU without further changes, - ROCm supports a default memory policy that restricts the percentage of the GPU that can be allocated. - The following environment variables control this feature: - - * ``GPU_MAX_ALLOC_PERCENT`` - * ``GPU_SINGLE_ALLOC_PERCENT`` - - These settings can be added to the default shell environment or the user environment. The effect of the memory allocation - settings varies depending on the system, configuration, and task. They might require adjustment, especially when performing GPU benchmarks. Setting these values to ``100`` - lets the GPU allocate any amount of free memory. However, the risk of encountering - an operating system out-of-memory (OMM) condition increases when almost - all the available memory is used. - - Before setting either of these items to 100 percent, - carefully consider the expected CPU workload allocation and the anticipated OS usage. - For instance, if the OS requires 8GB on a 128GB system, setting these - variables to ``100`` authorizes a single - workload to allocate up to 120GB of memory. Unless the system has swap space configured - any over-allocation attempts will be handled by the OMM policies. - -* **Disable NUMA (Non-uniform memory access) balancing** - - ROCm uses information from the compiled application to ensure an affinity exists - between the GPU agent processes and their CPU hosts or co-processing agents. - Because the APU has OS threads, - including threads with memory management, the default kernel NUMA policies can - adversely impact workload performance without additional tuning. - - .. note:: - - At the kernel level, ``pci_relloc`` can also be set to ``off`` as an additional tuning measure. - - To disable NUMA balancing, use one of the following methods: - - * From the command line, run the following command: - - .. code-block:: shell - - echo 0 > /proc/sys/kernel/numa_balancing - - * Set the following Linux kernel parameters in the - relevant ``.cfg`` file for your system. - - .. code-block:: cfg - - pci=realloc=off numa_balancing=disable - -* **Enable compaction** - - Compaction is necessary for proper MI300A operation because the APU dynamically shares memory - between the CPU and GPU. Compaction can be done proactively, which reduces - allocation costs, or performed during allocation, in which case it is part of the background activities. - Without compaction, the MI300A application performance eventually degrades as fragmentation increases. - In RHEL distributions, compaction is disabled by default. In Ubuntu, it's enabled by default. - - To enable compaction, enter the following commands using the command line: - - .. code-block:: shell - - echo 20 > /proc/sys/vm/compaction_proactiveness - echo 1 > /proc/sys/vm/compact_unevictable_allowed - -.. _mi300a-processor-affinity: - -* **Change affinity of ROCm helper threads** - - Changing the affinity prevents internal ROCm threads from having their CPU core affinity mask - set to all CPU cores available. With this setting, the threads inherit their parent's - CPU core affinity mask. Before adjusting this setting, ensure you thoroughly understand - your system topology and how the application, runtime environment, and batch system - set the thread-to-core affinity. If you have any questions regarding this setting, - contact your MI300A platform vendor or the AMD support team. - To enable this setting, enter the following command: - - .. code-block:: shell - - export HSA_OVERRIDE_CPU_AFFINITY_DEBUG=0 - -* **CPU core states and C-states** - - The system BIOS handles these settings for the MI300A. - They don't need to be configured on the operating system. - -System management -======================================== - -For a complete guide on installing, managing, and uninstalling ROCm on Linux, see -:doc:`Quick-start (Linux)`. To verify that the -installation was successful, see the -:doc:`Post-installation instructions` and -:doc:`ROCm tools ` guides. If verification -fails, consult the :doc:`System debugging guide `. - -.. _hw-verification-rocm-label: - -Hardware verification with ROCm ------------------------------------ - -ROCm includes tools to query the system structure. To query -the GPU hardware, use the ``rocm-smi`` command. - -``rocm-smi`` reports statistics per socket, so the power results combine CPU and GPU utilization. -In an idle state on a multi-socket system, some power imbalances are expected because -the distribution of OS threads can keep some APU devices at higher power states. - -.. note:: - - The MI300A VRAM settings show as ``N/A``. - -.. image:: ../data/how-to/tuning-guides/mi300a-rocm-smi-output.png - :alt: Output from the rocm-smi command - -The ``rocm-smi --showhw`` command shows the available system -GPUs and their device ID and firmware details. - -In the MI300A hardware settings, the system BIOS handles the UMC RAS. The -ROCm-supplied GPU driver does not manage this setting. -This results in a value of ``DISABLED`` for the ``UMC RAS`` setting. - -.. image:: ../data/how-to/tuning-guides/mi300a-rocm-smi-showhw-output.png - :alt: Output from the ``rocm-smi showhw`` command - -To see the system structure, the localization of the GPUs in the system, and the -fabric connections between the system components, use the ``rocm-smi --showtopo`` command. - -* The first block of the output shows the distance between the GPUs. The weight is a qualitative - measure of the “distance” data must travel to reach one GPU from another. - While the values do not have a precise physical meaning, the higher the value the - more hops are required to reach the destination from the source GPU. -* The second block contains a matrix named “Hops between two GPUs”, where ``1`` means - the two GPUs are directly connected with XGMI, ``2`` means both GPUs are linked to the - same CPU socket and GPU communications go through the CPU, and ``3`` means - both GPUs are linked to different CPU sockets so communications go - through both CPU sockets. -* The third block indicates the link types between the GPUs. This can either be - ``XGMI`` for AMD Infinity Fabric links or ``PCIE`` for PCIe Gen4 links. -* The fourth block reveals the localization of a GPU with respect to the NUMA organization - of the shared memory of the AMD EPYC processors. - -.. image:: ../data/how-to/tuning-guides/mi300a-rocm-smi-showtopo-output.png - :alt: Output from the ``rocm-smi showtopo`` command - -Testing inter-device bandwidth ------------------------------------ - -The ``rocm-smi --showtopo`` command from the :ref:`hw-verification-rocm-label` section -displays the system structure and shows how the GPUs are located and connected within this -structure. For more information, use the :doc:`ROCm Bandwidth Test `, which can run benchmarks to -show the effective link bandwidth between the system components. - -For information on how to install the ROCm Bandwidth Test, see :doc:`Building the environment `. - -The output lists the available compute devices (CPUs and GPUs), including -their device ID and PCIe ID: - -.. image:: ../data/how-to/tuning-guides/mi300a-rocm-bandwidth-test-output.png - :alt: Output from the rocm-bandwidth-test utility - -It also displays the measured bandwidth for unidirectional and -bidirectional transfers between the devices on the CPU and GPU: - -.. image:: ../data/how-to/tuning-guides/mi300a-rocm-peak-bandwidth-output.png - :alt: Bandwidth information from the rocm-bandwidth-test utility - -Abbreviations -============= - -APBDIS - Algorithmic Performance Boost Disable - -APU - Accelerated processing unit - -BAR - Base Address Register - -BIOS - Basic Input/Output System - -CBS - Common BIOS Settings - -CCD - Compute Core Die - -CDNA - Compute DNA - -CLI - Command Line Interface - -CPU - Central Processing Unit - -cTDP - Configurable Thermal Design Power - -DF - Data Fabric - -DMA - Direct Memory Access - -GPU - Graphics Processing Unit - -GRUB - Grand Unified Bootloader - -HBM - High Bandwidth Memory - -HPC - High Performance Computing - -IOMMU - Input-Output Memory Management Unit - -ISA - Instruction Set Architecture - -NBIO - North Bridge Input/Output - -NUMA - Non-Uniform Memory Access - -OMM - Out of Memory - -PCI - Peripheral Component Interconnect - -PCIe - PCI Express - -POR - Power-On Reset - -RAS - Reliability, availability and serviceability - -SMI - System Management Interface - -SMT - Simultaneous Multi-threading - -SOC - System On Chip - -SR-IOV - Single Root I/O Virtualization - -TSME - Transparent Secure Memory Encryption - -UMC - Unified Memory Controller - -VRAM - Video RAM - -xGMI - Inter-chip Global Memory Interconnect diff --git a/docs/system-optimization/mi300x.rst b/docs/system-optimization/mi300x.rst deleted file mode 100644 index eb0a9ff..0000000 --- a/docs/system-optimization/mi300x.rst +++ /dev/null @@ -1,916 +0,0 @@ -.. meta:: - :description: AMD Instinct MI300X system settings - :keywords: AMD, Instinct, MI300X, HPC, tuning, BIOS settings, NBIO, ROCm, - environment variable, performance, GPU, EPYC, GRUB, - operating system - -*************************************** -AMD Instinct MI300X system optimization -*************************************** - -This document covers essential system settings and management practices required -to configure your system effectively. Ensuring that your system operates -correctly is the first step before delving into advanced performance tuning. - -The main topics of discussion in this document are: - -* :ref:`System settings ` - - * :ref:`System BIOS settings ` - - * :ref:`GRUB settings ` - - * :ref:`Operating system settings ` - -* :ref:`System management ` - -.. _mi300x-system-settings: - -System settings -=============== - -This guide discusses system settings that are required to configure your system -for AMD Instinct™ MI300X GPUs. It is important to ensure a system is -functioning correctly before trying to improve its overall performance. In this -section, the settings discussed mostly ensure proper functionality of your -Instinct-based system. Some settings discussed are known to improve performance -for most applications running on a MI300X system. See -:doc:`rocm:how-to/rocm-for-ai/inference-optimization/workload` for how to improve performance for -specific applications or workloads. - -.. _mi300x-bios-settings: - -System BIOS settings --------------------- - -AMD EPYC 9004-based systems -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For maximum MI300X GPU performance on systems with AMD EPYC™ 9004-series -processors and AMI System BIOS, the following configuration -of system BIOS settings has been validated. These settings must be used for the -qualification process and should be set as default values in the system BIOS. -Analogous settings for other non-AMI System BIOS providers could be set -similarly. For systems with Intel processors, some settings may not apply or be -available as listed in the following table. - -Each row in the table details a setting but the specific location within the -BIOS setup menus may be different, or the option may not be present. - -.. list-table:: - :header-rows: 1 - - * - BIOS setting location - - - Parameter - - - Value - - - Comments - - * - Advanced / PCI subsystem settings - - - Above 4G decoding - - - Enabled - - - GPU large BAR support. - - * - Advanced / PCI subsystem settings - - - SR-IOV support - - - Enabled - - - Enable single root IO virtualization. - - * - AMD CBS / GPU common options - - - Global C-state control - - - Auto - - - Global C-states -- do not disable this menu item). - - * - AMD CBS / GPU common options - - - CCD/Core/Thread enablement - - - Accept - - - May be necessary to enable the SMT control menu. - - * - AMD CBS / GPU common options / performance - - - SMT control - - - Disable - - - Set to Auto if the primary application is not compute-bound. - - * - AMD CBS / DF common options / memory addressing - - - NUMA nodes per socket - - - Auto - - - Auto = NPS1. At this time, the other options for NUMA nodes per socket - should not be used. - - * - AMD CBS / DF common options / memory addressing - - - Memory interleaving - - - Auto - - - Depends on NUMA nodes (NPS) setting. - - * - AMD CBS / DF common options / link - - - 4-link xGMI max speed - - - 32 Gbps - - - Auto results in the speed being set to the lower of the max speed the - motherboard is designed to support and the max speed of the CPU in use. - - * - AMD CBS / NBIO common options - - - IOMMU - - - Enabled - - - - - * - AMD CBS / NBIO common options - - - PCIe ten bit tag support - - - Auto - - - - - * - AMD CBS / NBIO common options / SMU common options - - - Determinism control - - - Manual - - - - - * - AMD CBS / NBIO common options / SMU common options - - - Determinism slider - - - Power - - - - - * - AMD CBS / NBIO common options / SMU common options - - - cTDP control - - - Manual - - - Set cTDP to the maximum supported by the installed CPU. - - * - AMD CBS / NBIO common options / SMU common options - - - cTDP - - - 400 - - - Value in watts. - - * - AMD CBS / NBIO common options / SMU common options - - - Package power limit control - - - Manual - - - Set package power limit to the maximum supported by the installed CPU. - - * - AMD CBS / NBIO common options / SMU common options - - - Package power limit - - - 400 - - - Value in watts. - - * - AMD CBS / NBIO common options / SMU common options - - - xGMI link width control - - - Manual - - - Set package power limit to the maximum supported by the installed CPU. - - * - AMD CBS / NBIO common options / SMU common options - - - xGMI force width control - - - Force - - - - - * - AMD CBS / NBIO common options / SMU common options - - - xGMI force link width - - - 2 - - - * 0: Force xGMI link width to x2 - * 1: Force xGMI link width to x8 - * 2: Force xGMI link width to x16 - - * - AMD CBS / NBIO common options / SMU common options - - - xGMI max speed - - - Auto - - - Auto results in the speed being set to the lower of the max speed the - motherboard is designed to support and the max speed of the CPU in use. - - * - AMD CBS / NBIO common options / SMU common options - - - APBDIS - - - 1 - - - Disable DF (data fabric) P-states - - * - AMD CBS / NBIO common options / SMU common options - - - DF C-states - - - Auto - - - - - * - AMD CBS / NBIO common options / SMU common options - - - Fixed SOC P-state - - - P0 - - - - - * - AMD CBS / security - - - TSME - - - Disabled - - - Memory encryption - -.. _mi300x-grub-settings: - -GRUB settings -------------- - -In any modern Linux distribution, the ``/etc/default/grub`` file is used to -configure GRUB. In this file, the string assigned to ``GRUB_CMDLINE_LINUX`` is -the command line parameters that Linux uses during boot. - -Appending strings via Linux command line -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -It is recommended to append the following strings in ``GRUB_CMDLINE_LINUX``. - -``pci=realloc=off`` - With this setting Linux is able to unambiguously detect all GPUs of the - MI300X-based system because this setting disables the automatic reallocation - of PCI resources. It's used when Single Root I/O Virtualization (SR-IOV) Base - Address Registers (BARs) have not been allocated by the BIOS. This can help - avoid potential issues with certain hardware configurations. - -``iommu=pt`` - The ``iommu=pt`` setting enables IOMMU pass-through mode. When in pass-through - mode, the adapter does not need to use DMA translation to the memory, which can - improve performance. - -IOMMU is a system specific IO mapping mechanism and can be used for DMA mapping -and isolation. This can be beneficial for virtualization and device assignment -to virtual machines. It is recommended to enable IOMMU support. - -For a system that has AMD host CPUs add this to ``GRUB_CMDLINE_LINUX``: - -.. code-block:: text - - iommu=pt - -Otherwise, if the system has Intel host CPUs add this instead to -``GRUB_CMDLINE_LINUX``: - -.. code-block:: text - - intel_iommu=on iommu=pt - -``modprobe.blacklist=amdgpu`` - For some system configurations, the ``amdgpu`` driver needs to be blacklisted to avoid an issue where after boot, the GPUs are not listed when running the command ``rocm-smi`` or ``amd-smi``. - - Alternatively, configuring the AMD recommended system optimized BIOS settings might remove - the need for using this setting. Some manufacturers and users might not implement the - recommended system optimized BIOS settings. - -If you experience the mentioned issue, then add this to ``GRUB_CMDLINE_LINUX``: - -.. code-block:: text - - modprobe.blacklist=amdgpu - -After the change, the ``amdgpu`` module must be loaded to support the ROCm framework -software tools and utilities. Run the following command to load the ``amdgpu`` module: - -.. code-block:: text - - sudo modprobe amdgpu - -Update GRUB ------------ - -Update GRUB to use the modified configuration: - -.. code-block:: shell - - sudo grub2-mkconfig -o /boot/grub2/grub.cfg - -On some Debian systems, the ``grub2-mkconfig`` command may not be available. Instead, -check for the presence of ``grub-mkconfig``. Additionally, verify that you have the -correct version by using the following command: - -.. code-block:: shell - - grub-mkconfig -version - -.. _mi300x-os-settings: - -Operating system settings -------------------------- - -CPU core states (C-states) -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -There are several core states (C-states) that an AMD EPYC CPU can idle within: - -* **C0**: active. This is the active state while running an application. - -* **C1**: idle. This state consumes less power compared to C0, but can quickly - return to the active state (C0) with minimal latency. - -* **C2**: idle and power-gated. This is a deeper sleep state and will have greater - latency when moving back to the active (C0) state as compared to when the CPU - is coming out of C1. - -Disabling C2 is important for running with a high performance, low-latency -network. To disable the C2 state, install the ``cpupower`` tool using your Linux -distribution's package manager. ``cpupower`` is not a base package in most Linux -distributions. The specific package to be installed varies per Linux -distribution. - -.. tab-set:: - - .. tab-item:: Ubuntu - :sync: ubuntu - - .. code-block:: shell - - sudo apt install linux-tools-common - - .. tab-item:: RHEL - :sync: rhel - - .. code-block:: shell - - sudo yum install cpupowerutils - - .. tab-item:: SLES - :sync: sles - - .. code-block:: shell - - sudo zypper install cpupower - -Now, to disable power-gating on all cores run the following on Linux -systems, run the following command. - -.. code-block:: shell - - cpupower idle-set -d 2 - -`/proc` and `/sys` file system settings -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. _mi300x-disable-numa: - -Disable NUMA auto-balancing -''''''''''''''''''''''''''' - -The NUMA balancing feature allows the OS to scan memory and attempt to migrate -to a DIMM that is logically closer to the cores accessing it. This causes an -overhead because the OS is second-guessing your NUMA allocations but may be -useful if the NUMA locality access is very poor. Applications can therefore, in -general, benefit from disabling NUMA balancing; however, there are workloads where -doing so is detrimental to performance. Test this setting -by toggling the ``numa_balancing`` value and running the application; compare -the performance of one run with this set to ``0`` and another run with this to -``1``. - -Run the command ``cat /proc/sys/kernel/numa_balancing`` to check the current -NUMA (Non-Uniform Memory Access) settings. Output ``0`` indicates this -setting is disabled. If no output or output is ``1``, run the command -``sudo sh -c \\'echo 0 > /proc/sys/kernel/numa_balancing`` to disable it. - -For these settings, the ``env_check.sh`` script automates setting, resetting, -and checking your environments. Find the script at -``__. - -Run the script as follows to set or reset the settings: - -``./env_check.sh [set/reset/check]`` - -.. tip:: - - Use ``./env_check.sh -h`` for help info. - -Automate disabling NUMA auto-balance using Cron -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The :ref:`mi300x-disable-numa` section describes the command to disable NUMA -auto-balance. To automate the command with Cron, edit the ``crontab`` -configuration file for the root user: - -.. code-block:: shell - - sudo crontab -e - -#. Add the following Cron entry to run the script at a specific interval: - - .. code-block:: shell - - @reboot sh -c 'echo 0 > /proc/sys/kernel/numa_balancing' - -#. Save the file and exit the text editor. - -#. Optionally, restart the system to apply changes by issuing ``sudo reboot``. - -#. Verify your new configuration. - - .. code-block:: - - cat /proc/sys/kernel/numa_balancing - - The ``/proc/sys/kernel/numa_balancing`` file controls NUMA balancing in the - Linux kernel. If the value in this file is set to ``0``, the NUMA balancing - is disabled. If the value is set to ``1``, NUMA balancing is enabled. - -.. note:: - - Disabling NUMA balancing should be done cautiously and for - specific reasons, such as performance optimization or addressing - particular issues. Always test the impact of disabling NUMA balancing in - a controlled environment before applying changes to a production system. - -.. _mi300x-env-vars: - -Environment variables -^^^^^^^^^^^^^^^^^^^^^ - -HIP provides an environment variable export ``HIP_FORCE_DEV_KERNARG=1`` that -can put arguments of HIP kernels directly to device memory to reduce the -latency of accessing those kernel arguments. It can improve performance by 2 to -3 µs for some kernels. - -It is recommended to set the following environment variable: - -.. code-block:: shell - - export HIP_FORCE_DEV_KERNARG=1 - -.. note:: - - This is the default option as of ROCm 6.2. - -Change affinity of ROCm helper threads -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This change prevents internal ROCm threads from having their CPU core affinity mask -set to all CPU cores available. With this setting, the threads inherit their parent's -CPU core affinity mask. If you have any questions regarding this setting, -contact your MI300X platform vendor. To enable this setting, enter the following command: - -.. code-block:: shell - - export HSA_OVERRIDE_CPU_AFFINITY_DEBUG=0 - -IOMMU configuration -- systems with 256 CPU threads -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For systems that have 256 logical CPU cores or more, setting the input-output -memory management unit (IOMMU) configuration to ``disabled`` can limit the -number of available logical cores to 255. The reason is that the Linux kernel -disables X2APIC in this case and falls back to Advanced Programmable Interrupt -Controller (APIC), which can only enumerate a maximum of 255 (logical) cores. - -If SMT is enabled by setting ``CCD/Core/Thread Enablement > SMT Control`` to -``enable``, you can apply the following steps to the system to enable all -(logical) cores of the system: - -#. In the server BIOS, set IOMMU to ``Enabled``. - -#. When configuring the GRUB boot loader, add the following argument for the Linux kernel: ``iommu=pt``. - -#. Update GRUB. - -#. Reboot the system. - -#. Verify IOMMU passthrough mode by inspecting the kernel log via ``dmesg``: - - .. code-block:: - - dmesg | grep iommu - -.. code-block:: shell - - [...] - [ 0.000000] Kernel command line: [...] iommu=pt - [...] - -Once the system is properly configured, ROCm software can be -:doc:`installed `. - -.. _mi300x-system-management: - -System management -================= - -To optimize system performance, it's essential to first understand the existing -system configuration parameters and settings. ROCm offers several CLI tools that -can provide system-level information, offering valuable insights for -optimizing user applications. - -For a complete guide on how to install, manage, or uninstall ROCm on Linux, refer to -:doc:`rocm-install-on-linux:install/quick-start`. For verifying that the -installation was successful, refer to the -:doc:`rocm-install-on-linux:install/post-install`. -Should verification fail, consult :doc:`System debugging guide `. - -.. _mi300x-hardware-verification-with-rocm: - -Hardware verification with ROCm -------------------------------- - -The ROCm platform provides tools to query the system structure. These include -:ref:`ROCm SMI ` and :ref:`ROCm Bandwidth Test `. - -.. _mi300x-rocm-smi: - -ROCm SMI -^^^^^^^^ - -To query your GPU hardware, use the ``rocm-smi`` command. ROCm SMI lists -GPUs available to your system -- with their device ID and their respective -firmware (or VBIOS) versions. - -The following screenshot shows that all 8 GPUs of MI300X are recognized by ROCm. -Performance of an application could be otherwise suboptimal if, for example, out -of the 8 GPUs only 5 of them are recognized. - -.. image:: ../data/how-to/tuning-guides/rocm-smi-showhw.png - :align: center - :alt: ``rocm-smi --showhw`` output - -To see the system structure, the localization of the GPUs in the system, and the -fabric connections between the system components, use the command -``rocm-smi --showtopo``. - -.. image:: ../data/how-to/tuning-guides/rocm-smi-showtopo.png - :align: center - :alt: ``rocm-smi --showtopo`` output - -The first block of the output shows the distance between the GPUs similar to -what the ``numactl`` command outputs for the NUMA domains of a system. The -weight is a qualitative measure for the “distance” data must travel to reach one -GPU from another one. While the values do not carry a special, or "physical" -meaning, the higher the value the more hops are needed to reach the destination -from the source GPU. This information has performance implication for a -GPU-based application that moves data among GPUs. You can choose a minimum -distance among GPUs to be used to make the application more performant. - -The second block has a matrix named *Hops between two GPUs*, where: - -* ``1`` means the two GPUs are directly connected with xGMI, - -* ``2`` means both GPUs are linked to the same CPU socket and GPU communications - will go through the CPU, and - -* ``3`` means both GPUs are linked to different CPU sockets so communications will - go through both CPU sockets. This number is one for all GPUs in this case - since they are all connected to each other through the Infinity Fabric links. - -The third block outputs the link types between the GPUs. This can either be -``XGMI`` for AMD Infinity Fabric links or ``PCIE`` for PCIe Gen5 links. - -The fourth block reveals the localization of a GPU with respect to the NUMA -organization of the shared memory of the AMD EPYC processors. - -To query the compute capabilities of the GPU devices, use rocminfo command. It -lists specific details about the GPU devices, including but not limited to the -number of compute units, width of the SIMD pipelines, memory information, and -instruction set architecture (ISA). The following is the truncated output of the -command: - -.. image:: ../data/how-to/tuning-guides/rocminfo.png - :align: center - :alt: rocminfo.txt example - -For a complete list of architecture (such as CDNA3) and LLVM target names -(such gfx942 for MI300X), refer to the -:doc:`Supported GPUs section of the System requirements for Linux page `. - - -Deterministic clock -''''''''''''''''''' - -Use the command ``rocm-smi --setperfdeterminism 1900`` to set the max clock -speed up to 1900 MHz instead of the default 2100 MHz. This can reduce -the chance of a PCC event lowering the attainable GPU clocks. This -setting will not be required for new IFWI releases with the production -PRC feature. Restore this setting to its default value with the -``rocm-smi -r`` command. - -.. _mi300x-bandwidth-test: - -ROCm Bandwidth Test -^^^^^^^^^^^^^^^^^^^ - -The section Hardware verification with ROCm showed how the command -``rocm-smi --showtopo`` can be used to view the system structure and how the -GPUs are connected. For more details on the link bandwidth, -``rocm-bandwidth-test`` can run benchmarks to show the effective link bandwidth -between the components of the system. - -You can install ROCm Bandwidth Test, which can test inter-device bandwidth, -using the following package manager commands: - -.. tab-set:: - - .. tab-item:: Ubuntu - :sync: ubuntu - - .. code-block:: shell - - sudo apt install rocm-bandwidth-test - - .. tab-item:: RHEL - :sync: rhel - - .. code-block:: shell - - sudo yum install rocm-bandwidth-test - - .. tab-item:: SLES - :sync: sles - - .. code-block:: shell - - sudo zypper install rocm-bandwidth-test - -Alternatively, you can download the source code from -``__ and build from source. - -The output will list the available compute devices (CPUs and GPUs), including -their device ID and PCIe ID. The following screenshot is an example of the -beginning part of the output of running ``rocm-bandwidth-test``. It shows the -devices present in the system. - -.. image:: ../data/how-to/tuning-guides/rocm-bandwidth-test.png - :align: center - :alt: rocm-bandwidth-test sample output - -The output will also show a matrix that contains a ``1`` if a device can -communicate to another device (CPU and GPU) of the system and it will show the -NUMA distance -- similar to ``rocm-smi``. - -Inter-device distance: - -.. figure:: ../data/how-to/tuning-guides/rbt-inter-device-access.png - :align: center - :alt: rocm-bandwidth-test inter-device distance - - Inter-device distance - -Inter-device NUMA distance: - -.. figure:: ../data/how-to/tuning-guides/rbt-inter-device-numa-distance.png - :align: center - :alt: rocm-bandwidth-test inter-device NUMA distance - - Inter-device NUMA distance - -The output also contains the measured bandwidth for unidirectional and -bidirectional transfers between the devices (CPU and GPU): - -Unidirectional bandwidth: - -.. figure:: ../data/how-to/tuning-guides/rbt-unidirectional-bandwidth.png - :align: center - :alt: rocm-bandwidth-test unidirectional bandwidth - - Unidirectional bandwidth - -Bidirectional bandwidth - -.. figure:: ../data/how-to/tuning-guides/rbt-bidirectional-bandwidth.png - :align: center - :alt: rocm-bandwidth-test bidirectional bandwidth - - Bidirectional bandwidth - - -.. _mi300x-change-gpu-partition-modes: - -Change GPU partition modes -========================== - -.. - -The term compute partitioning modes, or Modular Chiplet Platform (MCP), refers to the -logical partitioning of XCDs into devices in the ROCm stack. The names are -derived from the number of logical partitions that are created out of the eight -XCDs. In the default mode, SPX (Single Partition X-celerator), all eight XCDs are -viewed as a single logical compute element, meaning that the :doc:`amd-smi ` -utility will show a single MI300X device. In CPX (Core Partitioned X-celerator) -mode, each XCD appears as a separate logical GPU, for example, as eight separate -GPUs in :doc:`amd-smi ` per MI300X. CPX mode can be viewed as -having explicit scheduling privileges for each individual compute element (XCD). - -.. - -While compute partitioning modes change the space on which you can assign work -to compute units, the memory partitioning modes (known as Non-Uniform Memory -Access (NUMA) Per Socket (NPS)) change the number of NUMA domains that a device -exposes. In other words, it changes the number of HBM stacks which are -accessible to a compute unit, and therefore the size of its memory space. However, -for the MI300X, the number of memory partitions must be less than or equal to -the number of compute partitions. NPS4 (viewing pairs of HBM stacks as a -disparate element), for example, is only enabled when in CPX mode (viewing each -XCD as a disparate element). - -- Compute partition modes - - - In SPX mode, workgroups launched to the device are distributed - round-robin to the XCDs in the device, meaning that the programmer cannot - have explicit control over which XCD a workgroup is assigned to. - - - In CPX mode, workgroups are launched to a single XCD, meaning the - programmer has explicit control over work placement onto the XCDs. - -- Memory partition modes - - - In NPS1 mode (compatible with CPX and SPX), the entire memory is accessible - to all XCDs. - - - In NPS4 mode (compatible with CPX), each memory quadrant of the memory is - directly visible to the logical devices in its quadrant. An XCD can still - access all portions of memory through multi-GPU programming techniques. - -In CPX compute partition mode combined with NPS4 memory partition mode, the -MI300X GPU delivers improved performance for small language models (13B -parameters or less) that fit within the memory capacity of a single CPX -GPU. Additionally, :doc:`RCCL ` benefits significantly from the CPX -and NPS4 partition modes. - -The partition mode can be changed to CPX and NPS4 without rebooting with the -following commands: - -.. code-block:: shell - - amd-smi set --gpu all --compute-partition CPX - amd-smi set --gpu all --memory-partition NPS4 - -When RCCL is used with CPX mode, the RCCL and PyTorch performance is better when -the ``HIP_FORCE_DEV_KERNARG``, ``RCCL_MSCCLPP_THRESHOLD``, and -``TORCH_NCCL_USE_TENSOR_REGISTER_ALLOCATOR_HOOK`` environment variables are set. -Here is an example command for the allreduce PyTorch benchmark: - -.. code-block:: shell - - export TORCH_NCCL_USE_TENSOR_REGISTER_ALLOCATOR_HOOK=1 - export HIP_FORCE_DEV_KERNARG=1 - export RCCL_MSCCLPP_THRESHOLD=$((2*1024*1024*1024)) - export MSCCLPP_READ_ALLRED=1 - export ROCR_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 - python -u -m torch.distributed.run --nproc_per_node=8 --rdzv_endpoint localhost:6000 --rdzv_backend c10d all_reduce_bench.py - -For further information, see the :ref:`RCCL usage tips `. - -Abbreviations -============= - -AMI - American Megatrends International - -APBDIS - Algorithmic Performance Boost Disable - -ATS - Address Translation Services - -BAR - Base Address Register - -BIOS - Basic Input/Output System - -CBS - Common BIOS Settings - -CLI - Command Line Interface - -CPU - Central Processing Unit - -cTDP - Configurable Thermal Design Power - -DDR5 - Double Data Rate 5 DRAM - -DF - Data Fabric - -DIMM - Dual In-line Memory Module - -DMA - Direct Memory Access - -DPM - Dynamic Power Management - -GPU - Graphics Processing Unit - -GRUB - Grand Unified Bootloader - -HPC - High Performance Computing - -IOMMU - Input-Output Memory Management Unit - -ISA - Instruction Set Architecture - -LCLK - Link Clock Frequency - -NBIO - North Bridge Input/Output - -NUMA - Non-Uniform Memory Access - -PCC - Power Consumption Control - -PCI - Peripheral Component Interconnect - -PCIe - PCI Express - -POR - Power-On Reset - -SIMD - Single Instruction, Multiple Data - -SMT - Simultaneous Multi-threading - -SMI - System Management Interface - -SOC - System On Chip - -SR-IOV - Single Root I/O Virtualization - -TP - Tensor Parallelism - -TSME - Transparent Secure Memory Encryption - -X2APIC - Extended Advanced Programmable Interrupt Controller - -xGMI - Inter-chip Global Memory Interconnect