libgomp.texi: Clarify that no other OpenMP context selectors are implemented
Checks
Commit Message
I got confused myself when reading
https://gcc.gnu.org/onlinedocs/libgomp/OpenMP-Context-Selectors.html
Especially with regards to other platforms like PowerPC.
It turned out that the list is complete, kind of. For 'arch' and 'isa'
those are the only ones - if we want to have more, it has to be
implemented (→ cf. PR105640).
For 'kind': The host compiler always matches 'kind=host'; this also
applies to AMD GCN and Nvidia PTX - when compiled as stand-alone
compiler. Those two also match 'kind=gpu' (both as stand-alone
compiler(*) and for offloading).
The attached documentation patch attempts to clarify this for both users
– and for implementers, for the latter, there is also a comment in the
.texi with more details.
Comments, suggestions, remarks?
Tobias
(*) This could be changed by checking for "#ifndef ACCEL_COMPILER" in
gcc/config/{gcn/nvptx}/ but that does not seem to be worthwhile.
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
Comments
On Wed, Oct 04, 2023 at 01:08:15PM +0200, Tobias Burnus wrote:
> I got confused myself when reading
>
> https://gcc.gnu.org/onlinedocs/libgomp/OpenMP-Context-Selectors.html
>
> Especially with regards to other platforms like PowerPC.
>
> It turned out that the list is complete, kind of. For 'arch' and 'isa'
> those are the only ones - if we want to have more, it has to be
> implemented (→ cf. PR105640).
>
> For 'kind': The host compiler always matches 'kind=host'; this also
> applies to AMD GCN and Nvidia PTX - when compiled as stand-alone
> compiler. Those two also match 'kind=gpu' (both as stand-alone
> compiler(*) and for offloading).
>
> The attached documentation patch attempts to clarify this for both users
> – and for implementers, for the latter, there is also a comment in the
> .texi with more details.
>
> Comments, suggestions, remarks?
>
> Tobias
>
> (*) This could be changed by checking for "#ifndef ACCEL_COMPILER" in
> gcc/config/{gcn/nvptx}/ but that does not seem to be worthwhile.
> -----------------
> Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
> libgomp.texi: Clarify that no other OpenMP context selectors are implemented
>
> libgomp/ChangeLog:
>
> * libgomp.texi (OpenMP Context Selectors): Clarify 'kind' trait
> and that other target archs have no 'arch'/'isa' traits implemented.
LGTM.
Jakub
libgomp.texi: Clarify that no other OpenMP context selectors are implemented
libgomp/ChangeLog:
* libgomp.texi (OpenMP Context Selectors): Clarify 'kind' trait
and that other target archs have no 'arch'/'isa' traits implemented.
@@ -4982,18 +4982,27 @@ smaller number. On non-host devices, the value of the
@code{vendor} is always @code{gnu}. References are to the GCC manual.
-@multitable @columnfractions .60 .10 .25
-@headitem @code{arch} @tab @code{kind} @tab @code{isa}
+@c NOTE: Only the following selectors have been implemented. To add
+@c additional traits for target architecture, TARGET_OMP_DEVICE_KIND_ARCH_ISA
+@c has to be implemented; cf. also PR target/105640.
+@c For offload devices, add *additionally* gcc/config/*/t-omp-device.
+
+For the host compiler, @code{kind} always matches @code{host}; for the
+offloading architectures AMD GCN and Nvidia PTX, @code{kind} always matches
+@code{gpu}. For the x86 family of computers, AMD GCN and Nvidia PTX
+the following traits are supported in addition; while OpenMP is supported
+on more architectures, GCC currently does not match any @code{arch} or
+@code{isa} traits for those.
+
+@multitable @columnfractions .65 .30
+@headitem @code{arch} @tab @code{isa}
@item @code{x86}, @code{x86_64}, @code{i386}, @code{i486},
@code{i586}, @code{i686}, @code{ia32}
- @tab @code{host}
@tab See @code{-m...} flags in ``x86 Options'' (without @code{-m})
@item @code{amdgcn}, @code{gcn}
- @tab @code{gpu}
@tab See @code{-march=} in ``AMD GCN Options''@footnote{Additionally,
@code{gfx803} is supported as an alias for @code{fiji}.}
@item @code{nvptx}
- @tab @code{gpu}
@tab See @code{-march=} in ``Nvidia PTX Options''
@end multitable