Skip to content

Add memory layout relayout functions#392

Open
wdeconinck wants to merge 24 commits into
developfrom
feature/relayout
Open

Add memory layout relayout functions#392
wdeconinck wants to merge 24 commits into
developfrom
feature/relayout

Conversation

@wdeconinck

@wdeconinck wdeconinck commented Jun 23, 2026

Copy link
Copy Markdown
Member

Description

This pull request introduces several significant improvements and additions to the build system, device abstraction layer, and testing infrastructure. The main changes are the addition of new device property abstractions for the dummy backend, integration of new relayout utilities, and the introduction of a comprehensive benchmarking executable and smoke tests for relayout functionality.

Relayout Utilities Integration:

  • Added new relayout utility source files (relayout.cc, relayout.h, relayout_on_host.cc, relayout_on_device.hic) to the build system in src/atlas/CMakeLists.txt, improving support for data layout transformations on both host and device. [1] [2]

Benchmarking and Testing Infrastructure:

  • Introduced a new executable atlas-benchmark-relayout and an extensive set of smoke tests to cover various relayout scenarios, including rank-2/3/4 data, loop order variants, memcpy toggles, and device execution. This enhances test coverage and performance benchmarking capabilities.

Configuration Macros:

  • Improved macro definitions in defines.h.in to ensure bounds checking macros are only defined if not already present, avoiding redefinition and improving configurability.

Device Abstraction and Runtime Enhancements:

  • Added a new dummyDeviceProp_t struct in hic_dummy_runtime.h to represent device properties for the dummy backend, and registered new dummy device functions such as GetDevice and GetDeviceProperties. [1] [2]
  • Updated the device property type alias DeviceProp_t in hic_runtime.h to be backend-specific, supporting CUDA, HIP, and Dummy backends. Also registered new device-related functions in the HIC interface. [1] [2]

Contributor Declaration

By opening this pull request, I affirm the following:

  • All authors agree to the Contributor License Agreement.
  • The code follows the project's coding standards.
  • I have performed self-review and added comments where needed.
  • I have added or updated tests to verify that my changes are effective and functional.
  • I have run all existing tests and confirmed they pass.

💣💥☠️ Static Analyzer Report ☠️💥💣
https://sites.ecmwf.int/docs/atlas/static-analyzer/PR-392

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant