Add OpenMP by-GCC-version implementation status * htdocs/projects/gomp/openmp-status.html: New. * htdocs/projects/gomp/index.html: Link it. htdocs/projects/gomp/index.html | 15 ++- htdocs/projects/gomp/openmp-status.html | 202 ++++++++++++++++++++++++++++++++ 2 files changed, 211 insertions(+), 6 deletions(-) diff --git a/htdocs/projects/gomp/index.html b/htdocs/projects/gomp/index.html index 59697c10..81096578 100644 --- a/htdocs/projects/gomp/index.html +++ b/htdocs/projects/gomp/index.html @@ -54,18 +54,21 @@ projects.
extensions to target language parsers. A long-term goal is the generation of efficient and small code for OpenMP applications. +We encourage everyone to contribute changes and help test GOMP. GOMP has been merged into mainline GCC.
Please add "openmp" to the keywords field when filing a bug report.
- -libgomp, the GOMP support library, has -online documentation -available.
+Please add openmp
to the keywords field when filling a
+bug report.
Disclaimer: A feature might be only fully supported in a later GCC version +than listed, depending on resolved corner cases and optimizations.
+ +Features added by OpenMP version
+OpenMP implementation status in the online documentation:
+Feature | GCC Version | Comments |
---|---|---|
in_reduction clause on task constructs | GCC 9 | |
Supporting C++'s range-based for loop | GCC 9 | |
Iterators | GCC 9 | |
!= as relational-op in canonical loop form for C/C++ | GCC 9 | |
C/C++'s lvalue expressions in depend clauses | GCC 9 | |
mutexinoutset dependence-type for depend clause | GCC 9 | |
depobj construct and depend objects | GCC 9 | |
depend clause on taskwait | GCC 9 | |
teams construct outside an enclosing target region | GCC 9 | |
Clauses if , nontemporal and order(concurrent) in simd construct | GCC 9/GCC 10 | |
defaultmap extensions | GCC 9 | |
hint clause on the atomic construct | GCC 9 | stub only |
Weak memory ordering clauses on atomic and flush construct | GCC 9 | |
Combined master constructs | GCC 9 | |
Runtime routines and environment variables to display runtimethread affinity information | GCC 9 | |
omp_pause_resource and omp_pause_resource_all runtime routines | GCC 9 | |
nonmonotonic as default loop schedule modifier for worksharing-loop constructs | GCC 9 | |
atomic constructs in simd | GCC 9 | |
task_reduction clause with taskgroup | GCC 9 | |
task modifier to reduction clause | GCC 9 | |
reduction and in_reduction clauses on taskloop and taskloop simd constructs | GCC 9 | |
taskloop construct cancelable by cancel construct | GCC 9 | |
Lock hints were renamed to synchronization hints | GCC 9 | |
requires directive | GCC 9 GCC 12 – | (atomic_default_mem_order )( dynamic_allocators )rest parsing only |
conditional modifier to lastprivate clause | GCC 10 | |
scan directive and in_scan modifier for the reduction clause | GCC 10 | |
order(concurrent) clause | GCC 10 | |
loop construct | GCC 10 | |
declare variant directive | GCC 10/GCC 11 | simd traits not handled correctly |
use_device_addr clause on target data | GCC 10 | |
Nested declare target directive | GCC 10 | |
allocate clause | GCC 11 | Initial support |
target-offload-var ICV and OMP_TARGET_OFFLOAD env variable | GCC 11 | |
Predefined memory spaces, memory allocators, allocator traits | GCC 11 | Some are only stubs |
Non-rectangular loop nests | GCC 11 | Only C/C++ |
Nested-parallel changes to max-active-levels-var ICV | GCC 11 | |
detach clause to task construct | GCC 11 | |
omp_fulfill_event runtime routine | GCC 11 | |
Memory management routines | GCC 11 | |
Implicit declare target directive | GCC 11 | |
omp_get_supported_active_levels routine | GCC 11 | |
in_reduction clause on target constructs | GCC 12 | nowait only stub |
affinity clause to task construct | GCC 12 | Stub only |
close map-type-modifier | GCC 12 | |
omp_get_device_num runtime routine | GCC 12 | |
ancestor modifier on device clause | GCC 12 | Reverse offload unsupported |
Mapping C/C++ pointer variables and to assign the address of device memory mapped by an array section | GCC 12 | |
Mapping of Fortran pointer and allocatable variables, including pointer and allocatable components of variables | GCC 12 | Mapping of vars with allocatable components unsupported |
Map-order clarifications | GCC? | |
Array shaping | N | |
Array sections with non-unit strides in C and C++ | N | |
metadirective directive | N | |
Collapse of associated loops that are imperfectly nested loops | N | |
allocate directive | N | |
Discontiguous array section with target update construct | N | |
C/C++'s lvalue expressions in to , from and map clauses | N | |
declare mapper directive | N | |
OMPT interface | N | |
OMPD interface | N |
Feature | GCC Version | Comments |
---|---|---|
OpenMP directive as C++ attribute specifiers | GCC 12 | |
nothing directive | GCC 12 | |
error directive | GCC 12 | |
masked construct | GCC 12 | |
scope directive | GCC 12 | |
strict modifier in the grainsize and num_tasks clauses of the taskloop construct | GCC 12 | |
align clause/modifier in allocate directive/clause and allocator directive | GCC 12 | C/C++ on clause only |
thread_limit clause to target construct | GCC 12 | |
has_device_addr clause to target construct | GCC 12 | |
Extensions to the atomic directive | GCC 12 | |
seq_cst clause on a flush construct | GCC 12 | |
private and firstprivate argument to default clause in C and C++ | GCC 12 | |
omp_set_num_teams , omp_set_teams_thread_limit , omp_get_max_teams , omp_get_teams_thread_limit runtime routines | GCC 12 | |
omp_calloc , omp_realloc , omp_aligned_alloc , and omp_aligned_callocruntime routines | GCC 12 | |
omp_alloctrait_key_t enum: omp_atv_serialized added, omp_atv_default changed | GCC 12 | |
omp_display_env runtime routine | GCC 12 | Not inside target regions |
OMP_PLACES syntax extensions | GCC 12 | |
OMP_NUM_TEAMS and OMP_TEAMS_THREAD_LIMIT env variables | GCC 12 | |
Support of strictly structured blocks in Fortran | GCC 12 | |
Support of structured block sequences in C/C++ | GCC 12 | |
unconstrained and reproducible modifiers on order clause | GCC 12 | |
omp_target_is_accessible runtime routine | GCC 13 | |
omp_all_memory reserved locator | GCC 13 | |
target_device trait in OpenMP Context | N | |
target_device selector set in context selectors | N | |
C/C++'s declare variant directive: elision support of preprocessed code | N | |
declare variant : new clauses adjust_args and append_args | N | |
dispatch construct | N | |
device-specific ICV settings the environment variables | N | |
assume directive | N | |
Loop transformation constructs | N | |
iterators in target update motion clauses and map clauses | N | |
indirect calls to the device version of a procedure or function in target regions | N | |
interop directive | N | |
omp_interop_t object support in runtime routines | N | |
nowait clause in taskwait directive | N | |
inoutset argument to the depend clause | N | |
present argument to defaultmap clause | N | |
omp_target_memcpy_async and omp_target_memcpy_rect_async runtime routines | N | |
omp_get_mapped_ptr runtime routine | N | |
ompt_scope_endpoint_t enum: ompt_scope_beginend | N | |
ompt_sync_region_t enum additions | N | |
ompt_state_t enum: ompt_state_wait_barrier_implementation and ompt_state_wait_barrier_teams | N | |
ompt_callback_target_data_op_emi_t , ompt_callback_target_emi_t , ompt_callback_target_map_emi_t and ompt_callback_target_submit_emi_t | N | |
ompt_callback_error_t type | N |
Feature | GCC Version | Comments |
---|---|---|
omp_in_explicit_task routine and implicit-task-var ICV | N | |
omp /ompx /ompx sentinels and omp_ /ompx_ namespaces | N | |
Clauses on end directive can be on directive | N | |
Deprecation of no-argument destroy clause on depobj | N | |
linear clause syntax changes and step modifier | N | |
Deprecation of minus operator for reductions | N | |
Deprecation of separating map modifiers without comma | N | |
declare mapper with iterator and present modifiers | N | |
If a matching mapped list item is not found in the data environment, the pointer retains its original value | N | |
New enter clause replacing to on declare target directive | N | |
Extended list of directives permitted in Fortran pure procedures | N | |
New allocators directive for Fortran | N | |
Optional paired end directive with dispatch | N | |
New memspace and traits modifiers for uses_allocators | N | |
New otherwise clause replacing default on metadirectives | N | |
Deprecation of delimited form of declare target | N | |
Reproducible semantics changed for order(concurrent) | N | |
allocate and firstprivate clauses on scope | N | |
ompt_callback_work | N | |
Extended map-type handling of target enter/exit data | N | |
New doacross clause replacing depend with sourch /sink modifier | N | |
omp_cur_iteration keyword | N |