]> gcc.gnu.org Git - gcc.git/commit
libgomp: Honor OpenMP's nteams-var ICV as upper limit on num teams [PR109875]
authorTobias Burnus <tobias@codesourcery.com>
Sun, 21 May 2023 18:36:19 +0000 (20:36 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Sun, 21 May 2023 18:37:15 +0000 (20:37 +0200)
commitad0f80d945cc36fbb60fd1e04d90681d4302de8b
tree44ba23b2c1b4a17f5f27ad6d9d9e5e8ab478d61b
parentdad3c18fbb481ab31f1586b8f980940fa55951b8
libgomp: Honor OpenMP's nteams-var ICV as upper limit on num teams [PR109875]

The nteams-var ICV exists per device and can be set either via the routine
omp_set_num_teams or as environment variable (OMP_NUM_TEAMS with optional
_ALL/_DEV/_DEV_<num> suffix); it is default-initialized to zero. The number
of teams created is described under the num_teams clause. If the clause is
absent, the number of teams is implementation defined but at least
one team must exist and, if nteams-var is positive, at most nteams-var
teams may exist.

The latter condition was not honored in a target region before this
commit, such that too many teams were created.

Already before this commit, both the num_teams([lower:]upper) clause
(on the host and in target regions) and, only on the host, the nteams-var
ICV were honored. And as only one teams is created for host fallback,
unless the clause specifies otherwise, the nteams-var ICV was and is
effectively honored.

libgomp/ChangeLog:

PR libgomp/109875
* config/gcn/target.c (GOMP_teams4): Honor nteams-var ICV.
* config/nvptx/target.c (GOMP_teams4): Likewise.
* testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c: New test.
* testsuite/libgomp.c-c++-common/teams-nteams-icv-2.c: New test.
* testsuite/libgomp.c-c++-common/teams-nteams-icv-3.c: New test.
* testsuite/libgomp.c-c++-common/teams-nteams-icv-4.c: New test.
libgomp/config/gcn/target.c
libgomp/config/nvptx/target.c
libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-2.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-3.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-4.c [new file with mode: 0644]
This page took 0.063615 seconds and 6 git commands to generate.