Deeploy.Targets.PULPOpen.Templates.TransposeTemplate.PULPTransposeTemplate

class Deeploy.Targets.PULPOpen.Templates.TransposeTemplate.PULPTransposeTemplate(templateStr: str)

Bases: NodeTemplate

Methods

__init__(templateStr: str)

Initialize a NodeTemplate object

Parameters:

templateStr (str) – Mako template string. If tiling is supposed to be supported, this template string may only contain direct expressions that get added by either the operator’s parser or the alignToContext method.

__init__(templateStr)

Initialize a NodeTemplate object

alignToContext(ctxt, operatorRepresentation)

Helper method to extract Mako template expressions used in the backend's code generation step.

computeTransientBuffersSize(ctxt, ...)

Computes the size of transient buffers hoisted by this template given expressions for each variable added by the operator's parser.

generate([operatorRepresentation])

Generated the operator's C implementation

hoistTransientBuffers(ctxt, ...)

Registers the transient buffers required by this template.

internalSize()

Return the byte size of internal memory buffers used by this template

alignToContext(ctxt: NetworkContext, operatorRepresentation: Dict[str, str | Any]) Tuple[NetworkContext, Dict, List[str]]

Helper method to extract Mako template expressions used in the backend’s code generation step. Also hoists transient buffers.

Parameters:
  • ctxt (NetworkContext) – Current NetworkContext. Modifying is allowed within this method.

  • operatorRepresentation (OperatorRepresentation) – Current node representation. Modifying is allowed within this method.

Returns:

Tuple of the updated NetworkContext, operatorRepresentation and a list of the names of hoisted transient buffers

Return type:

Tuple[NetworkContext, OperatorRepresentation, List[str]]

computeTransientBuffersSize(ctxt: NetworkContext, operatorRepresentation: Dict[str, str | Any]) List[Tuple[str, int | IntVar]]

Computes the size of transient buffers hoisted by this template given expressions for each variable added by the operator’s parser.

Parameters:
  • ctxt (NetworkContext) – Current NetworkContext

  • operatorRepresentation (OperatorRepresentation) – The parser’s node representation

Returns:

Returns a list of tuples containing the hoisted buffer’s name and either a symbolic expression or an integer representing its size.

Return type:

List[Tuple[str, Union[int, IntVar]]]

generate(operatorRepresentation={}, **kwargs) str

Generated the operator’s C implementation

Parameters:

operatorRepresentation (The parser's node representation)

Returns:

Returns the operator’s C implementation

Return type:

str

Raises:

KeyError – Raises an error whenever an expression in the NodeTemplate’s templateString is not matched against the available expressions in the operatorRepresentation

hoistTransientBuffers(ctxt: NetworkContext, operatorRepresentation: Dict[str, str | Any]) Tuple[NetworkContext, Dict[str, str | Any], List[str]]

Registers the transient buffers required by this template. If tiling is applied, this method is called AFTER tiling.

Parameters:
  • ctxt (NetworkContext) – Current NetworkContext

  • operatorRepresentation (OperatorRepresentation) – The parser’s node representation

Returns:

Tuple containing the updated NetworkContext object, updated node representation and a list of names of all hoisted TransientBuffers

Return type:

Tuple[NetworkContext, OperatorRepresentation, List[str]]

internalSize() int

Return the byte size of internal memory buffers used by this template

Returns:

byte size of all transient internal buffers

Return type:

int