Re: [Patch] libgomp.texi: Reverse-offload updates (was: [Patch] libgomp: Handle OpenMP's reverse offloads)

2023-01-31 Thread Jakub Jelinek via Gcc-patches
On Sat, Dec 10, 2022 at 09:18:26AM +0100, Tobias Burnus wrote: > libgomp.texi: Reverse-offload updates > > libgomp/ > * libgomp.texi (5.0 Impl. Status): Update 'requires' and 'ancestor'. > (GCN): Add item about 'omp requires'. > (nvptx): Likewise; add item about reverse offload.

Re: [Patch] libgomp: Handle OpenMP's reverse offloads

2022-12-15 Thread Tobias Burnus
Hi, On 15.12.22 20:42, Tobias Burnus wrote: If the libgomp plugin doesn't request special 'host_to_dev_cpy'/'dev_to_host_cpy' for 'gomp_target_rev', then standard 'gomp_copy_host2dev'/'gomp_copy_dev2host' are used, which use 'gomp_device_copy', which expects the device to be locked. (As can be

Re: [Patch] libgomp: Handle OpenMP's reverse offloads

2022-12-15 Thread Tobias Burnus
Hi, I have not fully tried to understand it, yet. (A) Regarding the issue of stalling, see als Andrew's patch and the discussion about it in "[PATCH] libgomp: fix hang on fatal error", https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603616.html and in particular Jakub's two replies.

Re: [Patch] libgomp: Handle OpenMP's reverse offloads

2022-12-15 Thread Jakub Jelinek via Gcc-patches
On Thu, Dec 15, 2022 at 06:34:30PM +0100, Thomas Schwinge wrote: > --- a/libgomp/libgomp-plugin.c > +++ b/libgomp/libgomp-plugin.c > @@ -82,9 +82,9 @@ GOMP_PLUGIN_fatal (const char *msg, ...) > void > GOMP_PLUGIN_target_rev (uint64_t fn_ptr, uint64_t mapnum, uint64_t > devaddrs_ptr, >

Re: [Patch] libgomp: Handle OpenMP's reverse offloads

2022-12-15 Thread Thomas Schwinge
Hi! On 2022-12-06T08:45:07+0100, Tobias Burnus wrote: > This patch finally handles reverse offload. Yay! \o/ The 'libgomp.fortran/reverse-offload-5.f90' test case for nvptx offloading runs into an error condition (thus, XFAILed) -- but then blocks until timeout, insted of terminating

Re: [Patch] libgomp: Handle OpenMP's reverse offloads

2022-12-10 Thread Jakub Jelinek via Gcc-patches
On Sat, Dec 10, 2022 at 09:11:24AM +0100, Tobias Burnus wrote: > It is used as 'typedef struct reverse_splay_tree_node_s > *reverse_splay_tree_node;' in > > struct target_mem_desc { > > reverse_splay_tree_node rev_array; > } > > but also as > > struct gomp_device_descr > { > ... >

Re: [Patch] libgomp.texi: Reverse-offload updates (was: [Patch] libgomp: Handle OpenMP's reverse offloads)

2022-12-10 Thread Tobias Burnus
Now that the reverse-offload patch is (nearly) in: On 07.12.22 09:08, Tobias Burnus wrote: On 06.12.22 08:45, Tobias Burnus wrote: * As follow-up, libgomp.texi must be updated Slight update to that uncommitted patch: I extended the nvptx entry to state that only one reverse-offload region

Re: [Patch] libgomp: Handle OpenMP's reverse offloads

2022-12-10 Thread Tobias Burnus
On 09.12.22 15:44, Jakub Jelinek wrote: On Tue, Dec 06, 2022 at 08:45:07AM +0100, Tobias Burnus wrote: [...] I think we just shouldn't support libgomp plugins for 32-bit libgomp, only host fallback. If you want offloading, use 64-bit host... (I concur.) libgomp: Handle OpenMP's reverse

Re: [Patch] libgomp: Handle OpenMP's reverse offloads

2022-12-09 Thread Jakub Jelinek via Gcc-patches
On Tue, Dec 06, 2022 at 08:45:07AM +0100, Tobias Burnus wrote: > 32bit vs. 64bit: libgomp itself is compiled with both -m32 and -m64; however, > nvptx and gcn requires -m64 on the device side and assume that the device > pointers are representable on the host (i.e. all are 64bit). The new code >

[Patch] libgomp.texi: Reverse-offload updates (was: [Patch] libgomp: Handle OpenMP's reverse offloads)

2022-12-07 Thread Tobias Burnus
On 06.12.22 08:45, Tobias Burnus wrote: * As follow-up, libgomp.texi must be updated That is what the attached patch does – obviously, it is depending on the main patch. OK (once the main patch is in)? Tobias - Siemens Electronic Design Automation GmbH; Anschrift:

[Patch] libgomp: Handle OpenMP's reverse offloads

2022-12-05 Thread Tobias Burnus
This patch finally handles reverse offload. Due to the prep work, it essentially only adds content to libgomp/target.c's gomp_target_rev(), except that it additionally saves the reverse-offload-function table in gomp_load_image_to_device. In the comment to "[Patch] libgomp: Add reverse-offload