finn.custom_op.xnorpopcount (module)¶
-
class
finn.custom_op.xnorpopcount.XnorPopcountMatMul(onnx_node)¶ Bases:
finn.custom_op.base.CustomOpClass that corresponds to a XNOR-popcount matrix multiplication node.
-
execute_node(context, graph)¶ Execute this CustomOp instance, given the execution context and ONNX graph.
-
get_nodeattr_types()¶ Returns a dict of permitted attributes for node, where: returned_dict[attribute_name] = (dtype, require, default_value) - dtype indicates which member of the ONNX AttributeProto will be utilized - require indicates whether this attribute is required - default_val indicates the default value that will be used if the attribute is not set
-
infer_node_datatype(model)¶ Set the DataType annotations corresponding to the outputs of this node.
-
make_shape_compatible_op(model)¶ Returns a standard ONNX op which is compatible with this CustomOp for performing shape inference.
-
verify_node()¶ Verifies that all attributes the node needs are there and that particular attributes are set correctly. Also checks if the number of inputs is equal to the expected number.
-
-
finn.custom_op.xnorpopcount.xnorpopcountmatmul(inp0, inp1)¶ Simulates XNOR-popcount matrix multiplication as a regular bipolar matrix multiplication followed by some post processing.