Skip to content

AOCL-BIY 5.2.1 Submodules Release

Choose a tag to compare

@chandrkr chandrkr released this 15 Jan 05:05
· 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 script
    • commands.txt (224 lines) - Command reference documentation
    • test/CMakeLists.txt (362 lines) - Testing framework
    • test/test_aocl_symbols.c (1,598 lines) - Comprehensive symbol tests
    • test/test_aocl_symbols.h (29 lines) - Test header
    • test/mix_libraries.F90 (98 lines) - Fortran mixed library tests

2. ISA-Specific Optimization Support

  • Added AMD_CONFIG variable 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_SUBMODULES option (default: ON) to control source location for submodules branch
  • Added BUILD_CORES variable 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_BLAS to ENABLE_AOCL_LAPACK_BLAS_COUPLING to 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

  1. 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-Submodules

Key commits:

  • 66d392f - Feature: Symbol renaming with comprehensive testing
  • 56a91d9 - Add AMD_CONFIG for ISA-specific optimizations
  • fae7c44 - Fix naming conflict: ENABLE_AOCL_BLAS renamed
  • 87bfcf2 - Update aocl-libm submodule to 5.2.1