This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [gomp4] optimize GOMP_MAP_TO_PSET
- From: Cesar Philippidis <cesar at codesourcery dot com>
- To: Thomas Schwinge <thomas at codesourcery dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Fortran List <fortran at gcc dot gnu dot org>
- Date: Mon, 30 Jan 2017 07:19:27 -0800
- Subject: Re: [gomp4] optimize GOMP_MAP_TO_PSET
- Authentication-results: sourceware.org; auth=none
- References: <551a81a0-8ad4-9250-d8cd-68378e06d8fc@codesourcery.com> <87lgtsc088.fsf@euler.schwinge.homeip.net>
On 01/30/2017 02:26 AM, Thomas Schwinge wrote:
> On Fri, 27 Jan 2017 08:06:22 -0800, Cesar Philippidis <cesar@codesourcery.com> wrote:
>> This is probably because CloverLeaf makes use
>> of ACC DATA regions in the critical sections, so all of those PSETs and
>> POINTERs are already preset on the accelerator.
>>
>> One thing I don't like about this patch is that I'm updating the host's
>> copy of the PSET prior to uploading it. The host's PSET does get
>> restored prior to returning from gomp_map_vars, however that might
>> impact things if the host were to run in multi-threaded applications.
>> Maybe I'll drop this patch from gomp4 since it's not very effective.
>
> ... also there is some bug somewhere; I see:
>
> PASS: libgomp.fortran/examples-4/async_target-2.f90 -O0 (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/examples-4/async_target-2.f90 -O0 execution test
> PASS: libgomp.fortran/examples-4/async_target-2.f90 -O1 (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/examples-4/async_target-2.f90 -O1 execution test
> PASS: libgomp.fortran/examples-4/async_target-2.f90 -O2 (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/examples-4/async_target-2.f90 -O2 execution test
> PASS: libgomp.fortran/examples-4/async_target-2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/examples-4/async_target-2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test
> PASS: libgomp.fortran/examples-4/async_target-2.f90 -O3 -g (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/examples-4/async_target-2.f90 -O3 -g execution test
> PASS: libgomp.fortran/examples-4/async_target-2.f90 -Os (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/examples-4/async_target-2.f90 -Os execution test
>
> ..., and:
>
> PASS: libgomp.fortran/target3.f90 -O0 (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/target3.f90 -O0 execution test
> PASS: libgomp.fortran/target3.f90 -O1 (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/target3.f90 -O1 execution test
> PASS: libgomp.fortran/target3.f90 -O2 (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/target3.f90 -O2 execution test
> PASS: libgomp.fortran/target3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/target3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test
> PASS: libgomp.fortran/target3.f90 -O3 -g (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/target3.f90 -O3 -g execution test
> PASS: libgomp.fortran/target3.f90 -Os (test for excess errors)
> [-PASS:-]{+FAIL:+} libgomp.fortran/target3.f90 -Os execution test
>
> In all cases, the run-time error message is:
>
> libgomp: Pointer target of array section wasn't mapped
I'm not seeing any of these failures on power8 and x86_64 with multilibs
disabled. How did you configure gcc? And those are OpenMP tests. Are you
testing OpenMP target offloading, if so how?
> For reference, I'm appending the patch, which wasn't included in the
> original email.
Whoops. Thanks!
Cesar