AOCL-BIY 5.2.1 Submodules Release
·
41 commits
to submodules
since this release
AOCL-BIY 5.2.1 Submodules Release Notes
Overview
This release introduces a major enhancement to AOCL-BIY with dynamic symbol renaming capabilities, enabling multi-version coexistence of AOCL libraries. It also includes important bug fixes, CMake configuration improvements, and updates to AOCL-LibM submodule to version 5.2.1.
Major Features
1. Symbol Renaming Feature
- New capability: Dynamic symbol renaming for AOCL libraries to prevent symbol conflicts when multiple versions coexist
- Custom prefix support: Configure with
AOCL_prefix or custom user-defined prefix - Case-aware renaming: UPPERCASE for Fortran symbols, lowercase for C symbols
- Post-install automation: Integrated CMake hook for automatic symbol renaming after installation
- New files added:
rename_symbols.py(1,122 lines) - Main renaming scriptcommands.txt(224 lines) - Command reference documentationtest/CMakeLists.txt(362 lines) - Testing frameworktest/test_aocl_symbols.c(1,598 lines) - Comprehensive symbol teststest/test_aocl_symbols.h(29 lines) - Test headertest/mix_libraries.F90(98 lines) - Fortran mixed library tests
2. ISA-Specific Optimization Support
- Added
AMD_CONFIGvariable for configuring ISA-specific library optimizations - Enables building libraries optimized for specific AMD processor generations
- Enhanced AOCL-LAPACK and AOCL-LibM build configurations to utilize ISA-specific optimizations
- Added comprehensive documentation in README.md for AMD_CONFIG usage
Build System Improvements
CMake Configuration Enhancements
- Improved CMake defaults for better out-of-box experience
- Added LibMem compatibility checks
- Added
USE_SOURCES_FROM_SUBMODULESoption (default: ON) to control source location for submodules branch - Added
BUILD_CORESvariable for user-configurable parallel build control - Enhanced symbol renaming integration with conditional test building based on
SYMBOL_RENAME_PREFIX
Configuration Fixes
- Naming conflict resolution: Renamed LAPACK's
ENABLE_AOCL_BLAStoENABLE_AOCL_LAPACK_BLAS_COUPLINGto avoid conflicts- Updated in CMakeLists.txt, aocl_libflame_build.cmake, and presets/base.json
- Fixed typos and incorrect changes introduced during merge conflict resolution
- Corrected AOCL-DA build configuration
Bug Fixes
- Build configuration fixes:
- Fixed naming conflict with ENABLE_AOCL_BLAS variable
- Fixed typos in CMakeLists.txt and aocl_libm_build.cmake
- Corrected merge conflict resolution issues
Library Updates
AOCL-LibM
- Updated submodule to version 5.2.1 tag
- Updated submodule to version 5.2 tag (intermediate update)
Documentation Updates
README.md
- Added 211 lines of new documentation covering:
- Symbol renaming feature usage and configuration
- AMD_CONFIG variable for ISA-specific optimizations
- LibMem compatibility information
- Enhanced build instructions
- Test framework documentation
License and Notices
- Updated LICENSE.txt (+1,118 lines changed) for AOCL-5.2.1-Submodules release
- Updated NOTICES.txt (+1,120 lines changed) for AOCL-5.2.1-Submodules release
Testing Framework
New Comprehensive Test Suite
- Dual test executable support: tests for both original and renamed symbols
- Comprehensive C symbol testing (1,598 lines of test code)
- Fortran mixed library testing (98 lines)
- Automatic test building conditioned on SYMBOL_RENAME_PREFIX setting
- Cross-library integration tests
Summary Statistics
- Total files changed: 15
- Total insertions: ~5,811 lines
- Total deletions: ~355 lines
- New test files: 4 files (2,087 lines)
- New feature files: 2 files (1,346 lines)
Acknowledgments
This release is the result of contributions from the AOCL team at AMD, with special recognition for the symbol renaming feature implementation.
Notes
- This release focuses primarily on enabling multi-version AOCL library coexistence through symbol renaming
- Major enhancement for users requiring multiple AOCL versions in the same application
- Improved ISA-specific optimization support for AMD processors
- Comprehensive testing framework ensures renamed symbols work correctly
- AOCL-LibM updated to version 5.2.1
- All configuration conflicts and typos from previous release resolved
For detailed commit information:
git log AOCL-5.2-Submodules..AOCL-5.2.1-SubmodulesKey commits:
66d392f- Feature: Symbol renaming with comprehensive testing56a91d9- Add AMD_CONFIG for ISA-specific optimizationsfae7c44- Fix naming conflict: ENABLE_AOCL_BLAS renamed87bfcf2- Update aocl-libm submodule to 5.2.1