|
IRON 1a5eed49d3c0721a318ac369f725acc96b7c4584
|


Public Member Functions | |
| __init__ (self, str name, list[type[np.ndarray]|np.dtype]|None arg_types=None) | |
| tuple[int,...] | arg_shape (self, int arg_index=0) |
| arg_dtype (self, int arg_index=0) | |
| int | tile_size (self, int arg_index=0) |
| list | arg_types (self) |
| __call__ (self, *args, **kwargs) | |
Public Member Functions inherited from iron.resolvable.Resolvable | |
| None | resolve (self, ir.Location|None loc=None, ir.InsertionPoint|None ip=None) |
| list | tiles (self) |
Protected Member Functions | |
| _resolve_arg (self, int arg_index) | |
Protected Attributes | |
| _name | |
| _arg_types | |
| _op | |
Base class for AIE core functions that resolve to a func.func declaration.
Subclasses:
Kernel: wraps a pre-compiled object file.
ExternalFunction: compiles C/C++ source at JIT time.
| iron.kernel.BaseKernel.__init__ | ( | self, | |
| str | name, | ||
| list[type[np.ndarray] | np.dtype] | None | arg_types = None |
||
| ) |
Args:
name: Symbol name of the function.
arg_types: Type signature of the function arguments. Defaults to None (empty list).
Reimplemented in iron.kernel.Kernel, and iron.kernel.ExternalFunction.
| iron.kernel.BaseKernel.__call__ | ( | self, | |
| * | args, | ||
| ** | kwargs | ||
| ) |
Emit a func.call to this kernel, validating argument count. Each argument is passed through :func:`_maybe_collapse_to_match` before the call. This silently inserts a ``memref.collapse_shape`` when an N-D contiguous memref arg is being fed into a 1-D kernel signature with the same element count and dtype — the typical case when an iron design holds 2-D ObjectFifo elements but the ``aie.iron.kernels.X`` helper declares a flat 1-D arg. See that helper's docstring for the full set of conditions. Real shape / dtype mismatches still fail at MLIR verification time. ``**kwargs`` are forwarded to the underlying ``func.call`` builder (typically ``loc=``, ``ip=`` for MLIR location / insertion point).
Reimplemented in iron.kernel.ExternalFunction.
|
protected |
Validate ``arg_index`` and return the underlying type entry.
| iron.kernel.BaseKernel.arg_dtype | ( | self, | |
| int | arg_index = 0 |
||
| ) |
Return the numpy dtype of the array argument at ``arg_index``.
Args:
arg_index: Index into ``arg_types``. Defaults to 0.
Raises:
ValueError: When ``arg_index`` is out of range or the
argument at that index is not an array type.
| tuple[int, ...] iron.kernel.BaseKernel.arg_shape | ( | self, | |
| int | arg_index = 0 |
||
| ) |
Return the shape tuple of the array argument at ``arg_index``.
Works for both ``np.ndarray[(...,), np.dtype[T]]`` parameterized
types (the canonical iron kernel signature) and MLIR MemRefType
operands.
Args:
arg_index: Index into ``arg_types``. Defaults to 0.
Raises:
ValueError: When ``arg_index`` is out of range or the
argument at that index is not an array type.
| list iron.kernel.BaseKernel.arg_types | ( | self | ) |
Return a copy of the argument type list.
| int iron.kernel.BaseKernel.tile_size | ( | self, | |
| int | arg_index = 0 |
||
| ) |
Return the first dimension of the array argument at ``arg_index``.
Convenience wrapper over :meth:`arg_shape` for the common case of
a 1-D buffer argument. ``tile_size(i)`` is equivalent to
``arg_shape(i)[0]``.
Args:
arg_index: Index into ``arg_types``. Defaults to 0.
|
protected |
|
protected |
|
protected |