libgomp: Fix pointer attachment for GOMP_RUNTIME_USM and update docs
Correctly handles pointer attachment for GOMP_RUNTIME_USM and clarifies documentation.
This commit addresses an issue in libgomp’s GOMP_RUNTIME_USM feature by correctly handling pointer attachment for global static variables during target enter/exit data operations when self-mapping is enabled. The accompanying documentation update clarifies unsupported scenarios and removes an outdated reference to self-maps/USM, reflecting the current state of the features.
In Details
Fixes GOMP_MAP_ATTACH handling in gomp_target_enter_exit_data_usm for GOMP_RUNTIME_USM when self-mapping is active, specifically for global static pointers. Updates libgomp.texi to reflect that GOMP_RUNTIME_USM does not fully support the 'requires self_maps/unified_shard_memory' feature, distinguishing its behavior from pending changes in the compiler targeting the latter.
- GOMP_RUNTIME_USM
- A libgomp feature enabling the runtime to manage Unified Shared Memory (USM) for OpenMP offloading targets, allowing for more flexible memory management between host and device.
- pointer attachment
- In the context of OpenMP offloading, this refers to associating a pointer with a specific memory region or device, often managed through map clauses.
- self-mapping
- A feature in OpenMP offloading where the device can directly access host memory, simplifying data transfer and management.
- Unified Shared Memory (USM)
- A memory model that allows host and device to share a single memory address space, simplifying programming by reducing explicit data movement.