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 <ja...@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 <tdevr...@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.