Make forwardDims() optional and handle data dependency
Should address and close #16, #48 (closed), #92 (closed) and #95 (closed):
-
#16: re-focus the goal of
compile()
function, less centered aroundforwardDims()
. -
#48 (closed): remove the
associateInput()
execution path offorwardDims()
, therefore decoupling the two mechanisms, leaving much clearer error checking. -
#92 (closed):
forwardDims()
does not fail anymore if some operator cannot compute output dims (e.g.GenericOperator
), but simply return false. -
#95 (closed): enable scheduling of output dims data dependent graphs using tokens, by making
forwardDims()
optional in this case.
Changes:
- Renamed
computeOutputDims()
toforwardDims()
, for consistency withGraphView::forwardDims()
. - Added
allowDataDependency
toforwardDims()
, for handling of output dims data dependent operators. - Removed
associateInput()
fromforwardDims()
: only keep assertions, as input association should be properly handled outside this function.- Adapted
Identity
operator to work properly withoutforwardDims()
.
- Adapted
- Added
forwardDims()
call inOperatorTensor::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