Skip to content

Releases: ROCm/aomp

AOMP Release 11.6-2

30 Jun 20:55
Compare
Choose a tag to compare
AOMP Release 11.6-2 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release is the upstream LLVM 11 monorepo development sources as June 5, 2020 with hash valued e429cffd4f228f70c1d9df0e5d77c08590dd9766 . The amd-llvm-project branch used to build this release is amd-stg-openmp. In addition to complete source tarball, the artifacts of this release includes the file llvm-project.patch. This file shows the delta from the llvm-project upstream trunk which is currently at 33755 lines in 283 files. Our goal is to reduce this with continued upstreaming activity.

These are the changes since AOMP 11.6-1

  • Enabled OpenMP 5.0 by default, use -fopenmp-version=45 to enable OpenMP 4.5 compliance.
  • Restructuring to prepare for upstream and inclusion to ROCm compiler
  • Fix issue #114 fix bitcode search path using hip policy HIP_DEVICE_LIB_PATH and hip-devic-lib command line option
    turn on global_free for kmpc_impl_free
  • Significant cleanup and restructuring of hostrpc including:
    Get rid of hostcall register functions. Replace with handlePayload(service, payload). handlPayload has a simple switch to call the correct service handler function.
    Get rid of WITH_HSA macro. It is always on.
    Move the hostrpc stubs and host fallback functions into a single library and include file. It also makes the stubs openmp cpp source instead of hip and reorganizes everything in the directory openmp/libomptarget/hostrpc.
    Move hostrpc_invoke.cl into DeviceRTLs/amdgcn because it is arch specific.
    Generalize the vargs processing in printf to work for any vargs function that we want to execute on the host, including a vargs function that uses a function pointer.
    Reorganize files, add global_allocate and global_free, and fix some compile warnings.
    Fix llvm TypeID enum to match current upstream llvm TypeID.
  • Moved strlen_max function inside the declare target #ifdef _DEVICE_GPU in hostrpc.cpp to resolve linker failure seen in pfspecifier_str smoke test.
  • Fixed AOMP_GIT_CHECK_BRANCH in aomp_common_vars to not block builds in Red Hat if repo is on a specific commit hash.
  • Simplify and reduce size of openmp host runtime

Author: jsjodin jan_sjodin@yahoo.com
Date: Mon Jun 29 14:17:33 2020 -0400
Skip empty modules to avoid linker warning. (#89)

Author: jsjodin jan_sjodin@yahoo.com
Date: Mon Jun 29 13:04:24 2020 -0400

Merge pull request #88 from ROCm-Developer-Tools/jsjodin_ob

Merge unbundle archive code into offload bundler.

Author: jsjodin jan_sjodin@yahoo.com
Date: Mon Jun 29 12:48:42 2020 -0400

Merge pull request #87 from ROCm-Developer-Tools/jsjodin_llvm_link1

Cleanup done for upstreaming.

Author: Jan Sjodin jan_sjodin@yahoo.com
Date: Thu Jun 25 14:47:51 2020 -0400

Merge unbundle archive code into offload bundler.

Author: Jan Sjodin jan_sjodin@yahoo.com
Date: Thu Jun 25 13:39:34 2020 -0400

Cleanup done for upstreaming.

Author: Jon Chesterfield jonathanchesterfield@gmail.com
Date: Wed Jun 24 02:49:39 2020 +0100

Remove most of cpu task and some other unused code

Author: Jon Chesterfield jonathanchesterfield@gmail.com
Date: Tue Jun 23 17:27:55 2020 +0100

Ignore environment variable ATMI_DEPENDENCY_SYNC_TYPE, unused by openmp

Author: Jon Chesterfield jonathanchesterfield@gmail.com
Date: Tue Jun 23 17:18:39 2020 +0100

Delete unused DataTask

AOMP Release 11.6-1

11 Jun 23:29
Compare
Choose a tag to compare
AOMP Release 11.6-1 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release is the upstream LLVM 11 monorepo development sources as May 5, 2020 with hash valued db157d27337fcd13017051d125bf6e1439138da1. The amd-llvm-project branch used to build this release is amd-stg-openmp. In addition to complete source tarball, the artifacts of this release includes the file llvm-project.patch. This file shows the delta from the llvm-project upstream trunk which is currently at XXX lines in YYY files. Our goal is to reduce this with continued upstreaming activity.

These are the major changes in this release since AOMP 11.5-0

  • Upgraded to ROCm 3.5 HIP/ROCclr
  • Upgraded ROCt ROCr to 3.5 sources

AOMP Release 11.5-0

29 Apr 16:14
Compare
Choose a tag to compare
AOMP Release 11.5-0 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release is the upstream LLVM 11 monorepo development sources as of April 26, 2020 with hash value 1956a8a7cb79e94dbe073e36eba2d6b003f91046 . The amd-llvm-project branch used to build this release is amd-stg-openmp. In addition to complete source tarball, the artifacts of this release includes the file llvm-project.patch. This file shows the delta from the llvm-project upstream trunk which is currently at 30654 lines in 222 files. Our goal is to reduce this with continued upstreaming activity.

These are the major changes in this release since AOMP 11.0-1.

  • Start using month in the release number consistent with ROCM numbering. However the version will continue to use the LLVM version number.
  • merge a fork of atmi and hostcall into the libomptarget hsa plugin. This removes dependencies on these two external components and allows us to streamline the code for the openmp device plugin. Merging this code caused the trunk delta to go up significantly as we prepare to submit this plugin upstream.
  • improved solvv coverage 9/201 fails, 95% passing rate on amdgcn
  • AOMP supports -g compilation of C/C++ codes and will allow on target debugging. This is initial functionality.
  • hipcc now uses AOMP env variable to support installs not located in /usr/lib/aomp

AOMP Release 11.0-1

07 Apr 20:59
6594544
Compare
Choose a tag to compare
AOMP Release 11.0-1 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release is the upstream llvm monorepo development sources as of March 29, 2020 with hash value 4e0d9925d6a3561449bdd8def27fd3f3f1b3fb9f. The amd-llvm-project branch used to build this release is amd-stg-openmp. In addition to complete source tarball, the artifacts of this release includes the file llvm-project.patch. This file shows the delta from the llvm-project upstream trunk which is currently at 21602 lines in 182 files. Our goal is to reduce this with continued upstreaming activity.

There are significant changes since the last aomp release because this released is based off LLVM 11. AOMP will start using release numbers to coincide with LLVM release numbers.

The SLES-15-SP1 package is pending due to limited office access.

These are the major changes in this release

  • Rebase to LLVM 11 development trunk as the code base.
  • Switch from hip runtime built with hcc to new hip runtime built on top of ROCMclr.

Known issues

  • aompExtractRegion is not able to process executables built with this release due to the change in how offloaded images are embedded in the executable. Should be fixed in next release.
  • Issue #89 Linker error (The file was not recognized as a valid object file) when trying to link archive file on command line
  • Issue #92 hipcc fails when AOMP is not installed in /usr/lib/aomp
  • hipcc fails if ROCm is not installed, will be fixed next release

AOMP Release 0.7-7

13 Mar 18:55
Compare
Choose a tag to compare
AOMP Release 0.7-7 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release of AOMP is the clang/llvm 9.0 stable sources as of Oct 29, 2019. The llvm-project branch used to build this release is AOMP-200107. In addition to a complete source tarball, the artifacts of this release include the 2 patches. The file llvm-project.patch shows the delta from the stable branch release/9.x of llvm-project. The file flang.patch are the changes we made to the flang repository.

  • Additional updates to flang for offloading
  • Forced RPATH with --disable-new-dtags, added additional $ORIGIN/../lib to resolve lib-debug libraries in ROCm
  • ATMI hostcall optimization
  • Additional device runtime library cleanup in llvm-project
  • Implementation of omp_get_max_threads() now correctly returns the max number of threads for both SPMD and non-SPMD kernels
  • Added workaround in ATMI for certain processors with multiple numa nodes choosing the wrong pool number
  • Enabled fotran testing in run_sollve.sh
  • Added changes from rocmaster into master branch
  • Switch to ROCm 3.1 sources

AOMP Release 0.7-6

07 Jan 23:15
41b6772
Compare
Choose a tag to compare
AOMP Release 0.7-6 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release of AOMP is the clang/llvm 9.0 stable sources as of Oct 29, 2019. The llvm-project branch used to build this release is AOMP-191029. In addition to a complete source tarball, the artifacts of this release include the 2 patches. The file llvm-project.patch shows the delta from the stable branch release/9.x of llvm-project. The file flang.patch are the changes we made to the flang repository.

Here are the changes made in this release:

  • Switch to ROCm source for ROCM 3.0.
  • Build and install llvm component compiler-rt.
  • Created ppc64le debian package for ubuntu 1804
  • Fixed examples and tests to work for any CPU type by using "uname -p" command.
  • Added verification enhancements for openmpapps
  • Added changes from rocmaster into master branch
  • Increased default number of loaded kernels to 32 from 8, before needing env-var ATMI_MAX_KERNEL_TYPES=nnn to increase
  • Allow map on reduction if -fopenmp-version=50
  • Fortran target compiles add AOMP/include dir for module searches
  • Modified nested parallel to not use SafeMalloc and instead preallocate loop context memory.
  • Minor header changes in cloc.sh
  • Adjusted raja_build.sh to avoid use of indirect function calls
  • Added $ORIGIN to cmake rpath install in build scripts. This also makes the installation directory moveable. For example, one could move the compiler installation as follows "mv /usr/lib/aomp_0.7-6 /opt/rocm/aomp"
  • Added new patch system to allow for unmodified repos after build is complete
  • Added support for gfx908

AOMP Release 0.7-5

24 Oct 23:13
Compare
Choose a tag to compare
AOMP Release 0.7-5 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release of AOMP is the clang/llvm 9.0 stable sources as of Oct 8, 2019. The llvm-project branch used to build this release is AOMP-191008 which is now locked. In addition to a complete source tarball, the artifacts of this release include the 3 patches against the stable branch release/9.x of the mono-repo llvm-project.

Here are the changes made in this release.

  • Move to ROCm 2.9 sources
  • Updates to source build scripts to allow consistent patching to pristine ROCm source repositories.
  • The comgr is now patched to use the old method of getting section name for llvm-9. The current comgr code assumes llvm-10 so it needed this patch until aomp moves to llvm-10.
  • Backported clang support for f16 in builtins. This was needed to build ROCM 2.9 rocm-device-libs.
  • Simplify hostcall detection
  • Import non functional changes to deviceRTL from llvm master
  • libm SDL now added automatically by default
  • Added libm to the do not search for SDL list when linking user specified libraries during the clang-build-select-link step. This prevents a double linking of the device libm when -lm is used.
  • Split aomp test repositories to a separate directory.
  • Starting with this release, we will create an artifact tarball of the entire source tree. This tree includes a Makefile in the root directory used to build aomp from the release tarball. You can use spack to build AOMP from this source tarball or build manually without spack.
  • Instructions to build AOMP from the release source tarball have been added to the install documentation. These instructions include the manual build and build with spack.
  • Fixed HIP_DEVICE_COMPILE being active during host pass
  • Added RAJA example
  • Added initial -g (debug) support for target code. Can be used with the soon to be released rocm-gdb.
  • The upstream flang source code as of Oct 23, 2019 has been merged into this build. Some minor fixes were required. See the commits in AOMP-191023.
  • Added sollve_vv to the aomp-test repositories and a script called run_sollve.sh that patches the Makefile to skip fortran tests and patches bad tests that have map clauses for reduction variables.

AOMP Release 0.7-4

24 Oct 21:07
Compare
Choose a tag to compare
AOMP Release 0.7-4 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release of AOMP is the clang/llvm 9.0 stable sources as of September 9, 2019. The llvm-project branch used to build this release is AOMP-190918. The patches llvm.patch, openmp.patch, and clang.patch are the diffs from release/9.x to AOMP-190918.

These are the changes included in this release.

  • lld linkstep producing hsaco will now emit errors if undefined symbols are detected in the final image.

  • Removed hip automatic mode. Removes need for lib/Headers/cuda-open.

  • Added aompExtractRegion script which will disassemble the amd gpu kernel.

  • Fixed when a barrier in sequential code region which is handled by the master warp. The fix extends the "barrier handshaking" between the master warp and worker warps. These 5 new deviceRTL functinos begin with _kmpc_amd*. Only amdgcn uses these because nvptx uses a partial hardware barrier not availale in amdgcn.

  • Fixed reduction across teams. We still need to limit number of teams to a hard limit of 256.

  • Fix for hip detecting wrong version of code object, done with patch to ROCm 2.7 hip source code that is applied at build time. Patch will appear in ROCm 2.10

  • Fix build of rocminfo so rocminfo command finds the correct version of libhsa-runtime64.so

  • Fix to device math library in aomp extras

  • Fix to cloc.sh to support removal of hip automatic mode

  • Added support to build_aomp.sh to allow partial builds of AOMP components. Adding 'continue openmp' after calling the script will start the build process at the openmp component and continue to the end of the component list. Adding 'select libdevice extras' will only build the components specified.

  • The source tarball is just for testing on this release.

AOMP Release 0.7-3

24 Oct 18:20
Compare
Choose a tag to compare
AOMP Release 0.7-3 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release is the clang/llvm 9.0 development trunk as of August 2, 2019. These are the other changes included in this release.

  • Fix issue with user barrier in code causing master wavefront to unintentionally wake up and continue
  • Removed amdgcn_wave_barrier from named_sync and replaced with amdgcn_s_barrier

AOMP Release 0.7-2

09 Sep 17:46
Compare
Choose a tag to compare
AOMP Release 0.7-2 Pre-release
Pre-release

THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.

The source code base for this release is the clang/llvm 9.0 development trunk as of August 2, 2019. These are the other changes included in this release.

  • Fixed reduction not showing correct value on device. This was due to a full work group/block barrier being called by the worker threads which threw off synchronization between master warp and worker warps.
  • Fixed compilation errors on AOMP cloc examples