Skip to content

Releases: ROCm/aomp

rocm-6.1.0

16 Apr 19:49
Compare
Choose a tag to compare

ROCm release v6.1.0

AOMP Release 19.0-0

21 Mar 15:20
Compare
Choose a tag to compare

These are the release notes for AOMP 19.0-0. AOMP uses AMD developer modifications to the upstream LLVM development trunk. These differences are managed in a branch called the "amd-staging". This branch is found in a mirror of upstream LLVM found at https://github.com/ROCm/llvm-project. The amd-staging branch is constantly changing as it merges the upstream development trunk with its downstream development updates. The AMD modifications are experimental and/or/while contributions under review for the upstream trunk. AOMP uses a snapshot of amd-staging at the commit ids and dates listed below. AOMP also includes builds of related ROCm components. We call AOMP a "standalone" build as it does not use or require ROCm with the exception of the kernel module (dkms) and libdrm which are often part of the Linux distribution. AOMP is isolated from any ROCm installations by installing into /usr/lib/aomp and the use of RPATH for runtime libraries.

For AOMP 19.0-0, the last trunk commit is 601e102bdb55e12a2f791e0d68fd6f81ffc21e21 on March 17, 2024. The last amd-only commit is a3c2cd57a6f99709d61d35d17527c84d1af0c780 on March 16, 2024. These commits forms a frozen branch now called "aomp-19.0-0". See https://github.com/ROCm/llvm-project/tree/aomp-19.0-0.

The integrated ROCm components for this AOMP release were built with ROCM 6.0.2 sources.
This is the 1st AOMP release based on LLVM 19 development.

These are the changes since AOMP 18.0-1:

  • Now use ROCM 6.0.2 sources for non compiler components.
  • Default to not use multiple SDMA engines. This could be changed for testing by setting:
    LIBOMPTARGET_AMDGPU_USE_MULTIPLE_SDMA_ENGINES=true
  • Updates to gpurun utility
    • uses preset HSA_CU_MASK and ROCR_VISIBLE_DEVICES.
  • OpenMP lit testing pre-install, 100% pass rate.
  • [Perf] Implement the loop directive as used in the metadirective for spec.
  • Support for testing QMCpack NiO performance.
  • ROCgdb support for gfx1103.
  • Circumvented driver timing issue with complex signal chains. Post kernel copies occasionally started before kernel completion. The temporary fix forces the wait for kernel completion before scheduling post-kernel copies. For testing purposes, this behavior could be reverted by setting LIBOMPTARGET_SYNC_COPY_BACK=false

Fix regressions:
#616 llvm-addr2line does not work on AOMP-generated binary.

Known Failures:

  • Smoke
    • targetid_multi_image
    • get_mapped_ptr

rocm-6.0.2

31 Jan 19:36
Compare
Choose a tag to compare

ROCm release v6.0.2

AOMP Release 18.0-1

15 Jan 21:11
Compare
Choose a tag to compare

These are the release notes for AOMP 18.0-1. AOMP uses AMD developer modifications to the upstream LLVM development trunk. These differences are managed in a branch called the "amd-stg-open". This branch is found in a mirror of upstream LLVM found at https://github.com/RadeonOpenCompute/llvm-project. The amd-stg-open branch is constantly changing as AMD merges upstream development trunk with its internal open development efforts. The AMD modifications are experimental and/or/while contributions under review for the upstream trunk. AOMP uses a snapshot of amd-stg-open at the commit ids and dates listed below. AOMP also includes builds of related ROCm components. We call AOMP a "standalone" build as it does not use or require ROCm with the exception of the kernel module (dkms) and libdrm which are often part of the Linux distribution. AOMP is isolated from any ROCm installations by installing into /usr/lib/aomp and the use of RPATH for runtime libraries.

For AOMP 18.0-1, the last trunk commit is 5f71aa9270c3d680babfbc6e766773d113c2a79a on January 9, 2023. The last amd-only commit is 71a82c97d882bfece529db41130ef7aaf9696a6e on January 9, 2023 . These commits forms a frozen branch now called "aomp-18.0-1". See https://github.com/RadeonOpenCompute/llvm-project/tree/aomp-18.0-1.

The integrated ROCm components for this AOMP release were built with ROCM 6.0 sources.
This is the 2nd AOMP release based on LLVM 18 development.

These are the changes since AOMP 18.0-0:

  • Move to ROCm 6.0 sources.

  • Python 3.8 minimum required for building of ompd.

  • Change the default optimization level to -O2 if user does not specify any -O option on the command line. Before 18.0-1, the default was -O0 if none was specified.

  • In this release we are requesting users to install the amdgpu kernel driver found in the ROCm 6.0 amdgpu-dkms package. Nothing prevents the use of an older driver, but for support with current and new problems, we ask users to upgrade to this kernel driver. Run this command to test that your amdgpu kernel driver is on the correct version "modinfo -F version amdgpu". That command should return the string "6.3.6".

  • Remove dependency on ROCm libraries for rocgdb. Reminder: A goal of aomp is to be isolated from ROCm stack with the exception of rocm-dkms which installs the correct kernel driver.

    • The following issues were resolved in this release:
      • #601 AOMP 17.0.3 crashes at compile time with conjunction in if clause
  • While the source build of aomp, supports ASAN (address sanitizer), the release build does not due to complexities in packaging asan. Therefore, the aomp release does not support ASAN.

  • This release has many build enhancements meant for developers that build aomp from source. These changes have little impact to user of AOMP.

    • The build scripts for this release now build openmp host and device libraries using LLVM_ENABLE_RUNTIMES=openmp with the COMPONENT build_project.sh. This was formerly done in the COMPONENT build_openmp.sh. This change allows lit testing of openmp. Extra libraries found in lib-debug and lib-perf directories are still build with the COMPONENT build_openmp.sh. ROCm-device-libs are also built as an external llvm project, which was formerly done by build_libdevice.sh.
    • Developers can now use ccache to speed rebuild process. The use of ccache is the default. To turn this off set AOMP_USE_CCACHE=0.
    • The build scripts have added a hidden directory in the installation called .aomp_component_stats showing the files added to the installation by each build COMPONENT. The current list of build COMPONENTs for AOMP are: prereq project roct rocr openmp extras comgr rocminfo flang-legacy pgmath flang flang_runtime hipcc hipamd rocdbgapi rocgdb roctracer rocprofiler
    • Changes to build_supp.sh which builds prequisite and supplemental components needed for the build and/or testing include: change to version 6.0 for of hsa-amd-aqlprofile, update wget location of silo tarball, change to version 6.0.x for rocmsmilib.
    • Build optimizations to reduce the size of the installation. Previously release binaries had llvm libraries statically linked in. We are no linking in the shared library build of llvm, and this reduces overall size by ~ 50%.
    • Changes to the build of libomptarget DeviceRTL to be code object version agnostic. These changes reduce the amount of files installed on to one per architecture for the opaque-linker + the fat archive for the linker wrapper as well as improve build time for the libraries.
  • The following enhancements were made to the AOMP test infrastructure:

    • Support for openmp lit testing.
    • New testing of UMT.
    • babelstream updates to support USM.
    • babelstream updates to support FORTRAN babelstream.

rocm-6.0.0

15 Dec 17:44
Compare
Choose a tag to compare

ROCm release v6.0.0

rocm-5.7.1

13 Oct 19:18
Compare
Choose a tag to compare

ROCm release v5.7.1

rocm-5.7.0

15 Sep 17:32
Compare
Choose a tag to compare

ROCm release v5.7.0

AOMP Release 18.0-0

12 Sep 19:32
Compare
Choose a tag to compare

These are the release notes for AOMP 18.0-0. AOMP uses AMD developer modifications to the upstream LLVM development trunk. These differences are managed in a branch called the "amd-stg-open". This branch is found in a mirror of upstream LLVM found at https://github.com/RadeonOpenCompute/llvm-project. The amd-stg-open branch is constantly changing as AMD merges upstream development trunk with its internal open development efforts. The AMD modifications are experimental and/or/while contributions under review for the upstream trunk. AOMP uses a snapshot of amd-stg-open at the commit ids and dates listed below. AOMP also includes builds of related ROCm components. We call AOMP a "standalone" build as it does not use or require ROCm with the exception of the kernel module (dkms) and libdrm which are often part of the Linux distribution. AOMP is isolated from any ROCm installations by installing into /usr/lib/aomp and the use of RPATH for runtime libraries.

For AOMP 18.0-0, the last trunk commit is c3b979e6512b00a5bd9c3e0d4ed986cf500630 on Sept 8, 2023. The last amd-only commit is def7057717b5098f6a9f773fc6e7b2a7f59cdd50 on Sept 11, 2023 . These commits forms a frozen branch now called "aomp-18.0-0". See https://github.com/RadeonOpenCompute/llvm-project/tree/aomp-18.0-0.

The integrated ROCm components for this AOMP release were built with ROCM 5.6.1 sources.
This is the 1st AOMP release based on LLVM 18 development.

The changes from 17.0-3 to 18.0-0 include:

  • New driver default (opaque offload linker)
    • This driver uses clang-offload-packager to create and extract heterogeneous objects.
    • For amdgpu, the final link phase steps through a series of commands instead of making a single call to clang-linker-wrapper. clang-linker-wrapper obscures the process of linking and embedding offload and host objects. To use clang-linker-wrapper, use command line option --no-opaque-offload-linker.
    • Fix support for multi-arch.
    • Optimizations to remove initial hostexec malloc.
    • This driver uses clang-offload-packager to build and extract heterogeneous objects.
  • Zero copy support for MI300A.
  • Fixed data_share2 smoke test regression.
  • Fix new DeviceRTL schedule clause intermittent fail.
  • Support HIP bundles.
  • Upstream convergence (3490 lines removed)
    • Remove old plugin code.
    • Remove the hostRPC code.
    • DeviceRTL cleanup - Synchronized threads
  • Set default OpenMP to 5.1.
  • Restore safe buffer usage warnings for MIOpen GTest.
  • Fix build to use LLVM-project mono-repo components, ROCm devicelibs and comgr.

Errata:

  • smoke tests flang-272343-3 and flang-299043 get seg faults, both have PARALLEL DO with ENTER MAP and EXIT MAP
  • fprintf intermittent fails (~15%) when writing to open file descriptor, no problems with fprintf to stderr.
  • The non-default option --no-opaque-offload-linker often fails because of problems with clang-linker-wrapper.

rocm-5.6.1

29 Aug 20:06
Compare
Choose a tag to compare

ROCm release v5.6.1

AOMP Release 17.0-3

17 Jul 23:39
Compare
Choose a tag to compare

These are the release notes for AOMP 17.0-3. AOMP uses AMD developer modifications to the upstream LLVM development trunk. These differences are managed in a branch called the "amd-stg-open". This branch is found in a mirror of upstream LLVM found at https://github.com/RadeonOpenCompute/llvm-project. The amd-stg-open branch is constantly changing as AMD merges upstream development trunk with its internal open development efforts. The AMD modifications are experimental and/or/while contributions under review for the upstream trunk. AOMP uses a snapshot of amd-stg-open at the commit ids and dates listed below. AOMP also includes builds of related ROCm components. We call AOMP a "standalone" build as it does not use or require ROCm with the exception of the kernel module (dkms) and libdrm which are often part of the Linux distribution. AOMP is isolated from any ROCm installations by installing into /usr/lib/aomp and its use of RPATH on runtime libraries.

For AOMP 17.0-3, the last trunk commit is ec6b40ab9b577e6e9bf000ccd19d85a9753b6ca8 on JULY 13, 2023. The last amd-only commit is f959ea5d8d1e5aef4b6d06727a9698316d3d33cd on JULY 14, 2023 . These commits form a frozen branch now called "aomp-17.0-3". See https://github.com/RadeonOpenCompute/llvm-project/tree/aomp-17.0-3.

The integrated ROCm components for this AOMP release were built with ROCM 5.6.0 sources.
This is the 4th AOMP release based on LLVM 17 development.
The changes from 17.0-2 to 17.0-3 include:

  • Non-compiler components are built with ROCm 5.6.0 sources
  • Support code object version 5. The libomptarget device library is now generated for both code object version 4 and code object version 5.
  • flang is no longer a symbolic link to clang. A new binary called flang-legacy has the driver support for flang. This is because the clang driver support for flang is going away. The new driver binary is called flang-legacy which uses a frozen set of driver support from ROCm 5.6 now found in the flang repository.
  • Enabled Big Jump Loop by default.
  • Improved target teams loop transform.
  • Removed the link from flang to clang. Replace it with flang-legacy.
  • Implemented dynamic LDS accesses from non-kernel functions.
  • Performance improvements for small kernels via lazy HSA queue creation and tracking of busy queues.
  • Restored GPU_MAX_HW_QUEUES in AMDGPU nextgen plugin.
  • Extended environment variable ompx_apu_maps to MI200.
  • Added --archive to the clang-offload-packager which repackages the extracted files into a new static library. This allows a fat binary static library to become a static library for a single architecture.
  • Disabled PIE in llvm until build issues in centos and sles are resolved.

Errata:

  • Bug in hip 5.6.0 sources when using code object v5 and -O0 causes program to crash.
  • flang compilations require -fPIC (need fix in flang-legacy for 17.0-4)
  • Smoke test failures
    fprintf (non-deterministic)
    complex_reduction (non-deterministic)
    schedule (non-deterministic)
    flang-274983
    flang-274983-2
    xteamr