This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [libgomp, nvptx] Disable OMP_{DISPLAY_AFFINITY,AFFINITY_FORMAT} support


On 12-12-18 10:36, Jakub Jelinek wrote:
> On Wed, Dec 12, 2018 at 09:29:36AM +0100, Tom de Vries wrote:
>>> This is the libgomp/ except libgomp/testsuite/ part of the gomp-5_0-branch
>>> merge to trunk I've just committed.
>>>
>>> 2018-11-08  Jakub Jelinek  <jakub@redhat.com>
>>>
>>> 	* affinity.c (gomp_display_affinity_place): New function.
>>> 	* affinity-fmt.c: New file.
>>
>>> 	* fortran.c: Include stdio.h and string.h.
>>> 	(omp_pause_resource, omp_pause_resource_all): Add ialias_redirect.
>>> 	(omp_get_schedule_, omp_get_schedule_8_): Mask off GFS_MONOTONIC bit.
>>> 	(omp_set_affinity_format_, omp_get_affinity_format_,
>>> 	omp_display_affinity_, omp_capture_affinity_, omp_pause_resource_,
>>> 	omp_pause_resource_all_): New functions.
>>
>> OK for trunk?
>>
>> Thanks,
>> - Tom
> 
>> [libgomp, nvptx] Disable OMP_{DISPLAY_AFFINITY,AFFINITY_FORMAT} support
>>
>> Disable compilation of support for OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT
>> for nvptx.
>>
>> This fixes some libgomp testsuite failures for x86_64 with nvptx accelerator.
>>
>> Build on x86_64 with nvptx accelerator, tested libgomp.
>>
>> 2018-12-12  Tom de Vries  <tdevries@suse.de>
>>
>> 	* affinity.c (gomp_display_affinity_place): Guard with
>> 	#ifndef LIBGOMP_OFFLOADED_ONLY.
>> 	* fortran.c (omp_set_affinity_format_, omp_get_affinity_format_)
>> 	(omp_display_affinity_, omp_capture_affinity_): Same.
>> 	* libgomp/config/nvptx/affinity-fmt.c: New, empty file overriding
>> 	libgomp/affinity-fmt.c.
> 
> The runtime APIs should still be available inside of OpenMP regions, your
> patch makes them unavailable.

Ah, I see.

> What exactly doesn't work?
> hostname handling, getpid, thread_id, affinity places?

The concrete error I'm getting is unresolved symbol getpid.  This is
caused by the AC_COMPILE_IFELSE configure test for HAVE_GETPID passing
for nvptx, while the master newlib for nvptx does not contain getpid.

> I'd prefer for now to just stub what doesn't work in the LIBGOMP_OFFLOADED_ONLY
> case (print "node", 0 as pid, 0 as thread id, something for affinity
> (0 or 0-N where N is the number of warps it can support or whatever).
> 

OK, I'll give that a try.

Thanks,
- Tom

> Eventually we need to find a way how to transfer some ICVs and other data
> from the host to the offloading library, either process shared that aren't
> changing, which can include the hostname, getpid, or some others that would
> need to be passed for every target region.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]