Skip to content

Tests for always/alwaysin/alwaysout modifiers on data copy clauses#131

Open
Ryanpadrone wants to merge 1 commit intoOpenACCUserGroup:masterfrom
Ryanpadrone:always
Open

Tests for always/alwaysin/alwaysout modifiers on data copy clauses#131
Ryanpadrone wants to merge 1 commit intoOpenACCUserGroup:masterfrom
Ryanpadrone:always

Conversation

@Ryanpadrone
Copy link
Copy Markdown

Feature

The tests target the OpenACC 3.4 feature introducing the always, alwaysin, and alwaysout modifiers for the copy, copyin, and copyout data clauses.

Description:
OpenACC 3.4 introduces the always, alwaysin, and alwaysout modifiers to provide explicit control over data movement between the host and device.
alwaysin: Forces transfer from host to device, even if the variable is already present on the device.
alwaysout: Forces transfer from device to host at region exit, even if the variable still has an active device lifetime.
always: Forces both transfer-in and transfer-out.
These modifiers override default behavior where implementations may reuse device-resident data or delay transfer-out

Test Coverage

  • T1, T4, T5 --> verify forced host-to=device transfer
    • Data is made present on the device using enter data
    • Host values are modified afterward
    • Tests verify that always / alwaysin forces updated host values to be used on the device

  • T2, T6, T7 --> Verify fored device-to-host transfer
    • Device data is modified inside a parallel region
    • A host-side check is performed immediately after the data region
    • Confirms that alwaysout / always forces copy-back before exit data delete

  • T3 --> Verifies bidirectional behavior
    • Ensures always forces both transfer-in and transfer-out in a single test

Compiler Testing Results

Compiler versions used:
• NVHPC 26.1
• HPE Cray 18.0.0
• GNU GCC 15.2.0

All compilers failed to compile with errors such as:
‘alwaysin’ undeclared ‘alwaysout’ undeclared expected ‘)’ before ‘:’ token

Conclusion:
• The always, alwaysin, and alwaysout modifiers are not currently implemented in the tested compiler versions
• The tests correctly expose missing support for this OpenACC 3.4 feature

Files Added

• data_copy_clauses_always_modifiers.c
• data_copy_clauses_always_modifiers.cpp
• data_copy_clauses_always_modifiers.F90

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