Hi Thomas, hi all,
On 08.02.23 00:26, Thomas Schwinge wrote:
On 2023-02-02T22:13:20+0100, I wrote:
I'd offer to co-mentor, but I'd rather not be the only one.
Still looking for someone to join, please! :-)
As kind of mentioned before, I am willing to co-mentor :-)
Here it is:
https://gcc.gnu.org/wiki/SummerOfCode#Separate_Host_Process_Offloading
Please have a look, and fix up if necessary.
Thanks. (Disclaimer: I still have to read it.)
I think this could be also the basis for remote OpenMP offload handling
via the to-be-created target-specific plugin. In this case, to do
offloading to the remote CPU. Writing such an RPC wrapper would be an
independent task, which then should also handle the offloading to a
remote GPU. — Citing an LLVM paper about such a feature:
"The basic idea behind the Remote OpenMP Offloading implementation is to
provide a transparent communication channel between the
target-independent library on the host with the target-dependent library
on the remote system. This use case matches the well-known remote
procedure calls (RPC) idiom. To facilitate communication, we added two
new components into LLVM/OpenMP that build a tunnel from the host to the
remote system through which all plugin API calls ( in Fig. 3) are
forwarded. The first is a remote offloading plugin () which presents
itself to the host as any other plugin would, i.e., it looks no
different than the NVIDIA GPU offloading plugin. The second is a server
application that must be running on the remote system () that mimics
when it communicates with the remote device plugin, such as the one for
NVIDIA GPU offloading. The bottom row of Fig. 3 illustrates their
interaction with the existing infrastructure."
(From https://link.springer.com/chapter/10.1007/978-3-031-07312-0_16
(requires subscription))
About this topic, see also
https://www.hpcwire.com/off-the-wire/remote-openmp-offloading-paper-recognized-at-isc/
and https://baodishan.com/assets/pdf/iwomp22.pdf (both freely
accessible, the latter has a lot of details).
Tobias
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht
München, HRB 106955