This document contains the release notes for the Code Object Manager (Comgr), part of the ROCm Software Stack, release v4.0. Here we describe the status of Comgr, including major improvements from the previous release and new feature
These are in-progress notes for the upcoming Comgr v4.0 release. Release notes for previous releases can be found in docs/historical.
These changes are ones which we think may surprise users when upgrading to Comgr v4.0 because of the opportunity they pose for disruption to existing code bases.
- Added a Comgr Caching infrastructure, currently covering the following
behaviors:
- caching unbundling of compressed clang offload bundles
- caching SPIR-V to LLVM IR translations
- caching clang driver invocations More information about the Comgr Caching infrastructure and how to use it can be found in amd/comgr/README.md.
- Updated the license used for Comgr from Illinois to Apache 2.0 with LLVM Extensions (the same license used by LLVM).
- Added Image Support to Comgr's handling of ISA metadata. Support for images can now be queried with Comgr's metadata APIs.
- Added support for linking device library files through the use of a Virtual File System (VFS).
- Added embedded libc++ headers for HIPRTC standard C++ support. A subset of
freestanding-safe headers (
<type_traits>,<tuple>,<cstdint>, etc.) are embedded at build time and mapped to clang's default include locations via VFS at runtime. The embedded headers are configured as a fallback (-idirafter), so system C++ headers take priority when available. Can be disabled with-DCOMGR_EMBED_LIBCXX_HEADERS=OFF.
- amd_comgr_info_set_vfs_() (v3.1)
- By setting this ActionInfo property, users can explicitly dictate if device libraries should be linked using the real file system or a Virtual File System (VFS).
- The following Comgr metadata API has removed support for V2/V3 Code Objects:
- amd_comgr_lookup_code_object() This API still supports Code Objects V4 and later.
- AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE
- AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE
- AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE
- Removed HIP_PATH and ROCM_PATH environment variables. These were used for now-removed Comgr actions, such as *COMPILE_SOURCE_TO_FATBIN.
- Added a new Comgr LIT testing infrastructure, which can be found in amd/comgr/test-lit. This will allow us to write more in-depth and targeted tests.
- Added support for source-based code coverage. See README.md for more details.
- Several Comgr actions currently write and read files from the filesystem, which is a known performance issue. We aim to address this by improving clang's virtual file system support
- Several Comgr actions currently fork new processes for compilation actions. We aim to address this by librayizing llvm tools that are currently only useable as a separate process.