Skip to content

Make forwardDims() optional and handle data dependency

Olivier BICHLER requested to merge fowarddims into dev

Should address and close #16, #48 (closed), #92 and #95:

  • #16: re-focus the goal of compile() function, less centered around forwardDims().
  • #48 (closed): remove the associateInput() execution path of forwardDims(), therefore decoupling the two mechanisms, leaving much clearer error checking.
  • #92: forwardDims() does not fail anymore if some operator cannot compute output dims (e.g. GenericOperator), but simply return false.
  • #95: enable scheduling of output dims data dependent graphs using tokens, by making forwardDims() optional in this case.

Changes:

  • Renamed computeOutputDims() to forwardDims(), for consistency with GraphView::forwardDims().
  • Added allowDataDependency to forwardDims(), for handling of output dims data dependent operators.
  • Removed associateInput() from forwardDims(): only keep assertions, as input association should be properly handled outside this function.
    • Adapted Identity operator to work properly without forwardDims().
  • Added forwardDims() call in OperatorTensor::forward() if output dims are not forwarded.
  • forwardDims() is now fully optional, removed the call when not necessary.
  • Added default implementation for several operators, see &2.
Edited by Olivier BICHLER

Merge request reports