Releases: ROCm/aomp
AOMP Release 11.11-0
THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.
These are the release notes for AOMP_11.11-0. The source code base for this release is the upstream LLVM 11 monorepo release/11.x sources as October 6, 2020 with hash value 176249bd6732a8044d457092ed932768724a6f06
-
Major fixes to internal clang math headers:
- This set of changes applies to clang internal headers to support OpenMP C, C++, and FORTRAN and for HIP C. This establishes consistency between NVPTX and AMDGCN offloading and between OpenMP, HIP, and CUDA. OpenMP uses function variants and header overlays to define device versions of functions. This causes clang LLVM IR codegen to mangled names of variants in both the definition and callsites of functions defined in the internal clang headers. These changes apply to headers found in the installation subdirectory lib/clang/11.0.0/include.
- These changes temporarily eliminates the use of the libm bitcode libraries for C and C++. Although math functions are now defined with internal clang headers, a bitcode library of the C functions defined in the headers is still built for FORTRAN toolchain linking because FORTRAN cannot use c math headers. This bitcode library is installed in lib/libdevice/libm-.bc. The source build of this bitcode library is done with the aomp-extras repository and the component built script build_extras.sh. In the future, we will introduce across the board changes to eliminate massive header files for math libraries and replace it with linking to bitcode libraries.
-
Usability updates:
- Add support for -gpubnames in Flang Driver
-
Performance updates:
- Runtime performance improvements for synchronous memory copy between host and device.
- Added a performant "integer to integer" pow function for c++ that does not convert to float.
-
Bug fixes:
- Fixed hostrpc cmake race condition in the build of openmp
- Add a fatal error if missing -Xopenmp-target or -march options when -fopenmp-targets is specified. However, we do forgive this requirement for offloading to host when there is only a single target and that target is the host.
- Fix a bug in InstructionSimplify pass where a compare of two constants of different sizes found in the optimization pass. This fixes issue #182 which was causing kokkos build failure.
- Fix openmp error message output for no_rocm_device_lib, was asserting.
- Changed linkage on constant per-kernel symbols from external to weaklinkageonly to prevent duplicate symbols when building kokkos.
-
New Feature:
- Added an example category for Kokkos. The Kokkos example makefile detects if Kokkos is installed and builds Kokkos from the web if not. See the script kokkos_build.sh in the bin directory for how we build Kokkos. Kokkos now builds cleanly with the OpenMP backend. However, only simple test cases are working.
-
Development changes:
- Switch branch naming scheme to aomp11. It was amd-stg-openmp. This change applies to repos amd-llvm-project, aomp-extras, and flang .
- Add environment variables ROCM_LLD_ARGS ROCM_LINK_ARGS ROCM_SELECT_ARGS to test driver options without compiler rebuild. This is not an upstream change.
-
Code reorganization in preparation for upstream:
- Rename libomptarget plugin from hsa to amdgpu following upstream.
- Merge hostrpc host and device library with libomptarget.
- Remove some memory management overhead in libomptarget plugin.
- Eliminate need for -lhostrpc during application link by merging with libomptarget.
- Remove multiple inessential differences from upstream across the toolchain.
-
Document Changes
- Moved prerequisites to independent file.
- Changed cmake instructions to recommend version 3.13.4.
AOMP Release 11.9-1
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 release/11.x sources as September 28, 2020 with hash value eb83b551d3eb08cf472fe6307fe3809a8005b2cc
The changes for this release of AOMP:
- Merge with stable LLVM 11
- Switch sources to ROCm 3.8.x branches, ROCr remained on 3.7.x as there were no source updates put in 3.8.
- Fixes for ompt lit tests
Known Issues
- Source Build: Race condition in the build of hostrpc in openmp, which may result in an empty libhostrpc.a. Rerun build_openmp.sh.
- ROCgdb does not work on gfx803.
- Barrier issue on gfx803 for generic kernels.
AOMP Release 11.9-0
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 release/11.x sources as August 18, 2020 with hash value 1e6907f09030b636054b1c7b01de36f281a61fa2
. The llvm-project branch used to build this release is aomp11. 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 release/11.x. The size of this patch XXXX lines in XXX files. These changes include support for flang driver, OMPD support and the hsa libomptarget plugin. Our goal is to reduce this with continued upstreaming activity.
The changes for this release of AOMP:
- Fix compiler warnings for build_project.sh and build_openmp.sh.
- Fix: [flang] The AOMP 11.7-1 Fortran compiler claims to support the -isystem flag, but ignores it.
- Fix: [flang] producing internal compiler error when character is used with KIND.
- Fix: [flang] openmp map clause on complex allocatable expressions !$omp target data map( chunk%tiles(1)%field%density0).
- DeviceRTL memory footprint has been reduced from ~2.3GB to ~770MB for AMDGCN target.
- Switch sources to ROCm 3.7.x branches.
- Fixed hash for raja to avoid build error in example.
- Workaround for red_bug_51 failing on gfx908.
- Switch to python3 for ompd and rocgdb.
- ROCdbgapi requires g++7 as a minimum.
- 16.04 build does not have the rocgdb debugger as the system only supports g++5.
- Now require cmake 3.13.4 to compile from source .
- Fix aompcc to accept file type cxx.
Known Issues
- ROCgdb does not work on gfx803.
- Barrier issue on gfx803 for generic kernels.
AOMP Release 11.8-0
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 release/11.x sources as August 18, 2020 with hash value
aabff0f7d564b22600b33731e0d78d2e70d060b4. 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 release/11.x which is currently at 32715 lines in 240 files. These changes include support for flang driver, OMPD support and the hsa libomptarget plugin. Our goal is to reduce this with continued upstreaming activity.
These are the major changes for this release of AOMP:
- Switch to the LLVM 11.x stable code base.
- OMPD updates for flang.
- To support debugging OpenMP, selected OpenMP runtime sources are included in lib-debug/src/openmp. The ROCgdb debugger will find these automatically.
- Threadsafe hsa plugin for libomptarget.
- Updates to support device libraries.
- Openmpi configure issue with real16 resolved.
- DeviceRTL memory use is now independent of number of openmp binaries.
- Startup latency on first kernel launch reduced by order of magnitude.
These are the known issues with this release
- Further reductions in memory use by DeviceRTL required
AOMP Release 11.7-1
THIS IS AN OLD RELEASE. DO NOT DOWNLOAD. PLEASE DOWNLOAD THE LATEST RELEASE.
This release has new package dependencies when building from source. Please check
https://github.com/ROCm-Developer-Tools/aomp/blob/amd-stg-openmp/docs/SOURCEINSTALL.md
The source code base for this release is the upstream LLVM 11 monorepo development sources as July 10, 2020 with hash valued 979c5023d3f0656cf51bd645936f52acd62b0333 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 34121 lines in 277 files. Our goal is to reduce this with continued upstreaming activity.
- Inclusion of OMPD support which is not yet upstream
- Build of ROCgdb
- Host runtime optimisation. GPU image information is now mostly read on the host instead of from the GPU.
- Fixed the source build scripts so that building from the source tarball does not fail because of missing test directories. This fixes issue #116.
Known Issues:
- Hip example device_lib fails to compile
AOMP Release 11.7-0
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 25, 2020 with hash valued 4c6548222b3c41d024581d28f42b3f02510bcfe3. 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 33409 lines in 303 files. Our goal is to reduce this with continued upstreaming activity.
- Switched to default OpenMP 5.0
- Merge of llvm trunk as of June 25
- Dropped support for 16.04 due to ROCm components requiring a newer gcc that is not supported.
- Known Issues:
-Hip example device_lib fails to compile
AOMP Release 11.6-2
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
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
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
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