From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1534) id BB5B83858C51; Tue, 17 May 2022 09:41:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BB5B83858C51 To: gcc-cvs-wwwdocs@gcc.gnu.org Subject: gcc-wwwdocs branch master updated. f7651427bfa17d0a460dd63285d4da9130d21f33 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 020a4fdb22f26524b50e50ff7ac1470cb3fe0c6b X-Git-Newrev: f7651427bfa17d0a460dd63285d4da9130d21f33 Message-Id: <20220517094128.BB5B83858C51@sourceware.org> Date: Tue, 17 May 2022 09:41:28 +0000 (GMT) From: Tobias Burnus X-BeenThere: gcc-cvs-wwwdocs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs-wwwdocs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 May 2022 09:41:28 -0000 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "gcc-wwwdocs". The branch, master has been updated via f7651427bfa17d0a460dd63285d4da9130d21f33 (commit) from 020a4fdb22f26524b50e50ff7ac1470cb3fe0c6b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f7651427bfa17d0a460dd63285d4da9130d21f33 Author: Tobias Burnus Date: Tue May 17 11:41:06 2022 +0200 Add OpenMP by-GCC-version implementation status * htdocs/projects/gomp/index.html: Add by-GCC-version implementation status; add new intro, add links and crossrefs. * htdocs/projects/gomp/index.html: Link it. * htdocs/gcc-13/changes.html: Likewise; document first new features. * htdocs/gcc.css (table.ompstatus): Add. diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html index a1b64df3..dc526530 100644 --- a/htdocs/gcc-13/changes.html +++ b/htdocs/gcc-13/changes.html @@ -37,6 +37,18 @@ a work-in-progress.

General Improvements

+
    +
  • OpenMP +
      +
    • The following OpenMP 5.1 features have been added: the + omp_all_memory reserved locator and the + omp_target_is_accessible and omp_get_mapped_ptr + API routines.
    • +
    +
  • +
+ +

New Languages and Language specific improvements

diff --git a/htdocs/gcc.css b/htdocs/gcc.css index f1081681..29807a24 100644 --- a/htdocs/gcc.css +++ b/htdocs/gcc.css @@ -115,6 +115,11 @@ table.cxxdrstatus td:nth-child(4) { text-align:center; } table.cxxdrstatus tr.separator { background: #f2f2f9; } table.cxxdrstatus { width: 65%; } +/* OpenMP status tables. */ +table.ompstatus th, table.cxxstatus td { border: 1px solid gray; } +table.ompstatus td:nth-child(2) { text-align:center; } +table.ompstatus tr.separator { background: #f2f2f9; } + /* Padded tables. */ table.padding5 th, td { border: 1px solid gray; padding:5px; } diff --git a/htdocs/projects/gomp/index.html b/htdocs/projects/gomp/index.html index 59697c10..42932c77 100644 --- a/htdocs/projects/gomp/index.html +++ b/htdocs/projects/gomp/index.html @@ -3,13 +3,84 @@ -GOMP — An OpenMP implementation for GCC +GNU Offloading and Multi-Processing Project (GOMP) -

Welcome to the home of GOMP

+

GNU Offloading and Multi-Processing Project (GOMP)

+ +

The GOMP project consists of implementation of OpenMP and OpenACC to +permit annotating the source code to permit running it concurrently with +thread parallelization and on offloading devices (accelerators such +as GPUs), including the associated run-time library and API routines. Both +OpenMP and OpenACC are supported with GCC's C, C++ and Fortran compilers.

+ +

Content

+ + +

Usage

+
    +
  • To enable OpenMP, + use -fopenmp; -fopenmp-simd can be used + to enable only the SIMD vectorization and loop-transformation constructs + without creating multiple threads, offloading code or adding library + dependency.
  • +
  • To enable OpenACC, + use -fopenacc.
  • +
  • If either is enabled, offloading is automatically generated for all + offload-device types for which the compiler has been configured. Use -foffload= to disable or specify the offload-devices to be + used. Use -foffload-options= to pass device-specific compiler and + linker flags.
  • +
+ +

Diagnostics

+
    +
  • The -fopt-info flag provides details about compile-time performed + optimizations.
  • +
  • Environment variables can be used to influence run-time behavior and output + more data, useful for debugging or performance tuning. See the GNU libgomp manual for + details.
  • +
+ +

Documentation

+ + +

History and Project Goal

The GOMP project has developed an implementation of OpenMP @@ -39,10 +110,9 @@ efficient parallel code.

OpenMP additionally permits to offload computations on accelerators such as GPUs, making use of their highly parallel computation support; if -no accelarator is available, as fallback, the computation is +no accelerator is available, as fallback, the computation is then done on the host.

-

Project goal

To remain relevant, free software development tools must support emerging technologies. By implementing OpenMP, GOMP provides a simplified syntax tools for creating software targeted @@ -54,20 +124,761 @@ projects.

extensions to target language parsers. A long-term goal is the generation of efficient and small code for OpenMP applications.

-

Contributing

+

When support for OpenACC was added, the project name GOMP +was reinterpreted as GNU Offloading and Multi-Processing instead +of denoting GNU OpenMP. + +

Contributing

We encourage everyone to contribute changes and help test GOMP. GOMP has been merged into mainline GCC.

-

Reporting Bugs

-

Please add "openmp" to the keywords field when filing a bug report.

- -

Documentation

-

libgomp, the GOMP support library, has -online documentation -available.

- -

Status

+

Reporting Bugs

+

Please add openmp or openacc to the keywords field when +filing a bug report.

+ +

OpenMP Implementation Status

+ +

Implementation status in libgomp manual: +Mainline (GCC 13), +GCC 12.

+ +

Disclaimer: A feature might be only fully supported in a later GCC version +than listed, depending on resolved corner cases and optimizations.

+ + + +

OpenMP 2.5

+
    +
  • Supported since GCC 4.2
  • +
+ +

OpenMP 3.0

+
    +
  • Supported since GCC 4.4
  • +
+ +

OpenMP 3.1

+
    +
  • Supported since GCC 4.7
  • +
+ +

OpenMP 4.0

+
    +
  • C/C++: Supported since GCC 4.9
  • +
  • Fortran: Supported since GCC 4.9.1
  • +
+ +

OpenMP 4.5

+
    +
  • C/C++: Supported since GCC 6
  • +
  • Fortran: Partial support since GCC 7, full support since GCC 11
  • +
+ + +

OpenMP 5.0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureGCC VersionComments
in_reduction clause on task constructsGCC 9
Supporting C++'s range-based for loopGCC 9
IteratorsGCC 9
!= as relational-op in canonical loop form for C/C++GCC 9
C/C++'s lvalue expressions in depend clausesGCC 9
mutexinoutset dependence-type for depend clauseGCC 9
depobj construct and depend objects GCC 9
depend clause on taskwaitGCC 9
teams construct outside an enclosing target regionGCC 9
Clauses if, nontemporal and order(concurrent) in simd constructGCC 9/GCC 10
defaultmap extensionsGCC 9
hint clause on the atomic constructGCC 9Stub only
Weak memory ordering clauses on atomic and flush constructGCC 9
Combined master constructsGCC 9
Runtime routines and environment variables to display runtimethread affinity informationGCC 9
omp_pause_resource and omp_pause_resource_all runtime routinesGCC 9
nonmonotonic as default loop schedule modifier for worksharing-loop constructsGCC 9
atomic constructs in simdGCC 9
task_reduction clause with taskgroupGCC 9
task modifier to reduction clauseGCC 9
reduction and in_reduction clauses on taskloop and taskloop simd constructsGCC 9
taskloop construct cancelable by cancel constructGCC 9
Lock hints were renamed to synchronization hintsGCC 9
requires directiveGCC 9
GCC 12
(atomic_default_mem_order)
(dynamic_allocators)
rest parsing only
conditional modifier to lastprivate clauseGCC 10
scan directive and in_scan modifier for the reduction clauseGCC 10
order(concurrent) clauseGCC 10
loop constructGCC 10
declare variant directiveGCC 10/GCC 11simd traits not handled correctly
use_device_addr clause on target dataGCC 10
Nested declare target directiveGCC 10
allocate clauseGCC 11Initial support
target-offload-var ICV and OMP_TARGET_OFFLOAD env variableGCC 11
Predefined memory spaces, memory allocators, allocator traitsGCC 11Some are only stubs
Non-rectangular loop nestsGCC 11
GCC 13
C/C++
Fortran
Nested-parallel changes to max-active-levels-var ICVGCC 11
detach clause to task constructGCC 11
omp_fulfill_event runtime routineGCC 11
Memory management routinesGCC 11
Implicit declare target directiveGCC 11
omp_get_supported_active_levels routineGCC 11
in_reduction clause on target constructsGCC 12nowait only stub
affinity clause to task constructGCC 12Stub only
close map-type-modifierGCC 12
omp_get_device_num runtime routineGCC 12
ancestor modifier on device clauseGCC 12Reverse offload unsupported
Mapping C/C++ pointer variables and to assign the address of device memory mapped by an array sectionGCC 12
Mapping of Fortran pointer and allocatable variables, including pointer and allocatable components of variablesGCC 12Mapping of vars with allocatable components unsupported
Map-order clarifications?To be verified
Array shapingNo
Array sections with non-unit strides in C and C++No
metadirective directiveNo
Collapse of associated loops that are imperfectly nested loopsNo
allocate directiveNo
Discontiguous array section with target update constructNo
C/C++'s lvalue expressions in to, from and map clausesNo
declare mapper directiveNo
OMPT interfaceNo
OMPD interfaceNo
+ + +

OpenMP 5.1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureGCC VersionComments
OpenMP directive as C++ attribute specifiersGCC 12
nothing directiveGCC 12
error directiveGCC 12
masked constructGCC 12
scope directiveGCC 12
strict modifier in the grainsize and num_tasks clauses of the taskloop constructGCC 12
align clause/modifier in allocate directive/clause and allocator directiveGCC 12C/C++ on clause only
thread_limit clause to target constructGCC 12
has_device_addr clause to target constructGCC 12
Extensions to the atomic directiveGCC 12
seq_cst clause on a flush constructGCC 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 routinesGCC 12
omp_calloc, omp_realloc, omp_aligned_alloc, and omp_aligned_callocruntime routinesGCC 12
omp_alloctrait_key_t enum: omp_atv_serialized added, omp_atv_default changedGCC 12
omp_display_env runtime routineGCC 12Not inside target regions
OMP_PLACES syntax extensionsGCC 12
OMP_NUM_TEAMS and OMP_TEAMS_THREAD_LIMIT env variablesGCC 12
Support of strictly structured blocks in FortranGCC 12
Support of structured block sequences in C/C++GCC 12
unconstrained and reproducible modifiers on order clauseGCC 12
omp_target_is_accessible runtime routineGCC 13
omp_get_mapped_ptr runtime routineGCC 13
omp_all_memory reserved locatorGCC 13
target_device trait in OpenMP ContextNo
target_device selector set in context selectorsNo
C/C++'s declare variant directive: elision support of preprocessed codeNo
declare variant: new clauses adjust_args and append_argsNo
dispatch constructNo
device-specific ICV settings the environment variablesNo
assume directiveNo
Loop transformation constructsNo
iterators in target update motion clauses and map clausesNo
indirect calls to the device version of a procedure or function in target regionsNo
interop directiveNo
omp_interop_t object support in runtime routinesNo
nowait clause in taskwait directiveNo
inoutset argument to the depend clauseNo
present argument to defaultmap clauseNo
omp_target_memcpy_async and omp_target_memcpy_rect_async runtime routinesNo
ompt_scope_endpoint_t enum: ompt_scope_beginendNo
ompt_sync_region_t enum additionsNo
ompt_state_t enum: ompt_state_wait_barrier_implementation and ompt_state_wait_barrier_teamsNo
ompt_callback_target_data_op_emi_t, ompt_callback_target_emi_t, ompt_callback_target_map_emi_t and ompt_callback_target_submit_emi_tNo
ompt_callback_error_t typeNo
+ + +

OpenMP 5.2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureGCC VersionComments
omp_in_explicit_task routine and implicit-task-var ICVNo
omp/ompx/omx sentinels and omp_/ompx_ namespacesN/A
Clauses on end directive can be on directiveNo
Deprecation of no-argument destroy clause on depobjNo
linear clause syntax changes and step modifierNo
Deprecation of minus operator for reductionsNo
Deprecation of separating map modifiers without commaNo
declare mapper with iterator and present modifiersNo
If a matching mapped list item is not found in the data environment, the pointer retains its original valueNo
New enter clause as alias for to on declare target directiveNo
Deprecation of to clause on declare target directiveNo
Extended list of directives permitted in Fortran pure proceduresNo
New allocators directive for FortranNo
Deprecation of allocator directive for Fortran allocatables/pointersNo
Optional paired end directive with dispatchNo
New memspace and traits modifiers for uses_allocatorsNo
Deprecation of traits array following the allocator_handle expression in uses_allocatorsNo
New otherwise clause as alias for default on metadirectivesNo
Deprecation of default clause on metadirectivesNo
Deprecation of delimited form of declare targetNo
Reproducible semantics changed for order(concurrent)No
allocate and firstprivate clauses on scopeNo
ompt_callback_workNo
Default map type for map clause in target enter/exit dataNo
New doacross clause as alias for depend with source/sink modifierNo
Deprecation of depend with source/sink modifierNo
omp_cur_iteration keywordNo
+ + +

OpenMP Releases and Status

November 9, 2021

OpenMP @@ -100,7 +911,7 @@ of the OpenMP 5.0 standard.

version 5.0 of the OpenMP specification is now partially supported in the C and C++ compilers. For details which features of OpenMP 5.0 are and which are not supported in the GCC 9 release see -this mail. +this mail.

November 8, 2018
diff --git a/htdocs/projects/index.html b/htdocs/projects/index.html index 0647ed6b..dc502ed0 100644 --- a/htdocs/projects/index.html +++ b/htdocs/projects/index.html @@ -30,6 +30,7 @@ help develop GCC:

  • Projects for the C preprocessor.
  • Projects for improving the C front end.
  • Implementing new C++ features.
  • +
  • Implementing missing OpenMP features.
  • The GNU UPC Project.
  • Improve the installation procedure
  • Simpler porting
  • ----------------------------------------------------------------------- Summary of changes: htdocs/gcc-13/changes.html | 12 + htdocs/gcc.css | 5 + htdocs/projects/gomp/index.html | 841 +++++++++++++++++++++++++++++++++++++++- htdocs/projects/index.html | 1 + 4 files changed, 844 insertions(+), 15 deletions(-) hooks/post-receive -- gcc-wwwdocs