Developer Guide and Reference

  • 2022.2
  • 09/08/2022
  • Public Content

DPCT1097

Message

The function
<backward function name>
may require the workspace used to save intermediate results from function
<forward function name>
. By default, a workspace from
engine_ext
is selected according to the source data pointer, but this may be incorrect and cause a workspace data race. You may need to rewrite this code.

Detailed Help

You can manually pass a
dnnl::memory
object generated from the forward function to the backward function.
For example, this original CUDA* code:
cudnnLRNCrossChannelForward(handle, ...); ... cudnnLRNCrossChannelBackward(handle, ...);
results in the following migrated SYCL* code:
handle.lrn_forward(...); ... handle.lrn_backward(...);
which is manually adjusted to:
dnnl::memory workspace; handle.lrn_forward(..., &workspace); ... handle.lrn_backward(..., &workspace);

Suggestions to Fix

You may need to adjust the original code.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.