[Patch] OpenMP, libgomp, gimple: omp_get_max_teams, omp_set_num_teams, and omp_{gs}et_teams_thread_limit on offload devices
Jakub Jelinek
jakub@redhat.com
Mon Dec 5 13:50:51 GMT 2022
On Thu, Nov 24, 2022 at 03:09:02PM +0100, Marcel Vollweiler wrote:
> gcc/ChangeLog:
>
> * gimplify.cc (optimize_target_teams): Set initial num_teams_upper
> to "-2" instead of "1" for non-existing num_teams clause in order to
> disambiguate from the case of an existing num_teams clause with value 1.
>
> libgomp/ChangeLog:
>
> * config/gcn/icv-device.c (omp_get_teams_thread_limit): Added to
> allow processing of device-specific values.
> (omp_set_teams_thread_limit): Likewise.
> (ialias): Likewise.
> * config/nvptx/icv-device.c (omp_get_teams_thread_limit): Likewise.
> (omp_set_teams_thread_limit): Likewise.
> (ialias): Likewise.
> * icv-device.c (omp_get_teams_thread_limit): Likewise.
> (ialias): Likewise.
> (omp_set_teams_thread_limit): Likewise.
> * icv.c (omp_set_teams_thread_limit): Removed.
> (omp_get_teams_thread_limit): Likewise.
> (ialias): Likewise.
> * libgomp.texi: Updated documentation for nvptx and gcn corresponding
> to the limitation of the number of teams.
> * plugin/plugin-gcn.c (limit_teams): New helper function that limits
> the number of teams by twice the number of compute units.
> (parse_target_attributes): Limit the number of teams on gcn offload
> devices.
> * target.c (get_gomp_offload_icvs): Added teams_thread_limit_var
> handling.
> (gomp_load_image_to_device): Added a size check for the ICVs struct
> variable.
> (gomp_copy_back_icvs): New function that is used in GOMP_target_ext to
> copy back the ICV values from device to host.
> (GOMP_target_ext): Update the number of teams and threads in the kernel
> args also considering device-specific values.
> * testsuite/libgomp.c-c++-common/icv-4.c: Fixed an error in the reading
> of OMP_TEAMS_THREAD_LIMIT from the environment.
> * testsuite/libgomp.c-c++-common/icv-5.c: Extended.
> * testsuite/libgomp.c-c++-common/icv-6.c: Extended.
> * testsuite/libgomp.c-c++-common/icv-7.c: Extended.
> * testsuite/libgomp.c-c++-common/icv-9.c: New test.
> * testsuite/libgomp.fortran/icv-5.f90: New test.
> * testsuite/libgomp.fortran/icv-6.f90: New test.
>
> gcc/testsuite/ChangeLog:
>
> * c-c++-common/gomp/target-teams-1.c: Adapt expected values for
> num_teams from "1" to "-2" in cases without num_teams clause.
> * g++.dg/gomp/target-teams-1.C: Likewise.
> * gfortran.dg/gomp/defaultmap-4.f90: Likewise.
> * gfortran.dg/gomp/defaultmap-5.f90: Likewise.
> * gfortran.dg/gomp/defaultmap-6.f90: Likewise.
Ok, thanks.
Jakub
More information about the Gcc-patches
mailing list