Default compute dimensions (runtime)
Nathan Sidwell
nathan@acm.org
Wed Feb 3 15:30:00 GMT 2016
Jakub,
this is the runtime side of default compute dimension support.
1) extend the -fopenacc-dim=X:Y:Z syntax to allow '-' indicating a runtime
choice. (0 also indicates that, but I thought best to have an explicit syntax
as well).
2) New plugin helper 'GOMP_PLUGIN_acc_default_dims' that parses a
GOMP_OPENACC_DIM environment variable. The syntax here is the same as that for
the -fopenacc-dim option -- except '-' isn't permitted. I have future-proofed
the interface by including a plugin tag parameter. This will permit
device_type support.
3) the plugin itself lazily calls GOMP_PLUGIN_acc_default_dims when it sees an
unspecified dimension. Validates the default dimensions and then plugs them
into the launch parameters.
The testcase reuses the compile-time testcase by breaking its core to a header
file and explicitly setting the environment variable before first launch. The
original testcase also explitily sets the environment variable, to make sure
it's not being considered.
There doesn't seem to be a mechanism warning messages -- only debug ones or
fatal errors. I'm not sure what the best approach to handling errors in the env
var parsing, and ducked to silently ignore problems (and the plugin will then
provide fallback values).
ok?
nathan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: trunk-dim-runtime.patch
Type: text/x-patch
Size: 13941 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160203/da83408d/attachment.bin>
More information about the Gcc-patches
mailing list