diff --git a/RELEASE.md b/RELEASE.md index 06d22a836..4d53f9c65 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -10,7 +10,7 @@ -# ROCm 7.0.2 release notes +# ROCm 7.1.0 release notes The release notes provide a summary of notable changes since the previous ROCm release. @@ -35,24 +35,20 @@ documentation to verify compatibility and system requirements. ## Release highlights -The following are notable new features and improvements in ROCm 7.0.2. For changes to individual components, see +The following are notable new features and improvements in ROCm 7.1.0. For changes to individual components, see [Detailed component changes](#detailed-component-changes). ### Supported hardware, operating system, and virtualization changes -ROCm 7.0.2 adds support for the RDNA4 architecture-based [AMD Radeon RX 9060](https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9060.html). For more information about supported AMD hardware, see [Supported GPUs (Linux)](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/reference/system-requirements.html#supported-gpus). +Hardware support remains unchanged in this release. For more information about supported AMD hardware, see [Supported GPUs (Linux)](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/reference/system-requirements.html#supported-gpus). -ROCm 7.0.2 adds support for the following operating systems and kernel versions: - -* Debian 13 (kernel: 6.12) -* Oracle Linux 10 (kernel: 6.12.0 [UEK]) -* RHEL 10.0 (kernel: 6.12.0-55) - -For more information about supported operating systems, see [Supported operating systems](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/reference/system-requirements.html#supported-operating-systems) and [install instructions](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/). +Debain 13 support has been extended for AMD Instinct MI355X and MI350X GPUs. For more information about supported operating systems, see [Supported operating systems](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/reference/system-requirements.html#supported-operating-systems) and [ROCm installation for Linux](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/). #### Virtualization support -Virtualization support remains unchanged in this release. For more information, see [Virtualization Support](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/reference/system-requirements.html#virtualization-support). +ROCm 7.1.0 adds Guest OS support for RHEL 10.0 in KVM SR-IOV for AMD Instinct MI355X and MI350X GPUs. + +For more information, see [Virtualization Support](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/reference/system-requirements.html#virtualization-support). ### User space, driver, and firmware dependent changes @@ -88,34 +84,37 @@ firmware, AMD GPU drivers, and the ROCm user space software. } - ROCm 7.0.2 + ROCm 7.1.0 MI355X - 01.25.15.02 (or later)
+ 01.25.15.04
01.25.13.09 - 30.10.2
+ 30.20.0
+ 30.10.2
30.10.1
30.10 - 8.4.1.K + 8.5.0.K MI350X - 01.25.15.02 (or later)
+ 01.25.15.04
01.25.13.09 - 30.10.2
+ 30.20.0
+ 30.10.2
30.10.1
30.10 MI325X - 01.25.04.02 (or later)
- 01.25.03.03 + 01.25.05.01
+ 01.25.04.02 + 30.20.0
30.10.2
30.10.1
30.10
@@ -125,9 +124,10 @@ firmware, AMD GPU drivers, and the ROCm user space software. MI300X - 01.25.05.00 (or later)[1]
+ 01.25.05.04 (or later)[1]
01.25.03.12 + 30.20.0
30.10.2
30.10.1
30.10
@@ -135,26 +135,26 @@ firmware, AMD GPU drivers, and the ROCm user space software. 6.3.y where y (0–3)
6.2.x where x (1–4) - 8.4.1.K + 8.5.0.K MI300A - BKC 26 (or later)
+ BKC 26
BKC 25 Not Applicable MI250X - IFWI 47 (or later) + IFWI 47 MI250 - MU5 w/ IFWI 75 (or later) + MU3 w/ IFWI 73 MI210 - MU5 w/ IFWI 75 (or later) - 8.4.0.K + MU3 w/ IFWI 73 + 8.5.0.K MI100 @@ -164,33 +164,104 @@ firmware, AMD GPU drivers, and the ROCm user space software. -

[1]: PLDM bundle 01.25.05.00 will be available by October 31, 2025.

+

[1]: PLDM bundle 01.25.05.04 will be available by November 2025.

-#### AMD Instinct MI300X GPU resiliency improvement +### HIP runtime compatibility improvements -Multimedia Engine Reset is now supported in AMD GPU Driver (amdgpu) 30.10.2 for AMD Instinct MI300X GPUs. This finer-grain GPU resiliency feature allows 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.05.00 (or later) firmware. +In ROCm 7.1.0, new functionalities were added in HIP runtime including the following, in correspondence with CUDA. -#### New OS support in ROCm dependent on AMD GPU Driver +* New HIP APIs added for: -ROCm support for RHEL 10.0 and Oracle 10 requires AMD GPU Driver 30.10.2 or later. + * Memory management: `hipMemsetD2D8`, `hipMemsetD2D8Async`, `hipMemsetD2D16`, `hipMemsetD2D16Async`, `hipMemsetD2D32`, `hipMemsetD2D32Async`, `hipMemcpyBatchAsync`, `hipMemcpy3DBatchAsync`, `hipMemcpy3DPeer`, `hipMemcpy3DPeerAsync`, `hipMemPrefetchAsync_v2`, and `hipMemAdvise_v2`. + * Module Management:`hipModuleGetFunctionCoun` and `hipModuleLoadFatBinary` + * Stream Management: `hipStreamSetAttribute`, `hipStreamGetAttribute`, and `hipStreamGetId` + * Device Management: `hipSetValidDevices` + * Driver Entry Point Access: `hipGetDriverEntryPoint` +* New HIP flag `hipMemLocationTypeHost` enables handling virtual memory management in host memory location, in addition to device memory. +* `hipHostRegisterIoMemory` is supported in `hipHostRegister`. Previously, it was used to register I/O memory with HIP runtime so it can be accessed by the GPU. +* HIP runtime now supports nested tile partitioning within cooperative groups, matching CUDA functionality. -### RAG AI support enabled for ROCm +For detailed enhancements and updates refer to the [HIP Changelog](#hip-7-1-0). -In September 2025, Retrieval-Augmented Generation (RAG) was added to the ROCm platform. Use RAG to build and deploy end-to-end AI pipelines on AMD GPUs. It enhances the accuracy and reliability of a large language model (LLM) by exposing it to up-to-date, relevant information. When queried, RAG retrieves relevant data from its knowledge base and uses it in conjunction with the query to generate accurate and informed responses. This approach minimizes hallucinations (the creation of false information) while also enabling the model to access current information not present in its original training data. For more information, see the [ROCm-RAG documentation](https://rocm.docs.amd.com/projects/rocm-rag/en/latest/index.html). +### hipSPARSELt: SpMM performance improvements -### gsplat support enabled for ROCm +hipSPARSELt introduces significant performance enhancements for structured sparsity matrix multiplication (SpMM) on AMD Instinct MI300X GPUs: -[Gaussian splatting (gsplat)](https://rocm.docs.amd.com/projects/gsplat/en/latest/index.html) is an open-source library for GPU-accelerated differentiable rasterization of 3D Gaussians with Python bindings. This ROCm-enabled release of gsplat is built on top of [PyTorch for ROCm](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.4.3/install/3rd-party/pytorch-install.html), enabling innovators in computer graphics, machine learning, and 3D vision to leverage GPU acceleration with AMD Instinct GPUs. With gsplat, you can build, research, and innovate with Gaussian splatting. To install gsplat on ROCm, see [installation instructions](https://rocm.docs.amd.com/projects/gsplat/en/latest/install/gsplat-install.html). +* New feature support -- Enabled multiple buffer single kernel execution for SpMM, improving efficiency in Split-K method scenarios. +* Kernel optimization -- Added multiple high-performance kernels optimized for FP16 and BF16 data types, enhancing heuristic-based execution. +* Tuning efficiency -- Improved the tuning process for SpMM kernels, resulting in better runtime adaptability and performance. -### Introducing ROCm Life Science (ROCm-LS) toolkit +### RPP: New hue and saturation augmentations -The ROCm Life Science (ROCm-LS) toolkit is an open-source software collection for high-performance life science and healthcare applications built on the core ROCm platform. It helps you accelerate life science processing and analyze workloads on AMD GPUs. ROCm-LS is in an early access state. Running production workloads is not recommended. For more information, see the [AMD ROCm-LS documentation](https://rocm.docs.amd.com/projects/rocm-ls/en/latest/). +RPP adds support for hue and saturation augmentations in the ROCm +Performance Primitives (RPP) library. These enhancements are available for both +HIP and HOST backends and support multiple data types — ``U8``, ``F16``, +``F32``, and ``I8`` — with layout toggle variants for NCHW and NHWC. -ROCm-LS provides the following tools to build a complete workflow for life science acceleration on AMD GPUs: +### rocAL: Enhancements for vision transformer model training -* The hipCIM library provides powerful support for GPU-accelerated I/O operations, coupled with an array of computer vision and image processing primitives designed for N-dimensional image data in fields such as biomedical imaging. For more information, see the [hipCIM documentation](https://rocm.docs.amd.com/projects/hipCIM/en/latest/). +ROCm 7.1.0 introduces new capabilities in rocAL to support training of Vision Transformer (ViT) models: -* MONAI for AMD ROCm, a ROCm-enabled version of [MONAI](https://monai.io/), is built on top of [PyTorch for AMD ROCm](https://pytorch.org/blog/pytorch-for-amd-rocm-platform-now-available-as-python-package/), helping healthcare and life science innovators to leverage GPU acceleration with AMD Instinct GPUs for high-performance inference and training of medical AI applications. For more information, see the [MONAI for AMD ROCm documentation](https://rocm.docs.amd.com/projects/monai/en/latest/). +* Added support for CropResize augmentation and the CIFAR10 dataloader, commonly used in ViT training workflows. +* These updates enable seamless integration of rocAL into open-source PyTorch Vision Transformer models. + +This enhancement improves preprocessing efficiency and simplifies the setup of data pipelines for ViT-based deep learning applications. + +### hipBLASLt: Kernel optimizations and model support enhancements + +hipBLASlt introduces several performance and model compatibility improvements for AMD Instinct MI350 Series GPUs: + +* TF32 kernel optimization for MI355X to enhance training and inference efficiency. +* FP32 kernel optimization for MI350X, improving precision-based workloads. +* Meta Model Optimization for MI350X, enabling better performance across transformer-based models. +* Llama 2 70B model support fix: Removed incorrect kernel to ensure accurate and stable execution. +* For AMD Instinct MI350X GPUs specific, added multiple high-performance kernels optimized for FP16 and BF16 data types, enhancing heuristic-based execution. + +### TensileLite: Enhanced SpMM kernel tuning efficiency + +Optimized the tuning workflow for the SpMM kernel, resulting in improved performance and streamlined configuration. + +### RCCL: AMD Instinct MI350 Series enhancements + +* Optimized performance for select collective operations. +* Enhanced single-node performance on AMD Instinct MI350 GPUs. +* Achieved higher throughput with increased XGMI speed. +* Verified compatibility with NCCL 2.27.7. +* Improved efficiency for the All Gather collective. + +### ROCm Compute Profiler updates + +ROCm Compute Profiler has the following enhancements: + +* Single‑Pass Counter Collection feature has been added. It allows profiling kernels in a single pass using a predefined metric set, reducing profiling overhead and session time. +* Dynamic Attach/Detach feature has been added. It allows starting or stopping profiling on a running application without restarting, enabling flexible analysis for long‑running jobs. +* Enhanced TUI Experience feature has been added. It allows for interactive exploration of metrics with descriptions and view high‑level compute and memory throughput panels for quick insights. + +### ROCm Systems Profiler updates + +ROCm Systems Profiler has the following enhancements: + +* Validated support for virtualized Hyper-V environment, JAX AI framework, and PyTorch AI framework. +* Transitioned to using AMD SMI by default, instead of ROCm SMI. +* Integrated with ROCm Profiling Data (rocpd), enabling profiling results to be stored in a SQLite3 database. This provides a structured and efficient foundation for in-depth analysis and post-processing. + +### Device-side assertion support and atomic metadata control in Clang + +ROCm 7.1.0 introduces two key compiler enhancements: + +* Device-compatible assertions: A ``__device__`` version of + ``std::__glibcxx_assert_fail()`` has been added to enable the use of ``std::array`` and + other libstdc++ features in device code. This resolves previous compilation + failures caused by non-constexpr host assertions being invoked from device + contexts. + +* Clang atomic metadata attribute: The new ``[[clang::atomic]]`` statement + attribute allows fine-grained control over how atomic operations are lowered in + LLVM IR. Users can specify memory types (for example, ``remote_memory``, + ``fine_grained_memory``) and floating-point behavior (``ignore_denormal_mode``) to + optimize performance without compromising correctness. These attributes can + override global compiler flags on a per-block basis, improving atomic operation + efficiency on architectures like AMDGPU. ### Deep learning and AI framework updates @@ -198,55 +269,49 @@ ROCm provides a comprehensive ecosystem for deep learning development. For more matrix](../../docs/compatibility/compatibility-matrix.rst) for the complete list of Deep learning and AI framework versions tested for compatibility with ROCm. #### Updated framework support +ROCm 7.1.0 introduces several newly supported versions of Deep learning and AI frameworks: -ROCm 7.0.0 introduces several newly supported versions of Deep learning and AI frameworks: - -##### PyTorch - -ROCm 7.0.2 enables support for PyTorch 2.8. - -#### New frameworks - -AMD ROCm has officially added support for the following Deep learning and AI frameworks: - -* FlashInfer is a library and kernel generator for Large Language Models (LLMs) that provides a high-performance implementation of graphics processing units (GPUs) kernels. FlashInfer focuses on LLM serving and inference, as well as advanced performance across diverse scenarios. It is supported on ROCm 6.4.1. For more information, see [FlashInfer compatibility](https://rocm.docs.amd.com/en/latest/compatibility/ml-compatibility/flashinfer-compatibility.html). - -* llama.cpp is an open-source framework for Large Language Model (LLM) inference that runs on both central processing units (CPUs) and graphics processing units (GPUs). It is written in plain C/C++, providing a simple, dependency-free setup. It is now supported on ROCm 7.0.0 and 6.4.x. For more information, see [llama.cpp compatibility](https://rocm.docs.amd.com/en/docs-7.0.0/compatibility/ml-compatibility/llama-cpp-compatibility.html). +##### TensorFlow +ROCm 7.1.0 enables support for TensorFlow 2.20.0. ### ROCm Offline Installer Creator updates -The ROCm Offline Installer Creator 7.0.2 includes the following features and improvements: - -* Added support for RHEL 10.0, Oracle Linux 10, and Debian 13. -* Added support for creating an offline installer for Debian 12 when the kernel version of the target operating system differs from the operating system of the host creating the installer. -* Removed the restriction requiring the kernels for the host and target systems to match when creating a ROCm-only (no AMD GPU Driver) offline installer. - -See [ROCm Offline Installer Creator](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/install/rocm-offline-installer.html) for more information. +The ROCm Offline Installer Creator 7.1.0 includes the following features and improvements: + +* Added support for creating an offline installer for RHEL 8.10, 9.4, 9.6, and 10.0 where the kernel version of the target OS differs from the host OS creating the installer. +* Fixes an issue in the Debian 13 Docker that prevented users from creating a driver install package using the default Docker kernel driver. + +See [ROCm Offline Installer Creator](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/rocm-offline-installer.html) for more information. + ### ROCm Runfile Installer updates + +The ROCm Runfile Installer 7.1.0 fixes warnings that occurred with rocm-examples testing. + +For more information, see [ROCm Runfile Installer](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/rocm-runfile-installer.html). -The ROCm Runfile Installer 7.0.2 adds the following features and improvements: +### End of Support for ROCm Execution Provider (ROCm-EP) -* Added support for RHEL 10.0, Oracle Linux 10, and Debian 13. -* Minor fixes for the `untar` mode. -For more information, see [ROCm Runfile Installer](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.0.2/install/rocm-runfile-installer.html). +ROCm 7.1.0 marks the End of Support (EOS) for ROCm Execution Provider (ROCm-EP). ROCm 7.0.2 was the last official AMD-supported distribution of ROCm-EP. Refer to this [Pull Request](https://github.com/microsoft/onnxruntime/pull/25181) for more information. Migrate your applications to use the [MIGraphX Execution Provider](https://onnxruntime.ai/docs/execution-providers/MIGraphX-ExecutionProvider.html#migraphx-execution-provider). ### ROCm documentation updates ROCm documentation continues to be updated to provide clearer and more comprehensive guidance for a wider variety of user needs and use cases. -* [Tutorials for AI developers](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/) have been expanded with the following two new inference tutorials: - * [Accelerating DeepSeek-V3 inference using multi-token prediction in SGLang](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/notebooks/inference/mtp.html) - * [Multi-agents with Google ADK and A2A protocol](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/notebooks/inference/power-Google-ADK-on-AMD-platform-and-local-LLMs.html) +* [Tutorials for AI developers](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/) have been expanded with the following two new tutorials: + * Pretraining tutorial: [Speculative decoding draft model with SpecForge](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/notebooks/pretrain/SpecForge_SGlang.html) + * GPU development and optimization tutorial: [Quark MXFP4 quantization for vLLM](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/notebooks/gpu_dev_optimize/mxfp4_quantization_quark_vllm.html) - For more information about the changes, see the [Changelog for the AI Developer Hub](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/changelog.html). + For more information about the changes, see [Changelog for the AI Developer Hub](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/changelog.html). -* ROCm components support a wide range of environment variables that can be used for testing, logging, debugging, experimental features, and more. The [rocBLAS](https://rocm.docs.amd.com/projects/rocBLAS/en/docs-7.0.2/reference/env-variables.html) and [RCCL](https://rocm.docs.amd.com/projects/rccl/en/docs-7.0.2/api-reference/env-variables.html) components have been updated with new environment variable content. +* ROCm components support a wide range of environment variables that can be used for testing, logging, debugging, experimental features, and more. The [rocBLAS](https://rocm.docs.amd.com/projects/rocBLAS/en/docs-7.0.2/reference/env-variables.html) and [RCCL](https://rocm.docs.amd.com/projects/rccl/en/docs-7.0.2/api-reference/env-variables.html) components have been updated with new environment variable content. + +* The [HIP documentation](https://rocm.docs.amd.com/projects/HIP/en/latest/index.html) introduces a new tutorial that shows you how to transform your GPU applications from repeated direction to choreographed performance with HIP graphs. HIP graphs model dependencies between operations as nodes and edges on a diagram. Each node in the graph represents an operation, and each edge represents a dependency between two nodes. For more information, see [HIP graphs](https://rocm.docs.amd.com/projects/HIP/en/docs-develop/how-to/hip_runtime_api/hipgraph.html#how-to-hip-graph) and [HIP Graph API Tutorial](https://rocm.docs.amd.com/projects/HIP/en/docs-develop/tutorial/graph_api.html). ## ROCm components -The following table lists the versions of ROCm components for ROCm 7.0.2, including any version -changes from 7.0.1 to 7.0.2. Click the component's updated version to go to a list of its changes. +The following table lists the versions of ROCm components for ROCm 7.1.0, including any version +changes from 7.0.2 to 7.1.0. Click the component's updated version to go to a list of its changes. Click {fab}`github` to go to the component's source code on GitHub. @@ -270,47 +335,47 @@ Click {fab}`github` to go to the component's source code on GitHub. Libraries Machine learning and computer vision Composable Kernel - 1.1.0 + 1.1.0 ⇒ 1.1.0 MIGraphX - 2.13.0 + 2.13.0 ⇒ 2.14.0 MIOpen - 3.5.0 + 3.5.0 ⇒ 3.5.1 MIVisionX - 3.3.0 + 3.3.0 ⇒ 3.4.0 rocAL - 2.3.0 + 2.3.0 ⇒ 2.4.0 rocDecode - 1.0.0 + 1.0.0 ⇒ 1.4.0 rocJPEG - 1.1.0 + 1.1.0 ⇒ 1.2.0 rocPyDecode - 0.6.0 + 0.6.0 ⇒ 0.7.0 RPP - 2.0.0 + 2.0.0 ⇒ 2.1.0 @@ -319,7 +384,7 @@ Click {fab}`github` to go to the component's source code on GitHub. Communication RCCL - 2.26.6 ⇒ 2.26.6 + 2.26.6 ⇒ 2.27.7 @@ -333,72 +398,72 @@ Click {fab}`github` to go to the component's source code on GitHub. Math hipBLAS - 3.0.0 ⇒ 3.0.2 + 3.0.2 ⇒ 3.1.0 hipBLASLt - 1.0.0 + 1.0.0 ⇒ 1.1.0 hipFFT - 1.0.20 + 1.0.20 ⇒ 1.0.21 hipfort - 0.7.0 + 0.7.0 ⇒ 0.7.1 hipRAND - 3.0.0 + 3.0.0 ⇒ 3.1.0 hipSOLVER - 3.0.0 + 3.0.0 ⇒ 3.1.0 hipSPARSE - 4.0.1 + 4.0.1 ⇒ 4.1.0 hipSPARSELt - 0.2.4 + 0.2.4 ⇒ 0.2.5 rocALUTION - 4.0.0 + 4.0.0 ⇒ 4.0.1 rocBLAS - 5.0.0 ⇒ 5.0.2 + 5.0.2 ⇒ 5.1.0 rocFFT - 1.0.34 + 1.0.34 ⇒ 1.0.35 rocRAND - 4.0.0 + 4.0.0 ⇒ 4.1.0 rocSOLVER - 3.30.0 ⇒ 3.30.1 + 3.30.1 ⇒ 3.31.0 rocSPARSE - 4.0.2 ⇒ 4.0.3 + 4.0.3 ⇒ 4.1.0 @@ -417,7 +482,7 @@ Click {fab}`github` to go to the component's source code on GitHub. Primitives hipCUB - 4.0.0 + 4.0.0 ⇒ 4.1.0 @@ -427,12 +492,12 @@ Click {fab}`github` to go to the component's source code on GitHub. rocPRIM - 4.0.0 ⇒ 4.0.1 + 4.0.1 ⇒ 4.1.0 rocThrust - 4.0.0 + 4.0.0 ⇒ 4.1.0 @@ -441,12 +506,12 @@ Click {fab}`github` to go to the component's source code on GitHub. Tools System management AMD SMI - 26.0.0 ⇒ 26.0.2 + 26.0.2 ⇒ 26.1.0 ROCm Data Center Tool - 1.1.0 + 1.1.0 ⇒ 1.2.0 @@ -477,19 +542,19 @@ Click {fab}`github` to go to the component's source code on GitHub. ROCm Compute Profiler - 3.2.3 + 3.2.3 ⇒ 3.3.0 ROCm Systems Profiler - 1.1.0 ⇒ 1.1.1 + 1.1.1 ⇒ 1.2.0 ROCProfiler - 2.0.0 + 2.0.0 ⇒ 2.0.0 @@ -517,7 +582,7 @@ Click {fab}`github` to go to the component's source code on GitHub. ROCdbgapi - 0.77.3 ⇒ 0.77.4 + 0.77.4 @@ -561,7 +626,7 @@ Click {fab}`github` to go to the component's source code on GitHub. Runtimes HIP - 7.0.0 ⇒ 7.0.2 + 7.0.2 ⇒ 7.1.0 @@ -581,147 +646,701 @@ The following sections describe key changes to ROCm components. For a historical overview of ROCm component updates, see the {doc}`ROCm consolidated changelog `. ``` -### **AMD SMI** (26.0.1) +### **AMD SMI** (26.1.0) #### Added -* Added `bad_page_threshold_exceeded` field to `amd-smi static --ras`, which compares retired pages count against bad page threshold. This field displays `True` if retired pages exceed the threshold, `False` if within threshold, or `N/A` if threshold data is unavailable. Note that `sudo` is required to have the `bad_page_threshold_exceeded` field populated. +* `GPU LINK PORT STATUS` table to `amd-smi xgmi` command. The `amd-smi xgmi -s` or `amd-smi xgmi --source-status` will now show the `GPU LINK PORT STATUS` table. -#### Removed +* `amdsmi_get_gpu_revision()` to Python API. This function retrieves the GPU revision ID. Available in `amdsmi_interface.py` as `amdsmi_get_gpu_revision()`. -* Removed gpuboard and baseboard temperatures enums in amdsmi Python Library. - * `AmdSmiTemperatureType` had issues with referencing the correct attribute. As such, the following duplicate enums have been removed: - - `AmdSmiTemperatureType.GPUBOARD_NODE_FIRST` - - `AmdSmiTemperatureType.GPUBOARD_VR_FIRST` - - `AmdSmiTemperatureType.BASEBOARD_FIRST` +* Gpuboard and baseboard temperatures to `amd-smi metric` command. + +#### Changed + +* Struct `amdsmi_topology_nearest_t` member `processor_list`. Member size changed, processor_list[AMDSMI_MAX_DEVICES * AMDSMI_MAX_NUM_XCP]. + +* `amd-smi reset --profile` behavior so that it won't also reset the performance level. + * The performance level can still be reset using `amd-smi reset --perf-determinism`. + +* Setting power cap is now available in Linux Guest. You can now use `amd-smi set --power-cap` as usual in Linux Guest systems too. + +* Changed `amd-smi static --vbios` to `amd-smi static --ifwi`. + * VBIOS naming is replaced with IFWI (Integrated Firmware Image) for improved clarity and consistency. + * AMD Instinct MI300 Series GPUs (and later) now use a new version format with enhanced build information. + * Legacy command `amd-smi static --vbios` remains functional for backward compatibility, but displays updated IFWI heading. + * The Python, C, and Rust API for `amdsmi_get_gpu_vbios_version()` will now have a new field called `boot_firmware`, which will return the legacy vbios version number that is also known as the Unified BootLoader (UBL) version. + +#### Optimized + +* Optimized the way `amd-smi process` validates, which processes are running on a GPU. #### Resolved Issues -* Fixed `attribute error` in `amd-smi monitor` on Linux Guest systems, where the violations argument caused CLI to break. -* Fixed certain output in `amd-smi monitor` when GPUs are partitioned. - * It fixes the amd-smi monitor such as: `amd-smi monitor -Vqt`, `amd-smi monitor -g 0 -Vqt -w 1`, `amd-smi monitor -Vqt --file /tmp/test1`, etc. These commands will now be able to display as normal in partitioned GPU scenarios. +* Fixed a CPER record count mismatch issue when using the `amd-smi ras --cper --file-limit`. Updated the deletion calculation to use `files_to_delete = len(folder_files) - file_limit` for exact file count management. -* Fixed an issue where using `amd-smi ras --folder ` was forcing the created folder's name to be lowercase. This fix also allows all string input options to be case insensitive. +* Fixed the event monitoring segfaults causing RDC to crash. Added the mutex locking around access to device event notification file pointer. -* Fixed an issue of some processes not being detected by AMD SMI despite making use of KFD resources. This fix, with the addition of KFD Fallback for process detection, ensures that all KFD processes will be detected. +* Fixed an issue where using `amd-smi ras --folder ` was forcing the created folder's name to be lowercase. This fix also makes all string input options case-insensitive. -* Multiple CPER issues were fixed. - - Issue of being unable to query for additional CPERs after 20 were generated on a single device. - - Issue where the RAS HBM CRC read was failing due to an incorrect AFID value. - - Issue where RAS injections were not consistently producing related CPERs. +* Fixed certain output in `amd-smi monitor` when GPUs are partitioned. It fixes the issue with amd-smi monitor such as: `amd-smi monitor -Vqt`, `amd-smi monitor -g 0 -Vqt -w 1`, and `amd-smi monitor -Vqt --file /tmp/test1`. These commands will now be able to display as normal in partitioned GPU scenarios. -### **HIP** (7.0.2) +```{note} +See the full [AMD SMI changelog](https://github.com/ROCm/amdsmi/blob/release/rocm-rel-7.1/CHANGELOG.md) for details, examples, and in-depth descriptions. +``` + +### **Composable Kernel** (1.1.0) + +#### Added + +* Support for hdim as a multiple of 32 for FMHA (fwd/fwd_splitkv/bwd). +* Support for elementwise kernel. + +#### Upcoming changes + +* Non-grouped convolutions are deprecated. Their functionality is supported by grouped convolution. + +### **HIP** (7.1.0) #### Added -* Support for the `hipMemAllocationTypeUncached` flag, enabling developers to allocate uncached memory. This flag is now supported in the following APIs: - - `hipMemGetAllocationGranularity` determines the recommended allocation granularity for uncached memory. - - `hipMemCreate` allocates memory with uncached properties. +* New HIP APIs + - `hipModuleGetFunctionCount` returns the number of functions within a module + - `hipMemsetD2D8` used for setting 2D memory range with specified 8-bit values + - `hipMemsetD2D8Async` used for setting 2D memory range with specified 8-bit values asynchronously + - `hipMemsetD2D16` used for setting 2D memory range with specified 16-bit values + - `hipMemsetD2D16Async` used for setting 2D memory range with specified 16-bit values asynchronously + - `hipMemsetD2D32` used for setting 2D memory range with specified 32-bit values + - `hipMemsetD2D32Async` used for setting 2D memory range with specified 32-bit values asynchronously + - `hipStreamSetAttribute` sets attributes such as synchronization policy for a given stream + - `hipStreamGetAttribute` returns attributes such as priority for a given stream + - `hipModuleLoadFatBinary` loads fatbin binary to a module + - `hipMemcpyBatchAsync` performs a batch of 1D or 2D memory copied asynchronously + - `hipMemcpy3DBatchAsync` performs a batch of 3D memory copied asynchronously + - `hipMemcpy3DPeer` copies memory between devices + - `hipMemcpy3DPeerAsync`copied memory between devices asynchronously + - `hipMemsetD2D32Async` used for setting 2D memory range with specified 32-bit values + asynchronously + - `hipMemPrefetchAsync_v2` prefetches memory to the specified location + - `hipMemAdvise_v2` advise about the usage of a given memory range + - `hipGetDriverEntryPoint ` gets function pointer of a HIP API. + - `hipSetValidDevices` sets a default list of devices that can be used by HIP + - `hipStreamGetId` queries the ID of a stream +* New HIP flags + - `hipMemLocationTypeHost` enables handling virtual memory management in host memory location, in addition to device memory. + - `hipHostRegisterIoMemory` is supported in `hipHostRegister`. It's used to register I/O memory with HIP runtime so the GPU can access it. +* Support for nested tile partitioning within cooperative groups, matching NVIDIA CUDA functionality. #### Resolved issues -* A compilation failure affecting applications that compile kernels using `hiprtc` with the compiler option `std=c++11`. -* A permission-related error occurred during the execution of `hipLaunchHostFunc`. This API is now supported and permitted to run during stream capture, aligning its behavior with CUDA. -* A numerical error during graph capture of kernels that rely on a remainder in `globalWorkSize`, in frameworks like MIOpen and PyTorch, where the grid size is not a multiple of the block size. To ensure correct replay behavior, HIP runtime now stores this remainder in `hip::GraphKernelNode` during `hipExtModuleLaunchKernel` capture, enabling accurate execution and preventing corruption. -* A page fault occurred during viewport rendering while running the file undo.blend in Blender. The issue was resolved by the HIP runtime, which reused the same context during image creation. -* Resolved a segmentation fault in `gpu_metrics`, which is used in threshold logic for command submission patches to GPU device(s) during CPU synchronization. +* A segmentation fault occurred in the application when capturing the same HIP graph from multiple streams with cross-stream dependencies. HIP runtime fixed an issue where a forked stream joined to a parent stream that was not originally created with the API `hipStreamBeginCapture`. +* Different behavior of en-queuing command on a legacy stream during stream capture on AMD ROCM platform, compared with NVIDIA CUDA. HIP runtime now returns an error in this specific situation to match CUDA behavior. +* Failure of memory access fault occurred in rocm-examples test suite. When Heterogeneous Memory Management (HMM) is not supported in the driver, `hipMallocManaged` will only allocate system memory in HIP runtime. -### **hipBLAS** (3.0.2) - -#### Added - -* Enabled support for gfx1150, gfx1151, gfx1200, and gfx1201 AMD hardware. +#### Optimized -### **RCCL** (2.26.6) +* Improved hip module loading latency. +* Optimized kernel metadata retrieval during module post load. +* Optimized doorbell ring in HIP runtime, advantages the following for performance improvement, + - Makes efficient packet batching for HIP graph launch + - Dynamic packet copying based on a defined maximum threshold or power-of-2 staggered copy pattern + - If timestamps are not collected for a signal for reuse, it creates a new signal. This can potentially increase the signal footprint if the handler doesn't run fast enough + +### **hipBLAS** (3.1.0) #### Added -* Enabled double-buffering in `reduceCopyPacks` to trigger pipelining, especially to overlap bf16 arithmetic. -* Added `--force-reduce-pipeline` as an option that can be passed to the `install.sh` script. Passing this option will enable software-triggered pipelining `bfloat16` reductions (that is, `all_reduce`, `reduce_scatter`, and `reduce`). +* `--clients-only` build option to only build clients against a prebuilt library. +* gfx1103, gfx1150, gfx1151, gfx1200, and gfx1201 support to clients. +* FORTRAN enabled for the Microsoft Windows build and tests. +* Additional reference library fallback options added. -### **rocBLAS** (5.0.2) - -#### Added - -* Enabled gfx1150 and gfx1151. -* The `ROCBLAS_USE_HIPBLASLT_BATCHED` variable to independently control the batched hipblaslt backend. Set `ROCBLAS_USE_HIPBLASLT_BATCHED=0` to disable batched GEMM use of the hipblaslt backend. +#### Changed -#### Resolved issues - -* Set the imaginary portion of the main diagonal of the output matrix to zero in syrk and herk. +* Improve the build time for clients by removing `clients_common.cpp` from the hipblas-test build. -### **ROCdbgapi** (0.77.4) +### **hipBLASLt** (1.1.0) #### Added -* ROCdbgapi documentation link in the README.md file. +* Fused Clamp GEMM for ``HIPBLASLT_EPILOGUE_CLAMP_EXT`` and ``HIPBLASLT_EPILOGUE_CLAMP_BIAS_EXT``. This feature requires the minimum (``HIPBLASLT_MATMUL_DESC_EPILOGUE_ACT_ARG0_EXT``) and maximum (``HIPBLASLT_MATMUL_DESC_EPILOGUE_ACT_ARG1_EXT``) to be set. +* Support for ReLU/Clamp activation functions with auxiliary output for the `f16` and `bf16` data types for gfx942 to capture intermediate results. This feature is enabled for ``HIPBLASLT_EPILOGUE_RELU_AUX``, ``HIPBLASLT_EPILOGUE_RELU_AUX_BIAS``, ``HIPBLASLT_EPILOGUE_CLAMP_AUX_EXT``, and ``HIPBLASLT_EPILOGUE_CLAMP_AUX_BIAS_EXT``. +* Support for `HIPBLAS_COMPUTE_32F_FAST_16BF` for FP32 data type for gfx950 only. +* CPP extension APIs ``setMaxWorkspaceBytes`` and ``getMaxWorkspaceBytes``. +* Feature to print logs (using ``HIPBLASLT_LOG_MASK=32``) for Grouped GEMM. +* Support for swizzleA by using the hipblaslt-ext cpp API. +* Support for hipBLASLt extop for gfx11xx and gfx12xx. -### **ROCm Systems Profiler** (1.1.1) +#### Changed + +* ``hipblasLtMatmul()`` now returns an error when the workspace size is insufficient, rather than causing a segmentation fault. #### Resolved issues -* Fixed an issue where ROC-TX ranges were displayed as two separate events instead of a single spanning event. +* Fixed incorrect results when using ldd and ldc dimension parameters with some solutions. -### **rocPRIM** (4.0.1) +### **hipCUB** (4.1.0) + +#### Added + +* Exposed Thread-level reduction API `hipcub::ThreadReduce`. +* `::hipcub::extents`, with limited parity to C++23's `std::extents`. Only `static extents` is supported; `dynamic extents` is not. Helper structs have been created to perform computations on `::hipcub::extents` only when the backend is rocPRIM. For the CUDA backend, similar functionality exists. +* `projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_mdspan.hpp` to support `::hipcub::extents`. +* `::hipcub::ForEachInExtents` API. +* `hipcub::DeviceTransform::Transform` and `hipcub::DeviceTransform::TransformStableArgumentAddresses`. + +* hipCUB and its dependency rocPRIM have been moved into the new `rocm-libraries` [monorepo repository](https://github.com/ROCm/rocm-libraries). This repository contains a number of ROCm libraries that are frequently used together. + * The repository migration requires a few changes to the way that hipCUB fetches library dependencies. + * CMake build option `ROCPRIM_FETCH_METHOD` may be set to one of the following: + * `PACKAGE` - (default) searches for a preinstalled packaged version of the dependency. If it is not found, the build will fall back using option `DOWNLOAD`, below. + * `DOWNLOAD` - downloads the dependency from the rocm-libraries repository. If git >= 2.25 is present, this option uses a sparse checkout that avoids downloading more than it needs to. If not, the whole monorepo is downloaded (this may take some time). + * `MONOREPO` - this option is intended to be used if you are building hipCUB from within a copy of the rocm-libraries repository that you have cloned (and therefore already contains rocPRIM). When selected, the build will try find the dependency in the local repository tree. If it cannot be found, the build will attempt to use git to perform a sparse-checkout of rocPRIM. If that also fails, it will fall back to using the `DOWNLOAD` option described above. + +* A new CMake option `-DUSE_SYSTEM_LIB` to allow tests to be built from installed `hipCUB` provided by the system. + +#### Removed + +* Removed `TexRefInputIterator`, which was removed from CUB after CCCL's 2.6.0 release. This API should have already been removed, but somehow it remained and was not tested. +* Deprecated `hipcub::ConstantInputIterator`, use `rocprim::constant_iterator` or `rocthrust::constant_iterator` instead. +* Deprecated `hipcub::CountingInputIterator`, use `rocprim::counting_iterator` or `rocthrust::counting_iterator` instead. +* Deprecated `hipcub::DiscardOutputIterator`, use `rocprim::discard_iterator` or `rocthrust::discard_iterator` instead. +* Deprecated `hipcub::TransformInputIterator`, use `rocprim::transform_iterator` or `rocthrust::transform_iterator` instead. +* Deprecated `hipcub::AliasTemporaries`, which is considered to be an internal API. Moved to the detail namespace. +* Deprecated almost all functions in `projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_ptx.hpp`. +* Deprecated hipCUB macros: `HIPCUB_MAX`, `HIPCUB_MIN`, `HIPCUB_QUOTIENT_FLOOR`, `HIPCUB_QUOTIENT_CEILING`, `HIPCUB_ROUND_UP_NEAREST` and `HIPCUB_ROUND_DOWN_NEAREST`. + +#### Changed + +* Changed include headers to avoid relative includes that have slipped in. +* Changed `CUDA_STANDARD` for tests in `test/hipcub`, due to C++17 APIs such as `std::exclusive_scan` is used in some tests. Still use `CUDA_STANDARD 14` for `test/extra`. +* Changed `CCCL_MINIMUM_VERSION` to `2.8.2` to align with CUB. +* Changed `cmake_minimum_required` from `3.16` to `3.18`, in order to support `CUDA_STANDARD 17` as a valid value. +* Add support for large num_items `DeviceScan`, `DevicePartition` and `Reduce::{ArgMin, ArgMax}`. +* Added tests for large num_items. +* The previous dependency-related build option `DEPENDENCIES_FORCE_DOWNLOAD` has been renamed `EXTERNAL_DEPS_FORCE_DOWNLOAD` to differentiate it from the new rocPRIM dependency option described above. Its behavior remains the same - it forces non-ROCm dependencies (Google Benchmark and Google Test) to be downloaded rather than searching for installed packages. This option defaults to `OFF`. + +#### Known Issues + +* The `__half` template specializations of Simd operators are currently disabled due to possible build issues with PyTorch. + +### **hipFFT** (1.0.21) + +#### Added + +* Improved test coverage of multi-stream plans, user-specified work areas, and default stride calculation. +* Experimental introduction of hipFFTW library, interfacing rocFFT on AMD platforms using the same symbols as FFTW3 (with partial support). + +### **hipfort** (0.7.1) + +#### Added + +* Support for building with CMake 4.0. + +#### Resolved Issues + +* Fixed a potential integer overflow issue in `hipMalloc` interfaces. + +### **hipRAND** (3.1.0) + +#### Resolved Issues + +* Updated error handling for several hipRAND unit tests to accomodate the new hipGetLastError behaviour that was introduced in ROCm 7.0.0. As of ROCm 7.0.0, the internal error state is cleared on each call to `hipGetLastError` rather than on every HIP API call. + +### **hipSOLVER** (3.1.0) + +#### Added + +* Extended test suites for `hipsolverDn` compatibility functions. + +#### Changed + +* Changed code coverage to use `llvm-cov` instead of `gcov`. + +### **hipSPARSE** (4.1.0) + +#### Added + +* Brain half float mixed precision to `hipsparseAxpby` where X and Y use bfloat16 and result and the compute type use float. +* Brain half float mixed precision to `hipsparseSpVV` where X and Y use bfloat16 and result and the compute type use float. +* Brain half float mixed precision to `hipsparseSpMV` where A and X use bfloat16 and Y and the compute type use float. +* Brain half float mixed precision to `hipsparseSpMM` where A and B use bfloat16 and C and the compute type use float. +* Brain half float mixed precision to `hipsparseSDDMM` where A and B use bfloat16 and C and the compute type use float. +* Brain half float mixed precision to `hipsparseSDDMM` where A and B and C use bfloat16 and the compute type use float. +* Half float mixed precision to `hipsparseSDDMM` where A and B and C use float16 and the compute type use float. +* Brain half float uniform precision to `hipsparseScatter` and `hipsparseGather` routines. +* Documentation for installing and building hipSPARSE on Microsoft Windows. + +### **hipSPARSELt** (0.2.5) + +#### Changed + +* Changed the behavior of the Relu activation. + +#### Optimized + +* Provided more kernels for the `FP16` and `BF16` data types. + +### **MIOpen** (3.5.1) + +#### Added + +* Added a new trust verify find mode. +* Ported Op4dTensorLite kernel from OpenCL to HIP. +* Implemented a generic HIP kernel for backward layer normalization. + +#### Changed + +* Kernel DBs moved from Git LFS to DVC (Data Version Control). + +#### Optimized + +* [Conv] Enabled Composable Kernel (CK) implicit gemms on gfx950. + +#### Resolved Issues + +* [BatchNorm] Fixed a bug for the NHWC layout when a variant was not applicable. +* Fixed a bug that caused a zero-size LDS array to be defined on Navi. + +### **MIVisionX** (3.4.0) + +#### Added + +* VX_RPP - Update blur +* HIP - HIP_CHECK for hipLaunchKernelGGL for gated launch + +#### Changed + +* AMD Custom V1.1.0 - OpenMP updates +* HALF - Fix half.hpp path updates + +#### Resolved Issues + +* AMD Custom - dependency linking errors resolved +* VX_RPP - Fix memory leak +* Packaging - Remove Meta Package dependency for HIP + +#### Known Issues + +* Installation on CentOS/RedHat/SLES requires the manual installation of the `FFMPEG` & `OpenCV` dev packages. + +#### Upcoming Changes + +* VX_AMD_MEDIA - rocDecode support for hardware decode + +### **RCCL** (2.27.7) + +#### Added + +* Added `RCCL_P2P_BATCH_THRESHOLD` to set the message size limit for batching P2P operations. This mainly affects small message performance for alltoall at a large scale but also applies to alltoallv. +* Added `RCCL_P2P_BATCH_ENABLE` to enable batching P2P operations to receive performance gains for smaller messages up to 4MB for alltoall when the workload requires it. This is to avoid performance dips for larger messages. + +#### Changed + +* The MSCCL++ feature is now disabled by default. The `--disable-mscclpp` build flag is replaced with `--enable-mscclpp` in the `rccl/install.sh` script. +* Compatibility with NCCL 2.27.7. + +#### Optimized + +* Improved small message performance for `alltoall` by enabling and optimizing batched P2P operations. + +#### Resolved Issues + +* Improve small message performance for alltoall by enabling and optimizing batched P2P operations. + +#### Known Issues + +* Symmetric memory kernels are currently disabled due to ongoing CUMEM enablement work. +* When running this version of RCCL using ROCm versions earlier than 6.4.0, the user must set the environment flag `HSA_NO_SCRATCH_RECLAIM=1`. + +### **rocALUTION** (4.0.1) + +#### Added + +* Added support for gfx950. + +#### Changed + +* Updated the default build standard to C++17 when compiling rocALUTION from source (previously C++14). + +#### Optimized + +* Improved and expanded user documentation. + +#### Resolved Issues + +* Fixed a bug in the GPU hashing algorithm that occurred when not compiling with -O2/-O3. +* Fixed an issue with the SPAI preconditioner when using complex numbers. + +### **rocBLAS** (5.1.0) + +#### Added + +* Sample for clients using OpenMP threads calling rocBLAS functions. +* gfx1103, gfx1150, and gfx1151 enabled. + +#### Changed + +* By default, the Tensile build is no longer based on `tensile_tag.txt` but uses the same commit from shared/tensile in the rocm-libraries repository. The rmake or install `-t` option can build from another local path with a different commit. + +#### Optimized + +* Improved the performance of Level 2 gemv transposed (`TransA != N`) for the problem sizes where `m` is small and `n` is large on gfx90a and gfx942. + +### **rocDecode** (1.4.0) + +#### Added + +* AV1 12-bit decode support on VA-API version 1.23.0 and later. +* rocdecode-host V1.0.0 library for software decode +* FFmpeg version support for 5.1 and 6.1 +* Find package - rocdecode-host + +#### Resolved Issues + +* rocdecode-host - failure to build debuginfo packages without FFmpeg resolved. +* Fix a memory leak for rocDecodeNegativeTests + +#### Changed + +* HIP meta package changed - Use hip-dev/devel to bring required hip dev deps +* rocdecode host - linking updates to rocdecode-host library + +### **rocFFT** (1.0.35) + +#### Optimized + +* Implemented single-kernel plans for some 2D problem sizes, on devices with at least 160KiB of LDS. +* Improved performance of unit-strided, complex-interleaved, forward/inverse FFTs for lengths: (64,64,128), (64,64,52), (60,60,60) +, (32,32,128), (32,32,64), (64,32,128) +* Improved performance of 3D MPI pencil decompositions by using sub-communicators for global transpose operations. + +### **ROCm Compute Profiler** (3.3.0) + +#### Added +* Live attach/detach feature that allows coupling with a workload process, without controlling its start or end. + * Use '--attach-pid' to specify the target process ID. + * Use '--attach-duration-msec' to specify time duration. + +* `rocpd` choice for `--format-rocprof-output` option in profile mode. + +* `--retain-rocpd-output` option in profile mode to save large raw rocpd databases in workload directory. + +* Feature to show description of metrics during analysis + * Use `--include-cols Description` to show the Description column, which is excluded by default from the + ROCm Compute Profiler CLI output. +* `--set` filtering option in profile mode to enable single-pass counter collection for predefined subsets of metrics. +* `--list-sets` filtering option in profile mode to list the sets available for single pass counter collection. + +* Missing counters based on register specification which enables missing metrics. + * Enable `SQC_DCACHE_INFLIGHT_LEVEL` counter and associated metrics. + * Enable `TCP_TCP_LATENCY` counter and associated counter for all GPUs except MI300. + +* Added interactive metric descriptions in TUI analyze mode. + * You can now left click on any metric cell to view detailed descriptions in the dedicated `METRIC DESCRIPTION` tab. + +* Support for analysis report output as a sqlite database using ``--output-format db`` analysis mode option. + +* `Compute Throughput` panel to TUI's `High Level Analysis` category with the following metrics: + * VALU FLOPs + * VALU IOPs + * MFMA FLOPs (F8) + * MFMA FLOPs (BF16) + * MFMA FLOPs (F16) + * MFMA FLOPs (F32) + * MFMA FLOPs (F64) + * MFMA FLOPs (F6F4) (in gfx950) + * MFMA IOPs (Int8) + * SALU Utilization + * VALU Utilization + * MFMA Utilization + * VMEM Utilization + * Branch Utilization + * IPC + +* `Memory Throughput` panel to TUI's `High Level Analysis` category with the following metrics: + * vL1D Cache BW + * vL1D Cache Utilization + * Theoretical LDS Bandwidth + * LDS Utilization + * L2 Cache BW + * L2 Cache Utilization + * L2-Fabric Read BW + * L2-Fabric Write BW + * sL1D Cache BW + * L1I BW + * Address Processing Unit Busy + * Data-Return Busy + * L1I-L2 Bandwidth + * sL1D-L2 BW + +* Roofline support for Debian 12 and Azure Linux 3.0. + +#### Changed + +* On memory chart, long string of numbers are displayed as scientific notation. It also solves the issue of overflow of displaying long number + +* Add notice for change in default output format to `rocpd` in a future release + * This is displayed when `--format-rocprof-output rocpd` is not used in profile mode + +* When `--format-rocprof-output rocpd` is used, only pmc_perf.csv will be written to workload directory instead of mulitple csv files. + +* Improve analysis block based filtering to accept metric ID level filtering + * This can be used to collect individual metrics from various sections of analysis config + +* CLI analysis mode baseline comparison will now only compare common metrics across workloads and will not show Metric ID + * Remove metrics from analysis configuration files which are explicitly marked as empty or None + +* Changed the basic (default) view of TUI from aggregated analysis data to individual kernel analysis data. + +* Update `Unit` of the following `Bandwidth` related metrics to `Gbps` instead of `Bytes per Normalization Unit` + * Theoretical Bandwidth (section 1202) + * L1I-L2 Bandwidth (section 1303) + * sL1D-L2 BW (section 1403) + * Cache BW (section 1603) + * L1-L2 BW (section 1603) + * Read BW (section 1702) + * Write and Atomic BW (section 1702) + * Bandwidth (section 1703) + * Atomic/Read/Write Bandwidth (section 1703) + * Atomic/Read/Write Bandwidth - (HBM/PCIe/Infinity Fabric) (section 1706) + +* Add `Utilization` to metric name for the following `Bandwidth` related metrics whose `Unit` is `Percent` + * Theoretical Bandwidth Utilization (section 1201) + * L1I-L2 Bandwidth Utilization (section 1301) + * Bandwidth Utilization (section 1301) + * Bandwidth Utilization (section 1401) + * sL1D-L2 BW Utilization (section 1401) + * Bandwidth Utilization (section 1601) + +* Update `System Speed-of-Light` panel to `GPU Speed-of-Light` in TUI with the following metrics: + * Theoretical LDS Bandwidth + * vL1D Cache BW + * L2 Cache BW + * L2-Fabric Read BW + * L2-Fabric Write BW + * Kernel Time + * Kernel Time (Cycles) + * SIMD Utilization + * Clock Rate + +* Analysis output: + * Replace `-o / --output` analyze mode option with `--output-format` and `--output-name` + * Add ``--output-format`` analysis mode option to select the output format of the analysis report. + * Add ``--output-name`` analysis mode option to override the default file/folder name. + * Replace `--save-dfs` analyze mode option with `--output-format csv` + +* Command-line options: + * `--list-metrics` and `--config-dir` options moved to general command-line options. + * * `--list-metrics` option cannot be used without argument (GPU architecture). + * `--list-metrics` option do not show number of L2 channels. + * `--list-available-metrics` profile mode option to display the metrics available for profiling in current GPU. + * `--list-available-metrics` analyze mode option to display the metrics available for analysis. + * `--block` option cannot be used with `--list-metrics` and `--list-available-metrics`options. + +* Default rocprof interface changed from rocprofv3 to rocprofiler-sdk + * Use ROCPROF=rocprofv3 to use rocprofv3 interface + +#### Removed + +* Usage of `rocm-smi` in favor of `amd-smi`. +* Hardware IP block-based filtering has been removed in favor of analysis report block-based filtering. +* Removed aggregated analysis view from TUI analyze mode. + +#### Optimized + +* Improved `--time-unit` option in analyze mode to apply time unit conversion across all analysis sections, not just kernel top stats. +* Improved logic to obtain rocprof supported counters which prevents unnecessary warnings. +* Improved post-analysis runtime performance by caching and multi-processing. #### Resolved issues -* Fixed compilation issue when using `rocprim::texture_cache_iterator`. -* Fixed a HIP version check used to determine whether `hipStreamLegacy` is supported. This resolves runtime errors that occur when `hipStreamLegacy` is used in ROCm 7.0.0 and later. +* Fixed an issue of not detecting the memory clock when using `amd-smi`. +* Fixed standalone GUI crashing. +* Fixed L2 read/write/atomic bandwidths on AMD Instinct MI350 series accelerators. +* Update metric names for better alignment between analysis configuration and documentation +* Fixed an issue where accumulation counters could not be collected on AMD Instinct MI100. +* Fixed an issue of kernel filtering not working in the roofline chart -### **rocSPARSE** (4.0.3) +#### Known issues + +* MI300A/X L2-Fabric 64B read counter may display negative values - The rocprof-compute metric 17.6.1 (Read 64B) can report negative values due to incorrect calculation when TCC_BUBBLE_sum + TCC_EA0_RDREQ_32B_sum exceeds TCC_EA0_RDREQ_sum. + * A workaround has been implemented using max(0, calculated_value) to prevent negative display values while the root cause is under investigation. + +### **ROCm Systems Profiler** (1.2.0) + +#### Added + +- ``ROCPROFSYS_ROCM_GROUP_BY_QUEUE`` configuration setting to allow grouping of events by hardware queue, instead of the default grouping. +- Support for `rocpd` database output with the `ROCPROFSYS_USE_ROCPD` configuration setting. +- Support for profiling PyTorch workloads using the `rocpd` output database. +- Support for tracing OpenMP API in Fortran applications. +- An error warning that is triggered if the profiler application fails due to SELinux enforcement being enabled. The warning includes steps to disable SELinux enforcement. + +#### Changed + +- Updated the grouping of "kernel dispatch" and "memory copy" events in Perfetto traces. They are now grouped together by HIP Stream rather than separately and by hardware queue. +- Updated PAPI module to v7.2.0b2. +- ROCprofiler-SDK is now used for tracing OMPT API calls. + +### **rocPRIM** (4.1.0) + +#### Added + +* `get_sreg_lanemask_lt`, `get_sreg_lanemask_le`, `get_sreg_lanemask_gt` and `get_sreg_lanemask_ge`. +* `rocprim::transform_output_iterator` and `rocprim::make_transform_output_iterator`. +* Experimental support for SPIR-V, to use the correct tuned config for part of the appliable algorithms. +* A new cmake option, `BUILD_OFFLOAD_COMPRESS`. When rocPRIM is build with this option enabled, the `--offload-compress` switch is passed to the compiler. This causes the compiler to compress the binary that it generates. Compression can be useful in cases where you are compiling for a large number of targets, since this often results in a large binary. Without compression, in some cases, the generated binary may become so large symbols are placed out of range, resulting in linking errors. The new `BUILD_OFFLOAD_COMPRESS` option is set to `ON` by default. +* A new CMake option `-DUSE_SYSTEM_LIB` to allow tests to be built from `ROCm` libraries provided by the system. +* `rocprim::apply` which applies a function to a `rocprim::tuple`. + +#### Changed + +* Changed tests to support `ptr-to-const` output in `/test/rocprim/test_device_batch_memcpy.cpp`. + +#### Optimizations + +* Improved performance of many algorithms by updating their tuned configs. + * 891 specializations have been improved. + * 399 specializations have been added. + +#### Upcoming Changes + +* Deprecated the `->` operator for the `zip_iterator`. + +#### Resolved Issues + +* Fixed `device_select`, `device_merge`, and `device_merge_sort` not allocating the correct amount of virtual shared memory on the host. +* Fixed the `->` operator for the `transform_iterator`, the `texture_cache_iterator`, and the `arg_index_iterator`, by now returning a proxy pointer. + * The `arg_index_iterator` also now only returns the internal iterator for the `->`. + +### **ROCProfiler** (2.0.0) + +#### Removed + +* `rocprofv2` doesn't support gfx12. For gfx12, use `rocprofv3` tool. + +### **rocPyDecode** (0.7.0) + +#### Added +* rocPyJpegPerfSample - samples for JPEG decode + +#### Changed +* Package - rocjpeg set as required dependency. +* rocDecode host - rocdecode host linking updates #### Resolved issues +* rocJPEG Bindings - bugfixes +* Test package - find dependencies updated -* Fixed an issue causing premature deallocation of internal buffers while still in use. +### **rocRAND** (4.1.0) -### **rocSOLVER** (3.30.1) +#### Resolved Issues + +* Updated error handling for several rocRAND unit tests to accommodate the new `hipGetLastError` behavior that was introduced in ROCm 7.0. +As of ROCm 7.0, the internal error state is cleared on each call to `hipGetLastError` rather than on every HIP API call. + +#### Changed + +* Changed the `USE_DEVICE_DISPATCH` flag so it can turn device dispatch off by setting it to zero. Device dispatch should be turned off when building for SPIRV. + +### **rocSOLVER** (3.30.0) + +#### Added + +* Hybrid computation support for existing routines: STEQR #### Optimized Improved the performance of: -* LARFT and downstream functions such as GEQRF and ORMTR. -* LARF and downstream functions such as GEQR2. -* ORMTR and downstream functions such as SYEVD. -* GEQR2 and downstream functions such as GEQRF. +* BDSQR and downstream functions such as GESVD. +* STEQR and downstream functions such as SYEV/HEEV. +* LARFT and downstream functions such as GEQR2 and GEQRF. + +### **rocSPARSE** (4.1.0) + +#### Added + +* Brain half float mixed precision for the following routines: + * `rocsparse_axpby` where X and Y use bfloat16 and result and the compute type use float. + * `rocsparse_spvv` where X and Y use bfloat16 and result and the compute type use float. + * `rocsparse_spmv` where A and X use bfloat16 and Y and the compute type use float. + * `rocsparse_spmm` where A and B use bfloat16 and C and the compute type use float. + * `rocsparse_sddmm` where A and B use bfloat16 and C and the compute type use float. + * `rocsparse_sddmm` where A and B and C use bfloat16 and the compute type use float. +* Half float mixed precision to `rocsparse_sddmm` where A and B and C use float16 and the compute type use float. +* Brain half float uniform precision to `rocsparse_scatter` and `rocsparse_gather` routines. + +#### Optimized + +* Improved the user documentation. + +#### Upcoming Changes + +* Deprecate trace, debug, and bench logging using the environment variable `ROCSPARSE_LAYER`. + +### **rocThrust** (4.1.0) + +#### Added + +* A new CMake option `-DSQLITE_USE_SYSTEM_PACKAGE` to allow SQLite to be provided by the system. +* Introduced `libhipcxx` as a soft dependency. When `liphipcxx` can be included, rocThrust can use structs and methods defined in `libhipcxx`. This allows for a more complete behavior parity with CCCL and mirrors CCCL's thrust own dependency on `libcudacxx`. +* Added a new CMake option `-DUSE_SYSTEM_LIB` to allow tests to be built from `ROCm` libraries provided by the system. + +#### Known Issues + +* `event` test is failing on CI and local runs on MI300, MI250 and MI210. + +* rocThrust, as well as its dependencies rocPRIM and rocRAND have been moved into the new `rocm-libraries` monorepo repository (https://github.com/ROCm/rocm-libraries). This repository contains a number of ROCm libraries that are frequently used together. + * The repository migration requires a few changes to the way that rocThrust's ROCm library dependencies are fetched. + * There are new cmake options for obtaining rocPRIM and (optionally, if BUILD_BENCHMARKS is enabled) rocRAND. + * cmake build options `ROCPRIM_FETCH_METHOD` and `ROCRAND_FETCH_METHOD` may be set to one of the following: + * `PACKAGE` - (default) searches for a preinstalled packaged version of the dependency. If it is not found, the build will fall back using option `DOWNLOAD`, described below. + * `DOWNLOAD` - downloads the dependency from the rocm-libraries repository. If git >= 2.25 is present, this option uses a sparse checkout that avoids downloading more than it needs to. If not, the whole monorepo is downloaded (this may take some time). + * `MONOREPO` - this option is intended to be used if you are building rocThrust from within a copy of the rocm-libraries repository that you have cloned (and therefore already contains the dependencies rocPRIM and rocRAND). When selected, the build will try to find the dependency in the local repository tree. If it cannot be found, the build will attempt to add it to the local tree using a sparse-checkout. If that also fails, it will fall back to using the `DOWNLOAD` option. + +#### Changed + +* The previously hidden cmake build option `FORCE_DEPENDENCIES_DOWNLOAD` has been unhidden and renamed `EXTERNAL_DEPS_FORCE_DOWNLOAD` to differentiate it from the new rocPRIM and rocRAND dependency options described above. Its behavior remains the same - it forces non-ROCm dependencies (Google Benchmark, Google Test, and SQLite) to be downloaded instead of searching for existing installed packages. This option defaults to `OFF`. + +#### Removed + +* The previous dependency-related build options `DOWNLOAD_ROCPRIM` and `DOWNLOAD_ROCRAND` have been removed. Use `ROCPRIM_FETCH_METHOD=DOWNLOAD` and `ROCRAND_FETCH_METHOD=DOWNLOAD` instead. + +### **RPP** (2.1.0) + +#### Added + +* Solarize augmentation for HOST and HIP +* Hue and Saturation adjustment augmentations for HOST and HIP +* Find RPP - cmake module +* Posterize augmentation for HOST and HIP + +#### Changed + +* HALF - Fix half.hpp path updates +* Box filter - padding updates + +#### Removed + +* Packaging - Remove Meta Package dependency for HIP +* SLES 15 SP6 support + +#### Resolved Issues + +* Test Suite - Fixes for accuracy +* HIP Backend - Check return status warning fixes +* Bugfix - HIP vector types init ## ROCm known issues ROCm known issues are noted on {fab}`github` [GitHub](https://github.com/ROCm/ROCm/labels/Verified%20Issue). For known issues related to individual components, review the [Detailed component changes](#detailed-component-changes). -### ROCm debugging tools might become unresponsive in SELinux-enabled distributions - -Red Hat Enterprise Linux (RHEL) and related distributions automatically enable a security feature named Security-Enhanced Linux (SELinux), which may prevent ROCm debugging tools, such as ROCgdb, ROCdbgapi, and ROCR Debug Agent, from working correctly. - -The problem occurs when attempting to debug a program that contains code that runs on the GPU. The debugging session might become unresponsive while attempting to reach a breakpoint or executing instruction-stepping in device code. ROCgdb will still be responsive and accept interruptions by pressing `Control+C`, but the breakpoint in device code won't be hit, and the instruction-stepping operation will not be completed. - -The ROCR Debug Agent might also become unresponsive when attempting to capture data from a program that is experiencing queue errors, memory faults, or other triggering events. - -For a detailed workaround, see the [Installation troubleshooting](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/install-faq.html#issue-10-rocm-debugging-tools-might-become-unresponsive-in-selinux-enabled-distributions) documentation. This issue will be fixed in a future ROCm release. See [GitHub issue #5498](https://github.com/ROCm/ROCm/issues/5498). - -### MIGraphX Python API will fail when running on Python 3.13 - -Applications using the MIGraphX Python API will fail when running on Python 3.13 and return the error message `AttributeError: module 'migraphx' has no attribute 'parse_onnx'`. The issue does not occur when you manually build MIGraphX. For detailed instructions, see [Building from source](https://rocm.docs.amd.com/projects/AMDMIGraphX/en/latest/install/building_migraphx.html). As a workaround, change the Python version to the one found in the installed location: - -``` -ls -l /opt/rocm-7.0.0/lib/libmigraphx_py_*.so -``` -The issue will be resolved in a future ROCm release. See [GitHub issue #5500](https://github.com/ROCm/ROCm/issues/5500). - -### Applications using OpenCV might fail due to package incompatibility between the OS - -OpenCV packages built on Ubuntu 24.04 are incompatible with Debian 13 due to a version conflict. As a result, applications, tests, and samples that use OpenCV might fail. To avoid the version conflict, rebuild OpenCV with the version corresponding to Debian 13, then rebuild MIVisionX on top of it. As a workaround, rebuild OpenCV from source, followed by the application that uses OpenCV. This issue will be fixed in a future ROCm release. See [GitHub issue #5501](https://github.com/ROCm/ROCm/issues/5501). - ## ROCm upcoming changes The following changes to the ROCm software stack are anticipated for future releases. -### ROCm Execution Provider (ROCm-EP) deprecation - -ROCm 7.0.2 is the last official AMD-supported distribution of ROCm Execution Provider (ROCm-EP). ROCm EP will be removed from all upcoming ROCm releases. Refer to this [Pull Request](https://github.com/microsoft/onnxruntime/pull/25181) for more information. Migrate your applications to use the [MIGraphX Execution Provider](https://onnxruntime.ai/docs/execution-providers/MIGraphX-ExecutionProvider.html#migraphx-execution-provider). - ### ROCm SMI deprecation [ROCm SMI](https://github.com/ROCm/rocm_smi_lib) will be phased out in an diff --git a/docs/conf.py b/docs/conf.py index 5a6298e04..8e72e56eb 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -89,15 +89,15 @@ project = "ROCm Documentation" project_path = os.path.abspath(".").replace("\\", "/") author = "Advanced Micro Devices, Inc." copyright = "Copyright (c) 2025 Advanced Micro Devices, Inc. All rights reserved." -version = "7.0.2" -release = "7.0.2" +version = "7.1.0" +release = "7.1.0" setting_all_article_info = True all_article_info_os = ["linux", "windows"] all_article_info_author = "" # pages with specific settings article_pages = [ - {"file": "about/release-notes", "os": ["linux"], "date": "2025-10-10"}, + {"file": "about/release-notes", "os": ["linux"], "date": "2025-10-28"}, {"file": "release/changelog", "os": ["linux"],}, {"file": "compatibility/compatibility-matrix", "os": ["linux"]}, {"file": "compatibility/ml-compatibility/pytorch-compatibility", "os": ["linux"]}, diff --git a/docs/sphinx/_toc.yml.in b/docs/sphinx/_toc.yml.in index cbc2e7bce..e73830a72 100644 --- a/docs/sphinx/_toc.yml.in +++ b/docs/sphinx/_toc.yml.in @@ -12,14 +12,14 @@ subtrees: - file: compatibility/compatibility-matrix.rst title: Compatibility matrix entries: - - url: https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html + - url: https://rocm.docs.amd.com/projects/install-on-linux-internal/en/latest/reference/system-requirements.html title: Linux system requirements - url: https://rocm.docs.amd.com/projects/install-on-windows/en/${branch}/reference/system-requirements.html title: Windows system requirements - caption: Install entries: - - url: https://rocm.docs.amd.com/projects/install-on-linux/en/${branch}/ + - url: https://rocm.docs.amd.com/projects/install-on-linux-internal/en/latest/ title: ROCm on Linux - url: https://rocm.docs.amd.com/projects/install-on-windows/en/latest/ title: HIP SDK on Windows