With automatic_reshapes disabled, is NHCW data in DDR fed to the NN Core with no on-chip conversion?

I compiled a HEF with automatic_reshapes disabled, so no on-chip Format Conversion (Reshape) layers are added at the network boundary.

My understanding of the data path:

  • The input data reaches device DDR already in NHCW layout (the NN Core’s native format).
  • Since there is no on-chip reshape layer (automatic_reshapes disabled), the NN Core consumes the DDR data as-is, with no on-chip format conversion.

Question: Is this correct? Specifically —

  1. With automatic_reshapes disabled, does the DDR (NHCW) input reach the NN Core’s input boundary without any on-chip conversion?
  2. Is automatic_reshapes indeed the parameter that governs on-chip (NN Core) boundary conversion — as opposed to host-side conversion, which is handled separately by HailoRT’s format_order?

Thanks!

  • add

To confirm my understanding of the host-side behavior when automatic_reshapes is disabled:

  • If the input buffer is in NHWC, HailoRT (host CPU) reorders it to NHCW before sending it to the NN Core.
  • If the input buffer is already NHCW, there is no host-side (CPU) reorder — it is passed to the NN Core as-is.

Is this correct?

version : HailoRT 4.23.0, DFC 3.33.1

Does asking questions about data formats violate the community guidelines? If so, I will delete the post.

If the stream input is NHCW format there will be no conversion.

You can check the input format by running the following command:

hailortcli parse-hef --parse-streams model.hef

Yes, when you set this parameter to disable the Hailo Dataflow Compiler will not add the reshape.

If the VStream format is NHWC, the data will be reordered ether by HailoRT or the device. This depends on whether the Hailo Dataflow Compiler can add the reshape on device without affecting the FPS.