ROCm 6.0 Release
Howdy folks,
ROCm 6.0 was released today. The headline feature in this release is
support for MI300 hardware. Compiler support for MI300 was merged into
LLVM a while ago, so it is already included in LLVM 17.
The upstream AMD binaries are built for gfx940, gfx941 and gfx942. There
may be some early MI300 engineering samples that are gfx940 or gfx941,
but all retail MI300 hardware is gfx942. When updating packages to ROCm
6.0, I would recommend that Debian maintainers add gfx942 to the
AMDGPU_TARGETS, but I see no reason to enable gfx940 or gfx941.
There are a number of ABI-breaking changes in ROCm 6.0. I don't have the
full list, but at least rocm-hipamd, rocblas, hipblas, and rocsparse
will need to go through NEW when being updated to this release. We will
also need to split hiprand into its own source package, separate from
rocrand.
There are also some subtle behaviour changes as a part of that ABI
breakage. In particular, the behaviour of hipGetLastError has changed to
match cudaGetLastError. Prior to ROCm 6.0, it always returned the status
of the most recent HIP API call, but in ROCm 6.0 and later it will
return the status of the most recent HIP API call that failed.
One other feature I'm excited about is support for AddressSanitizer in
device code. This feature is in beta. It requires Heterogeneous Memory
Management (HMM) and xnack enabled, so AMD is only testing it on MI200
and MI300. Nevertheless, ASAN is something I missed greatly when I moved
from writing C++ to HIP, and I'm thrilled I will have this tool for
writing GPU code.
The release notes [1] and changelog [2] provide a more thorough
description of what's new in ROCm 6.0.
Sincerely,
Cory Bloor
[1]: https://rocm.docs.amd.com/en/docs-6.0.0/about/release-notes.html
[2]: https://rocm.docs.amd.com/en/docs-6.0.0/about/CHANGELOG.html
Reply to: