Deeploy.Targets.Neureka.TileConstraints.NeurekaConvTileConstraint.NeurekaConvTileConstraint
- class Deeploy.Targets.Neureka.TileConstraints.NeurekaConvTileConstraint.NeurekaConvTileConstraint
Bases:
TileConstraintShared tiling logic for the N-EUREKA convolution variants (pointwise, depthwise, dense).
The serialization skeleton (input-cube computation, I/O strides, subtile counters, load schedules) is identical across the three; the parts that genuinely differ are exposed as hooks:
_ConvTemplate: the template class providinggetCountersfor this variant._adjustInputCube: post-process the computed input cube (depthwise slices channels)._addWeightSchedule: emit the weight base offset / load schedule (packing differs per variant).
Methods
- __init__()
__init__()addGeometricalConstraint(tilerModel, ...)Override this function to add your geometric constraints.
addPolicyConstraint(tilerModel, parseDict, ctxt)Override this function to add your custom constraints to your node.
constructSymbolicNodeRep(tilerModel, ...)extractBaseAddr(tilingSolution, ...)getBaseAddr(tilingSolution, targetMemLevel, name)sanitizeTilingSchedule(tilingSchedule)serializeTilingSolution(tilingSolution, ...)Compute the required input tiles as a sequence of HyperRectangles
wrapTilingSolution(tilingSolution, ...)- classmethod serializeTilingSolution(tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], targetMemLevel: str, ctxt: NetworkContext, operatorRepresentation: Dict[str, str | Any]) Tuple[VariableReplacementScheme, TilingSchedule]
Compute the required input tiles as a sequence of HyperRectangles
- Parameters:
tilingSolution (NodeMemoryConstraint) – The final tiling solution computed in the midend
absoluteOutputCubes (List[AbsoluteHyperRectangle]) – A list of HyperRectangles that represent tiles of the operator’s outputs with absolute offsets
targetMemLevel (str) – The name of the MemoryLevel registered within the Platform’s MemoryHierarchy where tiles should be transferred into (e.g.: L2, L1,… )
ctxt (NetworkContext) – The current NetworkContext
operatorRepresentation (Dict) – The operator’s node representation dictionary
- Returns:
Return a VariableReplacementScheme to express which expressions within the target template might have to be replaced due to tiling. Also return a TilingSchedule to define one input HyperRectangle tuple for each output tile
- Return type:
- Raises:
Exception – Raises an exception unless overridden in the calling class
- static addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) TilerModel
Override this function to add your geometric constraints. Each dimension of the output tensors should be determinable through a linear equation that utilizes the dimensions of the input tensors and the attributes of the nodes.
- static addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) TilerModel
Override this function to add your custom constraints to your node.