Copyright (C) 2025 Advanced Micro Devices, Inc. All rights reserved.

AOCL-Utils 5.1.0 Release Notes:
-----------------------------
AOCL-Utils provides a uniform interface to all the AOCL libraries to access the CPU features for
AMD CPUs. This library provides the following features:
• Core details
• Flags available/usable
• ISA available/usable
• Topology about L1/L2/L3 caches

AOCL-Utils is designed for integration with the other AOCL libraries. Each project has it’s own
mechanism to identify CPU and provide necessary features such as Dynamic Dispatch. The main
purpose of this library is to provide a centralized mechanism to update/validate and provide
information to the users.

Highlights of AOCL-Utils 5.1.0:
-----------------------------

### Build System

#### CMake
- Removed absolute path from binaries on Linux builds
- Updated scripts for improved find_package handling
- Enabled sanitizers (TSAN, MEMSAN) and RelWithDebInfo build type
- Added support for pkg-config configuration
- Upgraded minimum CMake version to 3.26 (tested up to 3.31)
- Improved workflow with Linux presets
- Added support for MultiThreaded library in MSVC

### Library

#### Logger
- Implemented extendable and flexible thread-safe logger
- Added TLS support from std::threads
- Introduced "<<" operator override for LogManager
- Added CAPI and CPP API macros
- Added Windows platform support
- Implemented singleton pattern for LogWriter
- Used direct initialization for logger objects

#### Cpuid
- Introduced new CPU detection for Zen-family processors
- Added isZenFamily API (family >= 0x17)
- Added CAPI for generic CPU detection (v2, v3, v4)
- Provided has_any() and has_all() CPUID checks
- Fixed CPUID instruction implementation
- Corrected request and response EFlags handling
- Fixed has_flags API implementation

#### Rng
- Implemented Hardware and System Random Number Generator
- Added flexible framework for RNG implementations

#### Status
- Added isError API for iError interface
- Improved Status.ok() implementation
- Enhanced error handling capabilities

#### ThreadPinning
- Added security checks for CacheMap
- Improved thread vector validations

#### Misc
- Minor Bug fixes


Please refer AOCL User Guide for supported Operating Systems and Compilers.

The package contains AOCL-Utils Library binaries which includes optimizations for
the AMD EPYC and AMD Ryzen processor families, header files and examples.
