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: [patch, libgomp] Enable OpenACC GCN testing


On 15/11/2019 12:43, Jakub Jelinek wrote:
APUs, such as Carizzo are shared memory. DGPUs, such as Fiji and Vega, have
their own memory. A DGPU can access host memory, provided that it has been
set up just so, but that is very slow, and I don't know of a way to do that
without still having to copy the program data into that special region.

Ah, that is going to be interesting e.g. for
#pragma omp requires unified_shared_memory
My plan was that for this the TU constructor would call some libgomp
library function that in the end would when loading plugins ensure that
only shared memory supporting plugins are loaded.  If the gcn plugin
will support shared memory only conditionally, we'll need some interfaces to
ensure that.

This is a problem indeed. Right now the capability has to be declared up front, before the device has even been initialized. In theory, there could be both devices in a single machine, and that would be even worse, but then we don't support machines with heterogeneous DGPUs well either (it works fine for user programs that just use the GPU they're given).

We've been basically ignoring it because a) we don't have any APUs to test with, and b) we're being paid to produce a toolchain for supercomputers that will never use APUs (nor mismatched DGPUs).

The APU can (pretend to) not use shared memory, of course, so it might Just Work, but I can't be sure.

There's also the problem of the XNACK support, which we haven't implemented in the backend. That's specific to APUs, so we'll never need it. You can get some distance without -- there was no mention of it in Honza's original port that targeted Carizzo -- but I don't really know how far.

Really, if nobody with an APU wants to fix it, we should just remove the Carizzo support that is there.

Andrew


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