[gomp4] optimize GOMP_MAP_TO_PSET
Cesar Philippidis
cesar@codesourcery.com
Mon Jan 30 15:19:00 GMT 2017
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
More information about the Fortran
mailing list