[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: