ROCm Core SDK 10.0.0 release notes#
2026-08-26
59 min read time
These release notes describe notable changes since the previous ROCm release.
Note
Since ROCm 7.14, ROCm uses TheRock as its build and release system. For more information, see the transition guide.
Release highlights#
This release focuses on AI inference, developer tooling, and profiling across AMD Instinct™, Radeon™, and Ryzen™ AI platforms. Highlights include expanded framework support for AI inference, new HIP APIs and performance improvements, ROCprofiler-SDK adoption across AI profiling workflows, and updates to math, sparse, and communication libraries.
Platform and hardware support#
This release expands GPU, operating system, virtualization, and partitioning support.
Expanded AMD GPU support#
ROCm 10.0.0 adds support for the following AMD Radeon GPUs:
For the complete list of supported AMD hardware, see AMD hardware support.
Operating system support update#
Operating system support remains unchanged in this release.
For the full list of supported Linux distributions, see Operating system support.
Expanded GPU virtualization support for Instinct GPUs#
ROCm 10.0.0 adds support for the following virtualization configurations on AMD Instinct GPUs:
On AMD Instinct MI355X and MI350X:
Passthrough Ubuntu 22.04 host OS with Ubuntu 22.04 guest OS.
On AMD Instinct MI350P:
Passthrough ESXi 9.1 with Ubuntu 24.04 guest OS.
On AMD Instinct MI325X:
Passthrough Ubuntu 24.04 host OS with Ubuntu 24.04 guest OS.
Passthrough Ubuntu 22.04 host OS with Ubuntu 22.04 guest OS.
Passthrough Ubuntu 24.04 host OS with RHEL 9.4 guest OS.
Passthrough RHEL 9.4 host OS with RHEL 9.4 guest OS.
KVM SR-IOV RHEL 10.2 host OS with RHEL 10.2 guest OS.
On AMD Instinct MI300X:
Passthrough Ubuntu 24.04 host OS with Ubuntu 24.04 guest OS.
Passthrough Ubuntu 24.04 host OS with RHEL 9.4 guest OS.
Passthrough RHEL 9.4 host OS with RHEL 9.4 guest OS.
Passthrough ESXi 8 U3 with Ubuntu 24.04 and Ubuntu 22.04 guest OS.
KVM SR-IOV RHEL 10.2 host OS with RHEL 10.2 guest OS.
On AMD Instinct MI210:
Passthrough Ubuntu 24.04 host OS with Ubuntu 24.04 guest OS.
Passthrough Ubuntu 22.04 host OS with Ubuntu 22.04 guest OS.
Supported Single Root I/O Virtualization (SR-IOV) configurations require the AMD GPU Virtualization Driver (GIM) 9.2.0.K. For details, see GPU virtualization support.
GPU partitioning support update#
GPU partitioning support remains unchanged in this release. For details, see GPU partitioning support.
AI inference and frameworks#
This release enables support for the following frameworks:
PyTorch 2.13.0
JAX 0.11.0
JAX 0.10.2
vLLM 0.27.0
SGLang 0.5.15
TensorFlow 2.21
MIGraphX 2.17
ONNX Runtime 1.27.0
The updated framework support replaces the previous PyTorch 2.10.0, JAX 0.9.1, vLLM 0.23.0, SGLang 0.5.13, MIGraphX 2.16, and ONNX Runtime 1.23.2 support.
For details, see AI ecosystem support.
Developer tools and profiling#
This release improves ROCm developer workflows with new HIP APIs, expanded profiling and tracing capabilities, and broader telemetry coverage.
HIP feature highlights#
The following are notable enhancements to HIP:
Improved HIP performance#
Improved hipEventRecord performance by using the hipEventDisableTiming flag to avoid unnecessary profiling when timing information is not required. Event operations are now coalesced to eliminate redundant barrier submissions, reducing runtime overhead and improving execution efficiency.
HIP cooperative groups exclusive and inclusive scan support#
HIP cooperative_groups library adds cooperative_groups::inclusive_scan and cooperative_groups::exclusive_scan scan APIs in parity with CUDA. Both accept any cooperative group type and an optional custom binary operator, defaulting to summation when none is given.
ROCr Runtime core dump support with attached debuggers#
The ROCr Runtime now generates a valid GPU core dump even when a debugger such as ROCm Debugger (ROCgdb) or ROCR Debug Agent is already attached to the process. The runtime now captures the triggering GPU exception from its own internal state, so debugging sessions and core dump collection no longer need to be mutually exclusive.
HIP API addition for CUDA parity#
HIP adds hipMemGetDefaultMemPool, which returns the default memory pool for a given memory location and allocation type.
For more information, see the HIP section in the ROCm component changelogs.
ROCprofiler-SDK feature highlights#
The following are notable enhancements to ROCprofiler-SDK:
Expanded tracing domains#
ROCprofiler-SDK and rocprofv3 add three new first-class tracing domains:
rocSHMEM API tracing: Host-stream APIs, including
rocshmem_putmem_on_stream,rocshmem_getmem_on_stream, androcshmem_alltoallmem_on_streamare now intercepted and emitted as per-call trace records. These records appear inline with HIP, HSA, RCCL, and other runtime traces, enabling you to see rocSHMEM communication activity in the same timeline as GPU compute and understand its contribution to overall application performance. Enable with the--rocshmem-traceflag (orROCPROF_ROCSHMEM_API_TRACEenvironment variable).hipFile tracing support: hipFile API calls are intercepted via dispatch-table wrapping and emitted as per-call trace records alongside HIP, HSA, and other runtime activity. This allows you to see file I/O operations in the same profiling timeline as GPU kernels and memory copies, making it straightforward to quantify storage overhead and its impact on end-to-end application performance. Enable with the
--hipfile-traceflag (orROCPROF_HIPFILE_API_TRACEenvironment variable).OpenMP (OMPT) tracing:
rocprofv3exposes OpenMP Tools (OMPT) tracing as a first-class command-line flag. The--ompt-traceoption accepts a bare Boolean or a space-separated category list (for example--ompt-trace parallel task target sync), following the same style as--pmcand--output-format. ROCprofiler-SDK has supported the OMPT callback layer since an earlier release; this change makes it accessible without writing a custom tool.
All records from these tracing domains are output in JSON (hipFile, rocSHMEM) and rocpd (hipFile, rocSHMEM, OpenMP) formats. The rocpd output can then be converted to CSV, Perfetto, and OTF2 using post-processing conversion scripts.
Enhanced graph and profiling output#
HIP Graph per-node attribution: ROCprofiler-SDK and
rocprofv3now add full per-graph-node attribution for HIP graph kernels and memory copies. Each dispatch record produced by a graph launch is tagged with the identity of the graph and the specific node within it that produced it. This allows profiling tools to group dispatches by source node across many launches, compute per-node timing and counter aggregates, and correlate graph-level summary records with their individual dispatch records. Enable with the--hip-graph-traceflag, automatically included in--hip-traceor--hip-runtime-trace.SPM ROCpd output support: ROCprofiler-SDK extends the rocpd output format to include Streaming Performance Monitor (SPM) counter data. SPM records are stored as
rocpd_trackrows with a"SPM"label, with counter values grouped by timestamp intorocpd_samplerows and per-dimension data inrocpd_pmc_eventrows. The rocpd schema is updated to includesample_id,xcc,shader_engine, andinstancecolumns. SPM data can now be consumed by any tool that reads the rocpd database, or converted to other output formats such as Perfetto. Known Issue: SPM sessions can remain in a stale state after abrupt termination. See GitHub issue #6489 for details.
Improved attach capabilities#
Live Attach with Advanced Thread Trace (ATT) support: ROCprofiler-SDK extends the live attach workflow to include Advanced Thread Trace (ATT). When
rocprofv3attaches to a running process, it now registers for code-object iteration and creation callbacks so that thread trace can operate correctly on code objects that were loaded before the attach occurred. This makes ATT available for already-running production workloads without requiring an application restart.Container-aware rocattach symbol resolution:
rocprofv3improves attach support when the target process is running inside a container. ROCprofiler-SDK now resolves attach entry points directly from the target process mapped ELF, and validates tool paths from the target’s perspective before injection. This allows attaching from a host to a containerized process without manually copying .so files. Previously,rocattachcalculated symbol offsets from the host’slibrocprofiler-register.soand applied them to the target’s mapping, which failed when the host and container libraries differ in ELF layout or path.Python API for rocprof-trace-decoder:
rocprof-trace-decodernow ships a Python API that allows you to decode Advanced Thread Trace (ATT) / SQTT data directly from Python without writing a C++ consumer. The API wraps the decoder library and exposes thread trace decoding as a first-class Python interface, with samples included to demonstrate common workflows. Integration tests for the decoder have been migrated to Python, simplifying test authoring and making it easier for downstream tools to validate their trace-decoding pipelines. This is particularly useful for analysis scripts, Jupyter notebooks, and custom profiling tools that need to process ATT output programmatically.SQTT quick scan support for thread trace path (Experimental): ROCprofiler-SDK introduces an experimental SQTT quick scan mode for thread trace, accessible through a new CMake flag. The quick scan path collects thread trace data without packet insertion or HSA signal manipulation, removing the queue interception overhead that the standard ATT path requires. Individual kernels can be traced without serialization, and the approach is independent of the ROCm runtime version. This is an experimental feature intended to validate the new collection path and pave the way for out-of-process thread trace and long-kernel tracing in future releases.
Build and dependency improvements#
ROCprofiler-SDK no longer depends on libatomic. The library was previously linked unconditionally through the rocprofiler-sdk-atomic interface target, causing link failures on toolchains and container images where libatomic1 is not installed. The single std::atomic use that required the library has been replaced with explicit memory-ordering synchronization, removing the dependency without changing behavior.
Quality and stability improvements#
This release includes a range of quality and stability improvements across ROCprofiler-SDK and rocprofv3:
Thread trace stall issue fixed: Resolved a GPU stall that occurred when device thread trace was started before
hsa_init().Counter collection stall issue fixed: Corrected an
InterceptQueueordering bug that caused counter-collection sessions to stall, and fixed an out-of-bounds write inSubmit().Thread trace autoflush disabled: Disabled autoflush in thread trace to prevent premature buffer flushes that caused incomplete or corrupted traces.
roctxMark kernel rename issue fixed:
roctxMarkcalls no longer propagate as kernel rename labels, fixing spurious kernel name changes in traces that contained ROCTx markers.Queue interposition bypass: Idle inline queues with no active profiling consumers now bypass interposition entirely, reducing overhead for applications that create queues but do not immediately dispatch work.
AQLprofile gfx11xx counter issue fixed: Corrected SQ aliasing on harvested WGPs and multi-counter desync on gfx11xx targets. Also fixed the
GcEaSeCounterBlockMaxEventvalue in AQLprofile.PC sampling service check: Added a guard to prevent double-initialization of the PC sampling service.
Attach output flush:
rocprofv3attach sessions now correctly block until all buffered output is flushed before exiting.Code object callback ordering: Corrected the ordering of code object callbacks during attach to prevent race conditions with tools that depend on ordered delivery.
DWARF parsing: DWARF information is now parsed lazily, reducing startup overhead for attach and tracing sessions on large binaries.
Build and CI improvements: Fixed
fmt/format.hinclude path,fpicflag for samples, OMP lookup in CI, and clang-tidy quickscan enablement.
ROCm Compute Profiler feature highlights#
The following are notable enhancements to the ROCm Compute Profiler (rocprofiler-compute):
Triton operator tracing (experimental)#
Operator tracing now covers Triton and torch.compile kernels in addition to PyTorch, and a single option traces every supported machine learning framework in one run. For details, see Triton trace, ML API trace, and Operator filtering.
Improved roofline support on gfx1150 (Strix Point), gfx1151 (Strix Halo and Gorgon Halo), and gfx1152 (Krackan Point)#
Roofline benchmarking and analysis on these GPUs now report the correct set of supported precisions, so --roofline-data-type no longer offers precisions that cannot be measured. Machine specification reporting for APUs is corrected as well. Roofline benchmarking on gfx1153 is not yet supported. For details, see Standalone roofline and Roofline HTML generation.
For more information, see the ROCm Compute Profiler section in the ROCm component changelogs.
ROCm Systems Profiler feature highlights#
The following are notable enhancements to ROCm Systems Profiler:
hipFILE (GPU-direct storage) API tracing#
ROCm Systems Profiler can now trace hipFile GPU-direct storage API calls, giving you visibility into storage I/O paths that move data directly between storage and GPU memory. Enable it by adding hipfile_api (shorthand: hipfile) to ROCPROFSYS_ROCM_DOMAINS. This capability requires ROCprofiler-SDK 1.3.5 or later. For details, see the ROCm domains section in Configuring runtime options.
rocSHMEM host-stream API tracing#
ROCm Systems Profiler now captures the nine host-stream rocSHMEM API calls (putmem_on_stream, getmem_on_stream, putmem_signal_on_stream, signal_wait_until_on_stream, broadcastmem_on_stream, alltoallmem_on_stream, barrier_all_on_stream, sync_all_on_stream, and quiet_on_stream) as rocm_rocshmem_api spans in both Perfetto traces and rocpd databases. Enable it with ROCPROFSYS_ROCM_DOMAINS=rocshmem_api. This capability requires ROCprofiler-SDK 1.3.5 or later and rocSHMEM 3.6.0 or later (included in ROCm 10.0.0). Since rocSHMEM 3.6.0 enables USE_ROCPROFILER_REGISTER by default, package installations include this support automatically. A rocshmem example demonstrating two-PE usage of all nine APIs is included under examples/rocshmem. For details, see the ROCm domains section in Configuring runtime options.
Finer-grained instrumentation control#
The rocprof-sys-instrument tool adds several options to reduce instrumentation overhead and scope collection more precisely. The --exe-only flag excludes every shared library from instrumentation, leaving only the main executable. The --exclude-internal-lib-paths flag excludes every on-disk path that matches an internal library’s filename, rather than only the path linked at startup. The --max-library-functions option skips shared libraries whose procedure count exceeds a specified threshold, keeping overhead manageable; the target executable is never gated by this threshold, and the check is bypassed for modules and functions selected through the include/restrict regexes (--module-include/-MI, --module-restrict/-MR, --function-include/-I, and --function-restrict/-R). For details, see Binary instrumentation.
New profiler-hub writer backend#
ROCm Systems Profiler introduces the new profiler-hub writer backend for trace persistence, which replaces the existing SQLite3/rocpd backend for writing trace data.
AI-NIC telemetry sampling#
ROCm Systems Profiler now supports periodic sampling of AI NIC (RDMA) network metrics, including unicast byte/packet counts, congestion notifications, and packet-sequence error counters. Select interfaces with the --ai-nics flag on rocprof-sys-run or rocprof-sys-sample (or via ROCPROFSYS_SAMPLING_AINICS), and view the results as Perfetto or rocpd tracks alongside your existing CPU/GPU sampling data. See the Network performance profiling how-to for setup, configuration, and visualization details.
For more information, see the ROCm Systems Profiler section in the ROCm component changelogs.
Libraries#
This release introduces new algorithms and optimizations across the math, sparse, and primitives libraries. Updates to hipFile improve I/O performance for NVMe-backed storage.
Composable Kernel improves a8w8 GEMM performance#
Composable Kernel improves a8w8 GEMM performance on AMD Instinct MI355X GPUs, delivering measurable throughput gains over the prior AITER implementation for FP8 and int8 GEMM problem shapes used in long-sequence inference workloads (sequence lengths from 6K to 1M tokens). The optimizations are built on CK Tile and are accessible through the AITER GEMM interface.
rocFFT supports multi-GPU RCCL backend#
rocFFT adds an optional RCCL backend for single-node, multi-GPU FFT communication within a single process, enabled via the -DROCFFT_RCCL_ENABLE=ON CMake build option. RCCL’s GPU topology-awareness targets help improve communication performance over rocFFT’s existing memory-copy-based transport in this configuration.
Symmetric memory support updated in RCCL#
RCCL extends its symmetric memory support with a new Reduce-Scatter kernel and expanded memory registration options for collective operations. This implementation enables:
Reduce-Scatter symmetric kernel: RCCL adds a symmetric-memory kernel for Reduce-Scatter on AMD Instinct MI300 Series and MI350 Series GPUs, extending symmetric-memory execution to a collective that previously required the default communication path. The kernel also adds support for the AVG reduction operation.
GPU-only multi-segment registration: Symmetric memory windows can register multi-segment GPU memory ranges without host involvement, currently supported for single-node configurations.
Elastic buffers: Symmetric memory collectives support tensors residing in either device or host memory, currently supported for single-node configurations.
hipSPARSE and rocSPARSE feature highlights#
The following are notable enhancements to hipSPARSE and rocSPARSE:
rocSPARSE and hipSPARSE add Blocked ELL format support#
rocSPARSE and hipSPARSE now support Blocked ELL format in their dense-to-sparse conversion routines, rocsparse_dense_to_sparse and hipsparseDenseToSparse. Each library adds a companion pointer-setter function, rocsparse_bell_set_pointers and hipsparseBlockedEllSetPointers respectively, to configure the Blocked ELL array pointers.
CSC format support for sparse triangular solves in rocSPARSE and hipSPARSE#
rocSPARSE and hipSPARSE sparse triangular solve routines now accept matrices in Compressed Sparse Column (CSC) format directly, removing the need to convert to Compressed Sparse Row (CSR) first. CSC support extends to rocsparse_spsv/rocsparse_sptrsv and rocsparse_spsm/rocsparse_sptrsm in rocSPARSE, and to hipsparseSpSV and hipsparseSpS in hipSPARSE.
hipSPARSE adds the SpMV nnz-split algorithm#
hipSPARSE adds the HIPSPARSE_SPMV_CSR_ALG3 algorithm to hipsparseSpMV, exposing the rocSPARSE’s analysis-free nnz-split CSR algorithm (rocsparse_spmv_alg_csr_nnzsplit) for sparse matrix-vector multiplication. The algorithm distributes work across threads based on the number of non-zero entries per row and requires no preliminary analysis step before execution.
rocSPARSE improves default SpMM algorithm selection#
rocSPARSE’s default rocsparse_spmm algorithm now switches to a nnz-split kernel for strongly skewed CSR/CSC matrices (a single long row or column). This avoids the throughput loss the previous row-split default caused on such matrices. Non-skewed matrices and explicitly chosen algorithms are unaffected.
rocSPARSE removes rocsparse_indextype_u16 index type#
The rocsparse_indextype_u16 field of the rocsparse_indextype enumerator is now removed; and only rocsparse_indextype_i32 and rocsparse_indextype_i64 remain. rocsparse_indextype_u16 was deprecated in ROCm 7.14.0; code that still references it will now fail to compile.
rocPRIM adds parallel top-K algorithms#
rocPRIM adds rocprim::device_topk and rocprim::device_segmented_topk, parallel device-level algorithms that find the largest or smallest K elements from an input array or from segmented groups, respectively. To enable this feature, add the -DROCPRIM_ENABLE_TOPK=ON CMake build option. The default variant is hipGraph-compatible; a stable-ordering variant is also available for callers that need guaranteed ordering.
hipFile fastpath I/O support for LVM volumes#
hipFile now supports fastpath I/O to files on Logical Volume Manager (LVM) volumes backed by NVMe devices, resolving a previous ENODEV error caused by the underlying PCI device not being resolvable through the volume manager.
AMD SMI feature highlights#
The following are notable changes to AMD SMI:
AMD SMI VCN busy metric on Radeon RX GPUs#
AMD SMI now correctly reports the VCN busy percentage for Radeon RX GPUs in the amd-smi metric --usage output. On affected devices where GPU metrics lacked VCN activity data, the value previously displayed as N/A. AMD SMI now reads the metric from the available sysfs source and reports it correctly.
AMD SMI API removals#
The AMD SMI library has removed several APIs, types, defines, and enums, and changed the Application Binary Interface (ABI) of amdsmi_gpu_metrics_t in this release. For details, see AMD SMI API and ABI changes.
AMD hardware support#
The following table lists supported AMD Instinct GPUs, Radeon GPUs, and Ryzen APUs. Each supported device is listed with its corresponding GPU microarchitecture and LLVM target.
Note
If your GPU is not listed, it might be community-enabled through TheRock nightly builds. For more information, see TheRock supported GPUs. For installation guidance, see TheRock releases.
Device series |
Device |
LLVM target |
Architecture |
|---|---|---|---|
| AMD Instinct MI350 Series | gfx950 |
CDNA 4 | |
| AMD Instinct MI300 Series | gfx942 |
CDNA 3 | |
| AMD Instinct MI200 Series | gfx90a |
CDNA 2 | |
| AMD Instinct MI100 Series | gfx908 |
CDNA |
Device series |
Device |
LLVM target |
Architecture |
|---|---|---|---|
| AMD Radeon AI PRO R9000 Series | gfx1201 |
RDNA 4 | |
| AMD Radeon RX 9000 Series | gfx1201 |
||
gfx1200 |
|||
| AMD Radeon PRO W7000 Series | gfx1100 |
RDNA 3 | |
gfx1101 |
|||
| AMD Radeon RX 7000 Series | gfx1100 |
||
gfx1101 |
|||
gfx1102 |
|||
| AMD Radeon PRO V Series | gfx1101 |
||
gfx1030 |
RDNA 2 | ||
| AMD Radeon PRO W6000 Series | gfx1030 |
Operating system support#
ROCm supports the following Linux distributions and Microsoft Windows versions. If you’re running ROCm on Linux, ensure your system is using a supported kernel version.
Important
The following table is a general overview of supported operating systems. Actual support might vary by AMD GPU or APU. Use the Compatibility matrix to verify support for your specific setup before installation.
Linux distribution |
Supported versions |
Linux kernel version |
|---|---|---|
Ubuntu |
26.04 |
GA 7.0 |
24.04.4 |
GA 6.8 |
|
22.04.5 |
GA 5.15 |
|
Debian |
13 |
6.12 |
12 |
6.1.0 |
|
Red Hat Enterprise Linux (RHEL) |
10.2 |
6.12.0-211 |
10.0 |
6.12.0-55 |
|
9.8 |
5.14.0-687 |
|
9.6 |
5.14.0-570 |
|
9.4 |
5.14.0-427 |
|
8.10 |
4.18.0-553 |
|
Oracle Linux |
10 |
UEK 8.1 |
9 |
UEK 8 |
|
8 |
UEK 7 |
|
SUSE Linux Enterprise Server (SLES) |
16.0 |
6.12 |
15.7 |
6.4.0-150700.51 |
|
Rocky Linux |
9 |
5.14.0-570 |
Operating system |
Supported versions |
Linux kernel version |
|---|---|---|
Ubuntu |
26.04 |
GA 7.0 |
24.04.4 |
GA 6.8 |
|
22.04.5 |
GA 5.15 |
|
Red Hat Enterprise Linux (RHEL) |
10.2 |
6.12.0-211 |
9.8 |
5.14.0-687 |
|
Windows |
11 25H2 |
— |
Operating system |
Supported versions |
Linux kernel version |
|---|---|---|
Ubuntu |
26.04 |
GA 7.0 |
24.04.4 |
HWE 6.17 |
|
Windows |
11 25H2 |
— |
Installation updates#
ROCm 10.0.0 adds support for new GPUs and APUs and fixes minor issues in the Runfile Installer.
Kernel driver and firmware bundle support#
ROCm requires a coordinated stack of compatible firmware, driver, and user-space components. Maintaining version alignment between these layers ensures correct GPU operation and performance, especially for AMD data center products. While AMD publishes the AMD GPU driver and ROCm user space components, your server OEM (original equipment manufacturer) or infrastructure provider distributes the firmware packages. AMD supplies those firmware images (platform level data model (PLDM) bundles), which the OEM integrates and distributes.
AMD device |
PLDM Bundle (Firmware) |
Linux driver |
|---|---|---|
Instinct MI355X |
01.26.01.03 (or later) |
AMD GPU Driver (amdgpu) |
Instinct MI350X |
||
Instinct MI350P |
BKC12.0 (IFWI PRD1000A) or later |
|
Instinct MI325X |
01.26.01.03 (or later) |
|
Instinct MI300X |
01.26.00.04 (or later) |
|
Instinct MI300A |
PI100D |
|
Instinct MI250X |
Maintenance update (MU) 5 with IFWI 75 (or later) |
|
Instinct MI250 |
||
Instinct MI210 |
||
Instinct MI100 |
VBIOS D3430401-037 |
Linux driver |
Windows driver |
|---|---|
|
AMD GPU Driver (amdgpu) |
AMD Software: Adrenalin Edition 26.6.4
Windows OEM Driver |
Linux driver |
Windows driver |
|---|---|
|
Inbox kernel driver (Ubuntu 26.04) |
AMD Software: Adrenalin Edition 26.6.4
Windows OEM Driver |
GPU virtualization support#
AMD Instinct data center GPUs support virtualization in the following configurations. Supported SR-IOV configurations require the AMD GPU Virtualization Driver (GIM) 9.2.0.K—see the AMD Instinct Virtualization Driver documentation for more information.
AMD GPU |
Hypervisor |
Virtualization technology |
Virtualization driver |
Host OS |
Guest OS |
|---|---|---|---|---|---|
Instinct MI355X |
KVM |
Passthrough |
— |
Ubuntu 26.04 |
Ubuntu 26.04 |
Ubuntu 24.04 |
Ubuntu 24.04 |
||||
Ubuntu 22.04 |
Ubuntu 22.04 |
||||
SR-IOV |
GIM 9.2.0.K | Ubuntu 24.04 |
Ubuntu 24.04 |
||
RHEL 10.0 |
|||||
RHEL 9.6 |
|||||
ESXi |
SR-IOV |
— |
VMware ESXi 9.1 |
Ubuntu 24.04 |
|
Instinct MI350X |
KVM |
Passthrough |
— |
Ubuntu 26.04 |
Ubuntu 26.04 |
Ubuntu 24.04 |
Ubuntu 24.04 |
||||
Ubuntu 22.04 |
Ubuntu 22.04 |
||||
SR-IOV |
GIM 9.2.0.K | Ubuntu 24.04 |
Ubuntu 24.04 |
||
RHEL 10.0 |
|||||
RHEL 9.6 |
|||||
ESXi |
SR-IOV |
— |
VMware ESXi 9.1 |
Ubuntu 24.04 |
|
Instinct MI350P |
KVM |
Passthrough |
— |
ESXi 9.1 |
Ubuntu 24.04 |
Debian 13 |
Ubuntu 24.04 |
||||
Instinct MI325X |
KVM |
Passthrough |
— |
Ubuntu 26.04 |
Ubuntu 26.04 |
Ubuntu 24.04 |
Ubuntu 24.04 |
||||
RHEL 9.4 |
|||||
Ubuntu 22.04 |
Ubuntu 22.04 |
||||
RHEL 9.4 |
RHEL 9.4 |
||||
SR-IOV |
GIM 9.2.0.K | Ubuntu 22.04 |
Ubuntu 22.04 |
||
RHEL 10.2 |
RHEL 10.2 |
||||
Instinct MI300X |
KVM |
Passthrough |
— |
Ubuntu 26.04 |
Ubuntu 26.04 |
Ubuntu 24.04 |
Ubuntu 24.04 |
||||
RHEL 9.4 |
|||||
Ubuntu 22.04 |
Ubuntu 22.04 |
||||
RHEL 9.4 |
RHEL 9.4 |
||||
ESXi 8 U3 |
Ubuntu 24.04 |
||||
Ubuntu 22.04 |
|||||
SR-IOV |
GIM 9.2.0.K | Ubuntu 24.04 |
Ubuntu 24.04 |
||
Ubuntu 22.04 |
Ubuntu 22.04 |
||||
RHEL 10.2 |
RHEL 10.2 |
||||
RHEL 9.4 |
RHEL 9.4 |
||||
RHEL 9.4 |
Ubuntu 24.04 |
||||
Instinct MI210 |
KVM |
Passthrough |
— |
Ubuntu 26.04 |
Ubuntu 26.04 |
Ubuntu 24.04 |
Ubuntu 24.04 |
||||
Ubuntu 22.04 |
Ubuntu 22.04 |
||||
RHEL 9.4 |
Ubuntu 22.04 |
||||
SR-IOV |
GIM 9.2.0.K | RHEL 9.4 |
Ubuntu 22.04 |
||
RHEL 9.4 |
AMD GPU |
Hypervisor |
Virtualization technology |
Virtualization driver |
Host OS |
Guest OS |
|---|---|---|---|---|---|
Radeon AI PRO R9700S |
KVM |
Passthrough |
— |
Ubuntu 24.04 |
Ubuntu 24.04 |
Radeon PRO V710 |
KVM |
SR-IOV |
GIM 9.2.0.K | Ubuntu 24.04 |
Ubuntu 24.04 |
RHEL 9.6 |
GPU partitioning support#
The following compute partition and NUMA-per-socket (NPS) configurations are available on AMD Instinct GPUs in bare-metal deployments.
Deployment |
Device |
Compute partition mode |
Memory partition mode |
|---|---|---|---|
Bare metal |
Instinct MI355X, Instinct MI350X |
SPX |
NPS1 |
DPX |
NPS2 |
||
CPX |
NPS2 |
||
QPX |
NPS2 |
||
Instinct MI350P |
SPX |
NPS1 |
|
DPX |
NPS1 |
||
CPX |
NPS1 |
||
Instinct MI325X |
SPX |
NPS1 |
|
Instinct MI300X |
SPX |
NPS1 |
|
DPX |
NPS2 |
||
CPX |
NPS4 |
The following configurations are available on AMD Instinct GPUs in passthrough deployments.
Deployment |
Device |
Compute partition mode |
Memory partition mode |
|---|---|---|---|
KVM Passthrough |
Instinct MI355X, Instinct MI350X, Instinct MI325X, Instinct MI300X |
SPX |
NPS1 |
ESXi Passthrough |
Instinct MI350P, Instinct MI300X |
SPX |
NPS1 |
The following configurations are available on AMD Instinct GPUs in KVM SR-IOV deployments. See GPU virtualization support for driver support information.
Deployment |
Device |
VFs per GPU |
Compute partition mode |
Memory partition mode |
|---|---|---|---|---|
KVM SR-IOV |
Instinct MI355X, Instinct MI350X |
1 |
SPX |
NPS1 |
2[*] |
DPX |
NPS2 |
||
8[*] |
CPX |
NPS2 |
||
Instinct MI325X |
1 |
SPX |
NPS1 |
|
Instinct MI300X |
1 |
SPX |
NPS1 |
|
8[*] |
CPX |
NPS4 |
The following configurations are available on AMD Instinct GPUs in ESXi SR-IOV deployments. See GPU virtualization support for driver support information.
Deployment |
Device |
VFs per GPU |
Compute partition mode |
Memory partition mode |
|---|---|---|---|---|
ESXi SR-IOV |
Instinct MI355X, Instinct MI350X |
1 |
SPX |
NPS1 |
See the AMD GPU partitioning topic in the AMD GPU Driver documentation to learn more.
AI ecosystem support#
ROCm 10.0.0 provides optimized support for popular deep learning frameworks and AI inference engines. The following table lists supported frameworks and libraries, their compatible operating systems, and validated versions.
Important
The following table is a general overview of supported frameworks and AI inference engines. Actual support might vary by AMD GPU or APU. Use the Compatibility matrix to verify support for your specific setup.
|
Framework |
Supported versions |
Supported OS |
Supported Python versions |
|---|---|---|---|
| PyTorch |
2.13.0, 2.12.0, 2.11.0 |
Linux |
3.14, 3.13, 3.12, 3.11 |
|
2.13.0 |
Windows |
||
| JAX |
0.11.0 |
Linux |
3.14, 3.13, 3.12 |
|
0.10.2, 0.10.0 |
3.14, 3.13, 3.12, 3.11 |
||
| vLLM |
0.27.0 |
Linux |
3.14 (requires PyTorch 2.13.0) |
| SGLang |
0.5.15 |
Linux |
3.14 (requires PyTorch 2.13.0) |
| TensorFlow |
2.21, 2.20, 2.19.1 |
Linux |
3.12 |
| MIGraphX |
2.17 |
Linux |
3.14, 3.12 |
| ONNX Runtime |
1.29.0 |
Linux |
3.14, 3.12 |
ROCm Core SDK components#
The following table lists core tools and libraries included in the ROCm 10.0.0 release.
Important
The following table is a general overview of ROCm Core SDK components. Actual support for these libraries and tools can vary by GPU and OS. Use the Compatibility matrix to verify support for your specific setup.
Component group |
Component name |
Version |
Supported platforms |
|
|---|---|---|---|---|
Math and compute libraries |
Composable Kernel | 1.2.0 ⇒ 1.2.0 | Linux/Windows · Instinct/Radeon | |
| hipBLAS | 3.5.0 ⇒ 3.6.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| hipBLASLt | 1.4.1 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| hipCUB | 4.5.0 ⇒ 4.6.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| hipFFT | 1.0.24 ⇒ 1.0.25 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| hipRAND | 3.4.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| hipSOLVER | 3.5.0 ⇒ 3.6.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| hipSPARSE | 4.6.0 ⇒ 4.7.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| hipSPARSELt | 0.2.9 | Linux/Windows · Instinct (gfx950/ |
||
| MIOpen | 3.5.2 ⇒ 3.6.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| rocBLAS | 5.5.0 ⇒ 5.6.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| rocFFT | 1.0.38 ⇒ 1.0.39 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| rocPRIM | 4.5.0 ⇒ 4.6.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| rocRAND | 4.5.0 ⇒ 5.0.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| rocSOLVER | 3.35.0 ⇒ 3.36.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| rocSPARSE | 4.7.0 ⇒ 5.0.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| rocThrust | 4.5.0 ⇒ 4.6.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| rocWMMA | 2.2.1 | Linux/Windows · Instinct/Radeon/Ryzen | ||
Communication libraries |
RCCL | 2.30.4 ⇒ 2.30.7 | Linux · Instinct/Radeon/Ryzen | |
| rocSHMEM | 3.5.0 ⇒ 3.6.0 | Linux · Instinct/Radeon (gfx950/ |
||
Media libraries |
rocDecode | 1.8.0 ⇒ 1.9.0 | Linux · Instinct/Radeon/Ryzen (gfx1150/ |
|
| rocJPEG | 1.6.0 ⇒ 1.7.0 | Linux · Instinct/Radeon/Ryzen (gfx1150/ |
||
Storage libraries |
hipFile | 0.3.0 ⇒ 0.4.0 | Linux · Instinct | |
Runtimes and compilers |
HIP | 7.14 ⇒ 10.0.0 | Linux/Windows · Instinct/Radeon/Ryzen | |
| HIPIFY | 7.14 ⇒ 10.0.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| LLVM | 23.0.0 ⇒ 24.0.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
| ROCr Runtime | 1.21.0 | Linux · Instinct/Radeon/Ryzen | ||
| SPIRV-LLVM-Translator | 23.0.0 ⇒ 24.0.0 | Linux/Windows · Instinct/Radeon/Ryzen | ||
Profiling and debugging tools |
ROCdbgapi | 0.80.0 | Linux · Instinct/Radeon | |
| ROCgdb | 16.3 ⇒ 16.3 | Linux · Instinct/Radeon | ||
| ROCm Compute Profiler | 3.7.0 ⇒ 3.8.0 | Linux · Instinct/Ryzen (gfx1150 (Strix Point only)/ |
||
| ROCm Systems Profiler | 1.7.0 ⇒ 1.8.0 | Linux · Instinct/Radeon/Ryzen (gfx1150 (Strix Point only)/ |
||
| ROCprofiler-SDK | 1.3.2 ⇒ 1.3.5 | Linux · Instinct/Radeon/Ryzen (gfx1150/ |
||
| ROCr Debug Agent | 2.1.0 | Linux · Instinct/Radeon | ||
Control and monitoring tools |
AMD SMI | 26.5.0 ⇒ 27.0.0 | Linux · Instinct/Radeon | |
| ROCm Data Center Tool | 1.3.1 | Linux · Instinct | ||
| rocminfo | 1.0.0 | Linux · Instinct/Radeon/Ryzen |
ROCm component changelogs#
The following sections describe key changes to ROCm Core SDK components.
Note
For a historical overview of ROCm component updates, see the ROCm consolidated changelog.
AMD SMI (27.0.0)#
Changed#
Bumped the library major version to 27.0.0 (breaking).
The shared library SONAME is now
libamd_smi.so.27. Consumers linked againstlibamd_smi.so.26must relink; no source changes are required beyond the API changes listed elsewhere in this release.
Restructured AMD SMI C++ tests into unit and functional suites.
The
amdsmitstsource tree now separates unit tests from hardware-backed functional tests undertests/amd_smi_test/unit/andtests/amd_smi_test/functional/.GTest suite names now follow a
<Component><Type>[<Operation>]scheme: functional tests are<Component>FunctionalReadOnly/<Component>FunctionalReadWrite(e.g.GpuFunctionalReadOnly) and unit tests are<Component>Unit(e.g.GpuUnit). This replaces the oldamdsmitstReadOnly/amdsmitstReadWriteandAmdSmiDynamicMetricTestnames.Consumers that pass explicit
--gtest_filtervalues should update those filters to the new suite names.See the AMD SMI test design for the suite naming convention and
--gtest_filterusage.
Optimized#
Optimized
amdsmi_get_gpu_process_list()to skip redundant KFD topology discovery.The per-process KFD lookup rebuilt the entire KFD node topology (an expensive sysfs walk) on every call just to translate the device BDF into its KFD GPU id.
The caller already knows this value, so it is now passed through to
gpuvsmi_get_pid_info(), eliminating one full topology discovery per process per refresh. Falls back to the original discovery path when the id is unavailable.
Resolved issues#
Fixed
amd-smi ras --cper --jsonemitting nothing when there are no CPER entries.The common no-entries case printed empty output, so consumers feeding stdout to
json.loadsfailed withExpecting value: line 1 column 1 (char 0). The command now always emits exactly one valid JSON document:[]when there are no entries, or a single aggregated array across all GPUs when there are.--followmode stays silent until entries appear. The human-readable primary-partition warning is also suppressed in JSON mode so it no longer corrupts the output.
Fixed
amd-smi set --ptl-statussilently failing to change PTL state.The set path wrote
"1"/"0"to theptl/ptl_enablesysfs node, which only accepts"enabled"/"disabled"; the driver ignored the numeric write while the API still reported success. The state now changes as expected, and a rejected write returns a real error instead of a generic success.
Fixed
amd-smi processhiding compute processes owned by other users.A caller without permission to read another process’s
/proc/<pid>/fdwas misdetected as running in a separate PID namespace, which caused the whole compute-process list to come back empty. Such processes are now listed with a redacted (N/A) name instead of being dropped.
Fixed CU%/SDMA column alignment in the
amd-smiprocess table.The
SDMAheader no longer sits a column left of its values, and validCU %/SDMAvalues are no longer truncated.
Fixed compute processes being reported on every GPU.
A process was attributed to a GPU whenever it had a KFD context on that GPU, so a job with queues on a single GPU appeared under every GPU. Attribution now uses the process’s active KFD queues plus any GPU where it holds a non-zero VRAM allocation, so a process is listed only against the GPUs it actually uses.
Fixed
amd-smihanging inamdsmi_init()on UALink systems when the IFoE driver is unresponsive.amdsmi_init()(and every CLI command) opened a per-GPU IFoE/UALoE fabric session up front, so it blocked indefinitely when the Broadcom IFoE driver was unresponsive, even for queries that never use fabric data.The fabric session is now opened only on the first fabric query, so initialization and non-fabric queries no longer touch the IFoE driver.
Fixed ctypes
DeprecationWarningfromamdsmi_wrapper.pyon Python 3.14.Python 3.14 deprecates the implicit ctypes structure layout when
_pack_is set (slated to become an error in 3.19). Each packed structure/union in the generated wrapper now sets_layout_ = 'ms', preserving the existing MSVC-compatible layout (no ABI change) while silencing the warning.
Composable Kernel (1.2.0)#
Added#
Multiple D (bias) and large tensor support to the CK Tile quantized GEMM kernel for row-column quantization.
Changed#
Improved performance of row-column quantized a8w8 GEMM through better instruction scheduling in the eight-waves pipeline, wider epilogue stores, and nontemporal C/D memory access.
HIP (10.0.0)#
Added#
New HIP APIs
Stream Ordered Memory Allocator: support for API parity with corresponding CUDA API.
hipMemGetDefaultMemPoolreturns the default memory pool for the specified location and allocation type
Cooperative Groups scan functions are now supported, providing feature parity with CUDA.
cooperative_groups::exclusive_scanperforms an exclusive prefix scan across the threads in a cooperative group. For each thread, the result is computed from the values of all preceding threads using a binary operation (addition by default), excluding the current thread’s own value.cooperative_groups::inclusive_scanperforms an inclusive prefix scan across the threads in a cooperative group. For each thread, the result includes the current thread’s value in addition to the values of all preceding threads.
Stream capture support for the following APIs, enabling
BatchMemOpoperations to be captured as graph nodes instead of executing immediately. Also improvedBatchMemOpgraph replay reliability through fixes to parameter handling and operation ordering, aligning behavior more closely with CUDA.hipStreamWaitValue32hipStreamWaitValue64hipStreamWriteValue32hipStreamWriteValue64hipStreamBatchMemOp
Support Non-Uniform Memory Access (NUMA) in
hipMemCreaterelated APIs. HIP runtime added virtual memory support forhipMemLocationTypeHostNumaandhipMemLocationTypeHostNumaCurrentAPIs. This enables NUMA-aware memory allocations backed by host CPU NUMA pools and aligns HIP virtual memory management behavior with CUDA host and host-NUMA VMM expectations.
Optimized#
Improved
hipMemcpy2D()andhipMemcpy2DAsync()performance for copy operations with very small row widths and large row counts. Previously, non-4-byte-aligned row or slice pitches could cause the runtime to issue a separate copy for each row, resulting in significant performance degradation for workloads such as 1-byte-wide transfers with millions of rows. These transfers are now handled using a single shader-based copy operation, significantly reducing transfer times. Copy operations at or below the 256-row threshold are unchanged.Improved
hipEventRecordperformance by using thehipEventDisableTimingflag to avoid unnecessary profiling when timing information is not required. Event operations are now coalesced to eliminate redundant barrier submissions, reducing runtime overhead and improving execution efficiency.Improved batch copy performance: optimized
hipMemcpyBatchAsyncby splitting batch operations into per-device commands.Simplified
rocrCopyBufferBatchby using a singlesrc_agentper engine group (H2D, D2H, and D2D).Streamlined batch grouping:
Removed the
AgentGroup/src_agentmapping for D2D broadcasts.Processed
H2DandD2HLINEAR operations directly, bypassing the broadcast map.
Resolved issues#
Resolved library loading error messages thrown by
rocminfoduring driver initialization in WSL (Windows Subsystem for Linux) environment due to failure in loading the HSA runtime librarylibhsa-runtime64.sosince it is not available in the dynamic linker search path. Sincerocminfoalready links againstlibhsa-runtime64.so, the runtime now correctly locates and loads the HSA runtime library usingRTLD_NOLOADoption, enabling successful ROCm initialization, HSA agent discovery, and subsequent ROCm operations.Fixed a segmentation fault in HIP queue idle detection caused by referencing a recycled completion signal. Idle state is now derived from a queue-owned signal with a safe lifetime.
Resolved incorrect NaN handling in the ordered not-equal comparison intrinsics
__hne(for__half) and__hne(for__hip_bfloat16), along with their vector forms. Being ordered predicates, they now correctly returnfalsewhen either operand is NaN.Resolved memory-safety issues in the ROCm code object and ELF loader by adding validation checks during code object module loading, preventing segmentation faults and improving runtime stability.
Resolved a memory leak affecting mipmapped arrays when using
hipMemcpy2DToArraywith levels obtained viahipGetMipmappedArrayLevel. Mipmap level references are now properly released, ensuring that memory is correctly freed whenhipFreeMipmappedArrayis called.Fixed a deadlock that could occur when using ROCprofiler-sdk with ROCm-aware MVAPICH and MPICH. HIP runtime now performs profiler registration after dispatch table initialization, ensuring proper initialization ordering and guard release. This prevents hangs caused by reentrant initialization during profiler startup.
Fixed a deadlock caused by
hipMemMap/hipMemUnmapoperations on the null stream that could lead to hangs. The HIP runtime now implements proper synchronization to all devices with access to a mapped pointer before unmapping it.Fixed an issue in
cooperative_groups::reduce()that could cause incorrect results or kernel launch failures when block dimensions had .y or .z components not equal to 1.
hipBLAS (3.6.0)#
Added#
Per-batch
alpha/betasupport for Level 2 batched and strided-batched forms ofsymv,hemv,sbmvandspmvviahipblasSetBatchAlphaStrideand/orhipblasSetBatchBetaStride(device pointer mode).Per-batch
alphasupport for Level 2 batched and strided-batched forms ofsyrviahipblasSetBatchAlphaStride(device pointer mode).Per-batch
alpha(scalar vector) API support for Level 1 batched and strided-batched forms ofscaland the_exforms throughhipblasSetBatchAlphaStridewhenhipblasHandle_tis in modeHIPBLAS_POINTER_MODE_DEVICE.
Resolved issues#
PyTorch users can avoid user-constraint-based memory allocation failures (
HIPBLAS_STATUS_ALLOC_FAILED) by exportingHIPBLAS_WORKSPACE_CONFIG=:0:0to allow rocBLAS managed memory to grow automatically.
hipCUB (4.6.0)#
Added#
Feature parity with CCCL/CUB 3.0.0.
::hip::stdsupport.
Changed#
Changed
CCCL_MINIMUM_VERSIONto3.0.0to align with CUB.Add support for large num_items
DeviceMergeandDeviceSegmentedSort.Replace
#pragma unrollby_CCCL_PRAGMA_UNROLL_FULL()and_CCCL_PRAGMA_NOUNROLL()by_CCCL_PRAGMA_NOUNROLL().Add
_CCCL_SORT_MAYBE_UNROLL()in block merge sort and thread sort.Update
WarpExchangetemplate parameters for CUB compatibility.
Removed#
hipCUB compatibility with PyTorch v2.9 and v2.10 has been removed in this release. Use PyTorch v2.11 or later.
Removed
hipcub::BaseTraits::CATEGORY,hipcub::BaseTraits::nullptr_TYPEandhipcub::BaseTraits::PRIMITIVE.Removed
ConstantInputIterator,CountingInputIterator,DiscardOutputIteratorandTransformInputIterator, which were deprecated in hipCUB-4.1.0.Removed
DeviceSpmv, which was removed from CUB after CCCL’s 2.8.0 release. UsehipSPARSEorrocSPARSElibraries instead.Removed
GridBarrier.Removed
HIPCUB_MIN,HIPCUB_MAX,HIPCUB_QUOTIENT_FLOOR,HIPCUB_QUOTIENT_CEILING,HIPCUB_ROUND_UP_NEARESTandHIPCUB_ROUND_DOWN_NEARESTwhich were deprecated in hipCUB-4.1.0.Removed
LEGACY_PTX_ARCH.Removed
hipcub:maxandhipcub:min, which were deprecated. Usehip::std::maxandhip::std::mininstead.Deprecated
hipcub::Swap, userocprim::swapinstead.Deprecated
HIPCUB_IS_INT128_ENABLED, use_CCCL_HAS_INT128()instead.Deprecated
hipcub::Equality,hipcub::Inequality,hipcub::InequalityWrapper,hipcub::Sum,hipcub::Difference,hipcub::Division,hipcub::Maxandhipcub::Minoperators. Usehip::std::equal_to,hip::std::not_equal_to,hip::std::plus,hip::std::minus,hip::std::divides,hip::maximum, andhip::minimumoperators instead.
hipFFT (1.0.25)#
Changed#
Minor internal changes.
hipFile (0.4.0)#
Added#
A KFD-based alternative check for P2P DMA support was added to
ais-check. This inspects thecapabilityproperty under/sys/class/kfd/kfd/topology/nodes/*/properties.Guides for setting up storage targets to the documentation.
Changed#
ais-checknow lists the AIS-capable file system mounts detected on the system and fails if none are found.Fastpath-only tests are now automatically skipped on systems that do not support the AIS fastpath instead of failing. Running ctest in verbose mode (
ctest -V) will provide the reason the test was skipped.Updated INSTALL.md to point to official install docs.
hipSOLVER (3.6.0)#
Changed#
Minor internal changes.
hipSPARSE (4.7.0)#
Added#
Blocked ELL format support to the
hipsparseDenseToSparseroutine, along with the newhipsparseBlockedEllSetPointersfunction.The
HIPSPARSE_SPMV_CSR_ALG3algorithm tohipsparseSpMV, which exposes the rocSPARSE CSR nnz split algorithm (rocsparse_spmv_alg_csr_nnzsplit).CSC format support to
hipsparseSpSVandhipsparseSpSM.
Resolved issues#
Fixed an issue with
hipsparseSpMM, which produced incorrect results for the Blocked ELL sparse format.
MIOpen (3.6.0)#
Added#
Gfx950 (MI350X/MI355X) 7x7 depthwise forward and backward-data convolution support (fp16/bf16), fixing a slow fallback-to-naive-kernel regression in ConvNeXt-style depthwise convolutions.
Changed#
Restored gfx12x support in the Winograd Rage solver, recovering performance that regressed when earlier gfx12 support was reverted.
Refreshed the gfx1100, gfx1102, and gfx1201 (Navi) SystemDBs with updated tuned find/perf-database entries.
Refreshed the gfx950 SystemDB with additional tuned entries to cover more models.
Removed#
Removed the OpenCL (OCL) backend; MIOpen now supports the HIP backend only.
Resolved Issues#
Fixed an off-by-stride indexing bug in the backward CalcStats mean/variance remainder loop that caused a ~1% systematic bias in NCHW batch normalization backward results.
Fixed an integer overflow in tensor operation kernels for large allocations that could cause memory access faults.
Fixed a naive convolution solver failure mode where a global work size of 2^32 or more work-items silently failed to launch and left a stale HIP error visible after Find returned success; such launches are now rejected up front.
RCCL (2.30.7)#
Added#
Compatibility with NCCL 2.30.7.
Scalable AllGatherV pattern: grouped
ncclBroadcastcalls with distinct roots are fused into a single ring kernel, improving performance at large scale. Gated byNCCL_ALLGATHERV_ENABLE(default off).GPU-only multi-segment registration for symmetric memory windows, enabling contiguous VA ranges backed by multiple physical segments (single-node validated).
Elastic Buffer support for symmetric windows spanning device and host/
HOST_NUMAmemory segments (NCCL_ELASTIC_BUFFER_REGISTER,NCCL_SYM_REUSE_SYSMEM_HANDLES). Single-node path validated; multi-node registration remains limited pending HIP/HSA multi-segment DMA-BUF export support.
Changed#
Adapted the device-initiated GIN backends (Anvil SDMA and rocSHMEM GDA) to the NCCL 2.30.7 GIN API v14:
Added the new
getGinPropertieshost op.Dropped the data-path ops (
iput/iputSignal/iget/iflush/test) that moved out of GIN under the GIN/RMA split.Switched
createContexttoncclGinConfig_v14_t.Updated the device dispatch signatures, and matched the GIN type renumbering (
ROCSHMEM_GDAandANVIL_SDMAshifted after the newGIN_GPItype).The plugins now use the generic (unversioned)
ncclGin_t/ncclGinConfig_t/ncclGinProperties_ttypedefs so future ABI bumps do not require touching call sites.
Updated the ROCSHMEM GIN plugin registration to the v14 layout (corrected struct field names and the conditional that previously only compiled without ROCSHMEM GIN).
Adapted the InfiniBand transports (
net_ibandnet_ib_cast) to the v14 GIN/RMA split: the host/proxy backend is now registered as anncclRma_tvtable (RMA_IB_PROXY) that owns theiput/iputSignal/iget/iflush/testdata-path ops, with GIN layered on top through the genericncclGinProxy.
Known issues#
The improved AllGatherV support breaks the NCCL profiler support for ncclBroadcast operations, limiting visibility to API events.
NCCL_ALLGATHERV_ENABLE=0can be used as a workaround until it is fixed in a future release.Multi-node multi-segment and Elastic Buffer symmetric-window registration is not yet enabled; NET and LSA+GIN multi-segment paths depend on runtime support for exporting contiguous DMA-BUF handles across all physical segments.
rocBLAS (5.6.0)#
Added#
Per-batch
alpha/betasupport for Level 2 batched and strided-batchedsymv,hemv,sbmv, andspmvviarocblas_set_batch_alpha_strideandrocblas_set_batch_beta_stride(device pointer mode).Per-batch
alphasupport for Level 2 batched and strided-batchedsyrviarocblas_set_batch_alpha_stride(device pointer mode).Per-batch
alpha(scalar vector) API support for Level 1scal_batched,scal_strided_batched, and their_exforms throughrocblas_set_batch_alpha_stridewhenrocblas_handleis inrocblas_pointer_mode_device.Support custom build with CMake arguments
BUILD_WITH_HIPBLASLT_ONLY=ONthat bypasses legacy Tensile.
Upcoming changes#
Deprecated the
ROCBLAS_USE_HIPBLASLT_BATCHEDenvironment variable. Recent optimizations mean hipBLASLt no longer needs to be disabled for batched operations only. This environment variable is planned for removal in a future release.
rocDecode (1.9.0)#
Added#
Invalid video size handling for AVC/HEVC.
Resolved issues#
Fixed decode errors of some AVC interlaced container streams by adding support for the picture data packet from the demuxer which contains multiple pictures.
Corrected fake CTest passes.
rocFFT (1.0.39)#
Added#
Optional ROCm Communication Collectives Library (RCCL) backend for single-node multi-GPU communication, enabled via
-DROCFFT_RCCL_ENABLE=ON.
Changed#
Relaxed the usage requirements for
rocfft_setupandrocfft_cleanup.Removed the ROCFFT_RTC_PROCESS_HELPER debug environment variable.
Optimized#
Improved performance of unit-strided, interleaved, real-to-complex FFTs on gfx1201, gfx90a, gfx942, and gfx950 for the following lengths:
(100,100,100)
(192,96,96)
(200,96,96)
(128,128,256)
(160,168,168)
(160,168,192)
(168,168,192)
(168,192,192)
(192,192,192)
(192,192,200)
(192,200,200)
(200,200,200)
(216,216,216)
(216,104,100)
(216,104,104)
(224,104,104)
(224,108,104)
(224,108,108)
Resolved issues#
Addressed internal issues causing multi-device plans to fall back to the least-performant code path for certain 3D real transforms (e.g., multi-device single-precision real out-of-place 3D of size 320x320x320 using slab decomposition).
Fixed a thread-safety issue that could cause
rocfft_plan_createto crash when called concurrently from many threads.
ROCgdb (16.3)#
Added#
The address space operator
#is recognized in Fortran programs too. This allows evaluating expressions likeprivate_lane#0x08in Fortran applications that offload kernels to an AMD GPU.
rocJPEG (1.7.0)#
Added#
rocJpegDecodeAsyncandrocJpegDecodeSyncAPIs to support asynchronous single-image JPEG decoding, allowing decode submission and completion to be separated across threads for improved pipeline throughput.
ROCm Compute Profiler (3.8.0)#
Added#
--pc-sampling-rowsanalyze option to cap the PC sampling table at the top N rows (default 10); set0to show all. Must be non-negative.--overwriteprofile mode option to explicitly allow replacing existing workload output.Experimental Triton support to ML API tracing. Profile with
--experimental --triton-traceto emit a ROCTX marker per Triton/Inductor kernel launch attributed to the user call site, and analyze with--experimental --list-triton-operatorsor--experimental --triton-operator <pattern>to list or filter Triton operators independently of Torch.Support for GPU metrics on gfx1153 hardware.
Changed#
Split Python version requirements by mode. Profile mode now runs on Python 3.8+ (standard library only). Analyze mode requires Python 3.9+ and exits with a clear message on older interpreters instead of failing with an import error.
--pc-sampling-sorting-typenow defaults tocount(wasoffset), so the PC sampling table shows the most-sampled instructions first.Renamed the
Pct of Peak/PoPanalysis column toPercent of Peakin analysis output.--torch-tracenow wraps the tensor methodsto,cpu,cuda, andcontiguousby default. Previously these wraps were enabled by settingROCPROFCOMPUTE_ROCTX_DEEP_TENSOR_WRAPS=1. SetROCPROFCOMPUTE_ROCTX_DEEP_TENSOR_WRAPS=0(orfalse,no,off) to disable them.Renamed the torch-trace output files and directory from
torch_trace_*toml_api_trace_*.Profile mode now errors when the target workload directory is non-empty unless
--overwriteis passed.--bench-onlylikewise requires--overwritebefore replacing an existingroofline.csv.Renamed
num_hbm_channelstonum_memory_channelsin machine specifications to unify memory channel reporting across GPU families.
Removed#
Removed the multi-node analysis options
--nodes,--list-nodes(analyze mode) and the experimental--spatial-multiplexingoption (profile and analyze modes). These features did not work as expected and will be redesigned in a future release.
Optimized#
Improved GPU Benchmarking and Roofline profiling/analysis support for gfx1150/gfx1151/gfx1152 architectures.
gfx11xx supports Wave Matrix Multiply Accumulate (WMMA), replacing MFMA operations.
Resolved issues#
The Dual VALU (VOPD) instruction mix metric is now reported for gfx115x in the WGP panel.
Fixed multi-user roofline benchmarking on shared systems: the per-GPU lock file under
/tmp/rocprof-compute-benchmark/is now created world-readable/writable (0666) so any user can acquire it, regardless of which user created it first or the active umask. Stale unreadable lock files left by older versions in a sticky/tmpcannot be repaired automatically and must be removed manually by their owner or an administrator.Fixed CDNA memory chart CLI output to show the numbered
3. Memory Chartheader without repeating the default per-kernel normalization label.
Known issues#
Workloads profiled with earlier versions must be re-profiled before analysis. The sysinfo schema changed and older workload directories are not compatible.
CLI mode block 4 Roofline plot’s legend will not appear if there are too many kernels to list, in relation to the user’s terminal size. Same per-kernel roofline rate metrics and AI plot point details can be read in block 4’s preceding tables.
ROCm Systems Profiler (1.8.0)#
Added#
hipFile (GPU-direct storage) API tracing. Add
hipfile_apitoROCPROFSYS_ROCM_DOMAINS(shorthand:hipfile) to capture hipFile API traces. Requires ROCprofiler-SDK version 1.3.5 or later.--exe-onlyflag forrocprof-sys-instrument: shorthand for excluding every shared library from instrumentation, leaving only the main executable.--exclude-internal-lib-pathsflag forrocprof-sys-instrument: by default, each internal library is excluded only at the path linked at startup; when enabled, every on-disk path matching an internal library’s filename is excluded.--max-library-functionsoption forrocprof-sys-instrument: skips shared libraries whose procedure count exceeds the given threshold, keeping instrumentation overhead manageable. The target executable is never gated by this, and the check is bypassed by the module include/restrict (--module-include/-MI,--module-restrict/-MR) and function include/restrict (--function-include/-I,--function-restrict/-R) regexes.rocSHMEM host-stream API tracing via
ROCPROFSYS_ROCM_DOMAINS=rocshmem_api. ROCm Systems Profiler now captures the nine host-stream rocSHMEM API calls (putmem_on_stream,getmem_on_stream,putmem_signal_on_stream,signal_wait_until_on_stream,broadcastmem_on_stream,alltoallmem_on_stream,barrier_all_on_stream,sync_all_on_stream,quiet_on_stream) asrocm_rocshmem_apispans in Perfetto traces and rocpd databases. Requires rocprofiler-sdk >= 1.3.4 and rocSHMEM >= 3.6.0 (included in ROCm 10.0.0). As of rocSHMEM 3.6.0,USE_ROCPROFILER_REGISTERdefaults toON, so package installations automatically include this support. Arocshmemexample demonstrating two-PE usage of all nine APIs is included underexamples/rocshmem.
Changed#
ROCPROFSYS_BUILD_TESTINGno longer impliesROCPROFSYS_BUILD_EXAMPLES.Introduced the new
profiler-hubwriter backend for trace persistence, as a replacement for the existing SQLite3/rocpd backend.
Removed#
Removed the
-p/--pidoption fromrocprof-sys-instrumentfor attaching to an already running process. Use therocprof-sys-attachexecutable instead, which attaches to and profiles running processes via the ROCprofiler-SDKrocattachAPI.Removed
--parse-all-modulesfromrocprof-sys-instrument. The tool iterates through objects and modules to extract the functions by default.
rocPRIM (4.6.0)#
Added#
A parallel
device_topk, which finds the largest/smallest K elements from an input array of keys.A parallel
device_segmented_topk, which finds the largest/smallest K elements from segmented groups.device_topkanddevice_segmented_topkare now controlled by the CMake flagROCPRIM_ENABLE_TOPK. Set-DROCPRIM_ENABLE_TOPK=ONto enable these features.
Changed#
Combined and simplified separate assertion templates using
std::is_floating_point,rocprim::half, androcprim::bfloat16to userocprim::is_floating_point.
ROCprofiler-SDK (1.3.5)#
Added#
API:
rocSHMEM host-stream API interception for the rocSHMEM tracing domain introduced in 1.3.0:
rocshmem_putmem_on_stream,rocshmem_getmem_on_stream, androcshmem_alltoallmem_on_streamare intercepted and emitted as per-call trace records.Records are interleaved with HIP, HSA, RCCL, and other runtime traces so rocSHMEM communication activity can be viewed on the same timeline as GPU compute.
hipFile API tracing as a first-class tracing domain:
hipFile API calls are intercepted through dispatch-table wrapping and emitted as per-call trace records alongside HIP, HSA, and other runtime activity.
Enables file I/O operations to be correlated with GPU kernels and memory copies in a single profiling timeline.
Streaming Performance Monitor (SPM) counter data in the rocpd output format:
SPM records are stored as
rocpd_trackrows labelledSPM, with counter values grouped by timestamp intorocpd_samplerows and per-dimension data inrocpd_pmc_eventrows.The rocpd schema gains the
sample_id,xcc,shader_engine, andinstancecolumns.SPM data is consumable by any tool that reads the rocpd database and is convertible to CSV via
rocpd convert. Conversion to the other output formats, such as Perfetto and OTF2, is not yet supported.
rocprofv3 (CLI):
OpenMP (OMPT) tracing via the new
--ompt-traceflag:Accepts a bare boolean or a space-separated category list (
allthreadparalleltasksyncmutextargetdeviceerror), following the same style as--pmcand--output-format; for example,--ompt-trace parallel task target sync. Categories must be space-separated; comma-separated tokens are rejected. Also folded into--sys-trace/--runtime-trace.rocpd-only trace: records go to the rocpd database (the default output format) and are exported via
rocpd convert.The OMPT callback layer is already supported by ROCprofiler-SDK; this flag makes it accessible without writing a custom tool.
hipFile API tracing via the new
--hipfile-traceflag (or theROCPROF_HIPFILE_API_TRACEenvironment variable):Automatically included in
--runtime-traceand--sys-trace.Records are emitted across all supported output backends: CSV, JSON, Perfetto, OTF2, and rocpd.
Container-aware
rocattachsymbol resolution: attach entry points are resolved directly from the target process mapped ELF, and tool paths are validated from the target’s perspective before injection. This allows attaching from a host to a containerized process without manually copying.sofiles.
Changed#
Previously,
rocattachcalculated symbol offsets from the host’slibrocprofiler-register.soand applied them to the target’s mapping, which failed when the host and container libraries differ in ELF layout or path. Offsets are now resolved from the target process itself.Idle inline queues with no active profiling consumers now bypass queue interposition entirely, reducing overhead for applications that create queues but do not immediately dispatch work.
DWARF information is now parsed lazily, reducing startup overhead for attach and tracing sessions on large binaries.
Disabled autoflush in thread trace to prevent premature buffer flushes that produced incomplete or corrupted traces.
Bump rocpd schema to version 3.0.1 which supports NIC agent types.
Bump rocpd schema to version 3.0.2 for HIP graph per-node attribution (
graph_exec_id/graph_node_idcolumns onrocpd_kernel_dispatch/rocpd_memory_copyand the newrocpd_graph_launchtable). The pre-graph-attribution 3.0.1 schema is now frozen underversions/3.0.1/per the rocpd schema versioning scheme.Bump rocpd schema to version 3.0.3 for SPM support. The pre-spm-support 3.0.2 schema is now frozen under
versions/3.0.2/per the rocpd schema versioning scheme.
Removed#
Dependency on
libatomic. The library was previously linked unconditionally through therocprofiler-sdk-atomicinterface target, which caused link failures on toolchains and container images wherelibatomic1is not installed. The singlestd::atomicuse that required it has been replaced with explicit memory-ordering synchronization; behavior is unchanged.
Resolved issues#
A GPU stall in device thread trace that occurred when thread trace was started before
hsa_init().A counter-collection stall caused by an
InterceptQueueordering bug, and fixed an out-of-bounds write inSubmit().roctxMarkcalls propagating as kernel rename labels, which caused spurious kernel name changes in traces containing ROCTx markers.SQ aliasing on harvested WGPs and multi-counter desync on gfx11xx targets in AQLprofile, and corrected the
GcEaSeCounterBlockMaxEventvalue.A guard to prevent double-initialization of the PC sampling service.
rocprofv3attach sessions exiting before all buffered output was flushed; attach sessions now block until the flush completes.The ordering of code object callbacks during attach, which could race with tools that depend on ordered delivery.
The
fmt/format.hinclude path, thefpicflag for samples, OMP lookup in CI, and clang-tidy quickscan enablement.
Known issues#
SPM sessions can remain in a stale state after abrupt termination. See GitHub issue #6489 for details.
rocRAND (5.0.0)#
Removed#
Removed
h_scrambled_sobol(32|64)_constants,rocrand_h_scrambled_sobol(32|64)_direction_vectors,rocrand_h_sobol(32|64)_direction_vectorsfrom public namespace.
rocSHMEM (3.6.0)#
Added#
New APIs:
rocshmem_broadcast_waverocshmem_fcollect_waverocshmem_alltoall_waverocshmem_reduce_waverocshmem_reducescatter_wave
Support for some tile-granular collectives for the IPC backend:
rocshmem_tile_broadcastrocshmem_tile_broadcast_waverocshmem_tile_broadcast_wgrocshmem_ctx_tile_broadcastrocshmem_ctx_tile_broadcast_waverocshmem_ctx_tile_broadcast_wgrocshmem_tile_allgatherrocshmem_tile_allgather_waverocshmem_tile_allgather_wgrocshmem_ctx_tile_allgatherrocshmem_ctx_tile_allgather_waverocshmem_ctx_tile_allgather_wg
Single node support for gfx1250 / MI455X.
Support for HIP Fabric Handles.
Changed#
Dropped LLC dependency when compiling HSCO objects.
rocSOLVER (3.36.0)#
Added#
64-bit APIs for the symmetric/Hermitian eigensolvers:
SYEV_64 and HEEV_64 (with batched and strided_batched versions)
SYEVD_64 and HEEVD_64 (with batched and strided_batched versions)
Support added for the gfx1250 architecture.
Changed#
Clarified the
geblttrf_npvtAPI documentation to accurately describe the in-place LU block-factorization storage.
Known issues#
The 64-bit eigensolver APIs (SYEV_64, HEEV_64, SYEVD_64, HEEVD_64) require the matrix dimensions
nandldato fit within a 32-bit integer, because their internal tridiagonal reduction and back-transformation steps remain 32-bit.
rocSPARSE (5.0.0)#
Added#
Blocked ELL format support to the
rocsparse_dense_to_sparseroutine, including the newrocsparse_bell_set_pointersfunction to set the Blocked ELL array pointers.CSC format support to
rocsparse_spsvandrocsparse_sptrsv.CSC format support to
rocsparse_spsmandrocsparse_sptrsm.rocsparse_handle_createto create a handle associated with a user-provided stream. All internal device memory allocation and initialization are stream-ordered on that stream, so handle creation never blocks the calling thread or other GPU streams.rocsparse_handle_destroyto destroy a handle created byrocsparse_handle_create, with an optional error descriptor argument.
Changed#
rocsparse_spmmwith CSR/CSC and the default algorithm (rocsparse_spmm_alg_defaultorrocsparse_spmm_alg_csr) now automatically selects a load-balanced (nnz-split) kernel for strongly skewed matrices (those containing a single very long row for CSR, or column for transposed CSC). Behavior is unchanged for non-skewed matrices and for explicit algorithm choices (rocsparse_spmm_alg_csr_row_split,rocsparse_spmm_alg_csr_nnz_split,rocsparse_spmm_alg_csr_merge_path).
Removed#
The deprecated
rocsparse_indextype_u16enum.
Resolved issues#
Fixed an issue with
rocsparse_spmm, which produced incorrect results for the Blocked ELL sparse format.
Upcoming changes#
Deprecated the
rocsparse_spildlt0_input_diagenum value. It was used to dump the diagonalDof the ILDLT(0) factorization, which is now stored in-place on the diagonal entries of theLfactor. It will be removed in a future release.
rocThrust (4.6.0)#
Added#
Largely in feature parity with CCCL/thrust v3.0.3.
thrust::tuple,thrust::pairandthrust::zip_iteratorfall back to rocThrust 4.4.0 implementations when a libhipcxx counterpart corresponding to CCCL/libcudacxx >= v3.0.3 is unavailable.thrust::tupleandthrust::pair: some features may differ from CCCL/thrust v3.0.3.thrust::zip_iterator: some iterator concepts present in CCCL/thrust v3.0.3 are missing.
Removed#
rocThrust compatibility with PyTorch v2.9 and v2.10 has been removed in this release. Use PyTorch v2.11 or later.
ROCm breaking changes#
AMD SMI API and ABI changes#
The AMD SMI library introduced the following breaking changes in the 10.0.0 release: API-incompatible changes, which require source code changes before your code will compile, and ABI-incompatible changes, which require recompilation even if your code doesn’t change. It also deprecated several APIs and enums that remain functional in ROCm 10.0 but are scheduled for removal in a future release.
ABI-incompatible changes#
Library SONAME#
Change |
Impact |
|---|---|
The library major version is now 27.0.0, so the shared library SONAME is |
Consumers linked against |
amdsmi_gpu_metrics_t field type widening#
The following fields in amdsmi_gpu_metrics_t changed from uint32_t to uint64_t to support next generation AMD Instinct counter ranges:
gfx_activity_accmem_activity_accpcie_nak_sent_count_accpcie_nak_rcvd_count_accpcie_lc_perf_other_end_recovery
Recompile any code that reads these fields. Any assignments into fixed-width 32-bit variables must be updated to use 64-bit types.
API-incompatible changes#
The AMD SMI library removed or changed the following APIs, types, and defines in this release. Certain items have been removed with or without a replacement; see the following tables for details.
Removed APIs#
Removed |
Replacement |
|---|---|
|
No replacement. Reload the driver out of band with |
|
|
|
|
Removed Python output fields#
Removed |
Replacement |
|---|---|
|
|
Changed signatures#
API |
Change |
|---|---|
|
Returns |
Types#
Removed |
Replacement |
|---|---|
|
Moved inside |
|
|
Renamed defines#
Public preprocessor macros in amdsmi.h are now prefixed with AMDSMI_. The Python interface
constant MAX_NUMBER_OF_AFIDS_PER_RECORD is renamed to match.
Old name |
New name |
|---|---|
|
|
|
|
|
|
|
|
|
|
Removed defines#
These macros were unreferenced by any API or structure and have no replacement.
Removed |
|---|
|
|
|
|
|
|
|
|
|
|
AMD SMI deprecations#
These APIs and enums are still present in ROCm 10.0 and are slated for removal in a future release. The Python bindings emit a DeprecationWarning where applicable.
Deprecated APIs#
Deprecated |
Replacement |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Deprecated enums and enumerators#
The old names are retained as aliases with unchanged values and are slated for removal in a future release.
Deprecated |
Replacement |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
ROCm known issues#
ROCm known issues are noted on GitHub. These issues will be fixed in a future ROCm release. For known issues related to individual components, review the ROCm component changelogs.
HuggingFace model training throughput might regress on AMD Instinct MI350X#
HuggingFace model training workloads might see 9–25% lower training throughput on AMD Instinct MI350X (gfx950) GPUs, including BART, GPT-2, DiT (Diffusion Transformers), BERT, Llama 2 70B Chat, and RoBERTa-large. This occurs because AOTriton 0.13b selects a suboptimal flash-attention backward kernel instead of the faster 3-kernel split used in AOTriton 0.11.2b. As a workaround, rebuild PyTorch and pin AOTriton to version 0.11.2b.
JAX BERT FP16 training might encounter a segmentation fault on some Radeon GPUs#
JAX BERT FP16 training workloads might encounter a segmentation fault on some AMD Radeon graphics products, such as the Radeon PRO W7900, causing training to terminate unexpectedly. As a workaround, disable XLA GPU command buffers by setting the XLA_FLAGS="--xla_gpu_enable_command_buffer=" environment variable before launching the workload.
PyTorch training and fine-tuning workloads might experience GPU resets or crashes on some Radeon GPUs#
PyTorch training and fine-tuning workloads using Llama-Factory or Unsloth might experience GPU resets or application crashes on some AMD Radeon graphics products, such as the Radeon RX 9070 Series and Radeon AI PRO R9700. As a workaround, set the TORCH_BLAS_PREFER_HIPBLASLT=0 environment variable to disable hipBLASLt for training and fine-tuning workloads. This workaround might result in performance degradation.
SGLang inference might fail with the default AITER attention backend on some Radeon GPUs#
SGLang inference workloads using the default AITER attention backend might fail on some AMD Radeon graphics products, such as the Radeon PRO W7900, Radeon AI PRO R9700, and Radeon RX 9070 XT. As a workaround, configure SGLang to use the Triton attention backend (--attention-backend triton) or disable AITER:
export SGLANG_USE_AITER=0
export SGLANG_USE_AITER_AR=0
TensorFlow ROCm v2.21 might fail to start with a libhipsparse ImportError on some Radeon GPUs#
TensorFlow ROCm v2.21 workloads might fail to start with an ImportError: libhipsparse.so.4 on some AMD Radeon graphics products, such as Radeon AI PRO R9700, when ROCm is installed using pip packages. As a workaround, add $(hipconfig -R)/lib and $(hipconfig -R)/lib/rocm_sysdeps/lib to LD_LIBRARY_PATH before launching TensorFlow.
vLLM or ComfyUI workloads might crash on some Ryzen AI systems#
Intermittent segmentation faults or GPU hangs might be observed when running some vLLM or ComfyUI workloads on Ryzen AI systems using gfx1103 (RDNA3) GPUs.
ROCm resolved issues#
The following notable issues have been fixed in ROCm 10.0.0.
ASAN produced incorrect results with ternary operators on struct kernel arguments#
Previously, when compiling GPU kernels with ASAN enabled, ternary operators with struct kernel arguments could produce incorrect results, masking real bugs and producing false-positive results during memory-safety validation.
GPU kernels failed to launch in ASAN builds with large thread counts#
Previously, when building GPU libraries with ASAN enabled, kernels configured with large thread counts could fail to launch, returning the HSA_STATUS_ERROR_INVALID_ISA error.
Multi-target GPU builds produced larger binary sizes#
Previously, applications targeting multiple AMD GPU architectures could produce significantly larger binaries. Multi-target builds could increase binary size by up to 54%, and single-target builds added approximately 8 MB per GPU target.
HIP applications stalls on Windows during high-volume memory pool allocation and deallocation#
Previously, HIP applications on Windows that performed many memory pool allocation and deallocation cycles could stall indefinitely while waiting for a memory-mapping operation to complete on the GPU. This was most commonly observed while running the rocBLAS test suite on Windows.
ROCm upcoming changes#
Future releases will add support for:
Additional ROCm Core SDK components.
Domain-specific expansion toolkits (data science, life sciences, finance, simulation, and other HPC domains).
More AMD hardware support.