diff --git a/docs/finn/_build/doctrees/environment.pickle b/docs/finn/_build/doctrees/environment.pickle index db73cdb3d6629496c1d514b4412d95aad0cdb2ce..31b218738648a933793de0dd609f43751f0be3f1 100644 Binary files a/docs/finn/_build/doctrees/environment.pickle and b/docs/finn/_build/doctrees/environment.pickle differ diff --git a/docs/finn/_build/doctrees/src.doctree b/docs/finn/_build/doctrees/src.doctree index d71667b930ca0ee273c54937c32309d0641d3f8e..effdd10387320a6fcbce245d0bbbee330b41883e 100644 Binary files a/docs/finn/_build/doctrees/src.doctree and b/docs/finn/_build/doctrees/src.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.analysis.doctree b/docs/finn/_build/doctrees/src.finn.analysis.doctree index 537a9eb857e80c8d3cbe6886828cdef7bf00afba..4a8f4e7ce7dc0b2bb6a258960c17e41a817d3c69 100644 Binary files a/docs/finn/_build/doctrees/src.finn.analysis.doctree and b/docs/finn/_build/doctrees/src.finn.analysis.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.analysis.fpgadataflow.doctree b/docs/finn/_build/doctrees/src.finn.analysis.fpgadataflow.doctree index 107cf3a879dfe49d9fbdf80241468c71890e7218..e0d66e2d6de1bcb04b67fee1cf7d2aa92f98b695 100644 Binary files a/docs/finn/_build/doctrees/src.finn.analysis.fpgadataflow.doctree and b/docs/finn/_build/doctrees/src.finn.analysis.fpgadataflow.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.core.doctree b/docs/finn/_build/doctrees/src.finn.core.doctree index 06a5ac92b36d3535b27233b9e82d7ae502b7055f..391b283db87ea052186bb28e9967c77d1120814e 100644 Binary files a/docs/finn/_build/doctrees/src.finn.core.doctree and b/docs/finn/_build/doctrees/src.finn.core.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.custom_op.doctree b/docs/finn/_build/doctrees/src.finn.custom_op.doctree index 3d6b71eb873e4071d0613924d309092e80a2103a..385263a26e09aff393a9678199e40ca505c41f14 100644 Binary files a/docs/finn/_build/doctrees/src.finn.custom_op.doctree and b/docs/finn/_build/doctrees/src.finn.custom_op.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.custom_op.fpgadataflow.doctree b/docs/finn/_build/doctrees/src.finn.custom_op.fpgadataflow.doctree index 0fe9a8e1172fc91a4003101ae3bb8c582ba7391f..7f8ef8497181b3b51e256dca3d9535b9aa6648fa 100644 Binary files a/docs/finn/_build/doctrees/src.finn.custom_op.fpgadataflow.doctree and b/docs/finn/_build/doctrees/src.finn.custom_op.fpgadataflow.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.doctree b/docs/finn/_build/doctrees/src.finn.doctree index 2c58e6ccbbfde1ef72247beb6b45cd87034fdc1c..d8bf6824f2f39ee4cc130bf10504e2d11e32ba0b 100644 Binary files a/docs/finn/_build/doctrees/src.finn.doctree and b/docs/finn/_build/doctrees/src.finn.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.transformation.doctree b/docs/finn/_build/doctrees/src.finn.transformation.doctree index 04d3e4ed4ac83d23cae0df7a51a5e5f7c6bf4aac..188aa0d987f5b57ed21c44a1dcd8a0b880807335 100644 Binary files a/docs/finn/_build/doctrees/src.finn.transformation.doctree and b/docs/finn/_build/doctrees/src.finn.transformation.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.transformation.fpgadataflow.doctree b/docs/finn/_build/doctrees/src.finn.transformation.fpgadataflow.doctree index e03344480c1ebd48a08ced5d12185a0330580224..d7140a2a9a72b9aafd1194f6c25c2600044cfa3f 100644 Binary files a/docs/finn/_build/doctrees/src.finn.transformation.fpgadataflow.doctree and b/docs/finn/_build/doctrees/src.finn.transformation.fpgadataflow.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.transformation.streamline.doctree b/docs/finn/_build/doctrees/src.finn.transformation.streamline.doctree index 7ca4e6ad55290f4099446bf15837a107d6f77c32..fc4787c61b9dc5c94645cc5b08e29a6b1317f55a 100644 Binary files a/docs/finn/_build/doctrees/src.finn.transformation.streamline.doctree and b/docs/finn/_build/doctrees/src.finn.transformation.streamline.doctree differ diff --git a/docs/finn/_build/doctrees/src.finn.util.doctree b/docs/finn/_build/doctrees/src.finn.util.doctree index f8b86c8b13813fb4a809a9e606a2450248c017eb..b8ec438f0cf9c2738df4b83f592496f2209345bd 100644 Binary files a/docs/finn/_build/doctrees/src.finn.util.doctree and b/docs/finn/_build/doctrees/src.finn.util.doctree differ diff --git a/docs/finn/_build/html/genindex.html b/docs/finn/_build/html/genindex.html index 256c0a1c29c55568ed3e120d3b318ba06caf666f..7b89b2f704d7c4c1a6066b50d285087e963a1d21 100644 --- a/docs/finn/_build/html/genindex.html +++ b/docs/finn/_build/html/genindex.html @@ -35,8 +35,987 @@ <h1 id="index">Index</h1> <div class="genindex-jumpbox"> + <a href="#A"><strong>A</strong></a> + | <a href="#B"><strong>B</strong></a> + | <a href="#C"><strong>C</strong></a> + | <a href="#D"><strong>D</strong></a> + | <a href="#E"><strong>E</strong></a> + | <a href="#F"><strong>F</strong></a> + | <a href="#G"><strong>G</strong></a> + | <a href="#H"><strong>H</strong></a> + | <a href="#I"><strong>I</strong></a> + | <a href="#L"><strong>L</strong></a> + | <a href="#M"><strong>M</strong></a> + | <a href="#N"><strong>N</strong></a> + | <a href="#P"><strong>P</strong></a> + | <a href="#R"><strong>R</strong></a> + | <a href="#S"><strong>S</strong></a> + | <a href="#T"><strong>T</strong></a> + | <a href="#U"><strong>U</strong></a> + | <a href="#V"><strong>V</strong></a> + | <a href="#X"><strong>X</strong></a> </div> +<h2 id="A">A</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.absorb.Absorb1BitMulIntoMatMul">Absorb1BitMulIntoMatMul (class in src.finn.transformation.streamline.absorb)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.absorb.AbsorbAddIntoMultiThreshold">AbsorbAddIntoMultiThreshold (class in src.finn.transformation.streamline.absorb)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.absorb.AbsorbMulIntoMultiThreshold">AbsorbMulIntoMultiThreshold (class in src.finn.transformation.streamline.absorb)</a> +</li> + <li><a href="src.finn.analysis.html#src.finn.analysis.topology.all_tensors_f32">all_tensors_f32() (in module src.finn.analysis.topology)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.allowed">allowed() (src.finn.core.datatype.DataType method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.analysis">analysis() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.CppBuilder.append_includes">append_includes() (src.finn.util.basic.CppBuilder method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.CppBuilder.append_sources">append_sources() (src.finn.util.basic.CppBuilder method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.fpgadataflow.IPGenBuilder.append_tcl">append_tcl() (src.finn.util.fpgadataflow.IPGenBuilder method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.batchnorm_to_affine.BatchNormToAffine.apply">apply() (src.finn.transformation.batchnorm_to_affine.BatchNormToAffine method)</a> + + <ul> + <li><a href="src.finn.transformation.html#src.finn.transformation.bipolar_to_xnor.ConvertBipolarMatMulToXnorPopcount.apply">(src.finn.transformation.bipolar_to_xnor.ConvertBipolarMatMulToXnorPopcount method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.fold_constants.FoldConstants.apply">(src.finn.transformation.fold_constants.FoldConstants method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.cleanup.CleanUp.apply">(src.finn.transformation.fpgadataflow.cleanup.CleanUp method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.codegen_ipgen.CodeGen_ipgen.apply">(src.finn.transformation.fpgadataflow.codegen_ipgen.CodeGen_ipgen method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.codegen_ipstitch.CodeGen_ipstitch.apply">(src.finn.transformation.fpgadataflow.codegen_ipstitch.CodeGen_ipstitch method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.codegen_npysim.CodeGen_npysim.apply">(src.finn.transformation.fpgadataflow.codegen_npysim.CodeGen_npysim method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.compile.Compile.apply">(src.finn.transformation.fpgadataflow.compile.Compile method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.convert_to_hls_layers.InferBinaryStreamingFCLayer.apply">(src.finn.transformation.fpgadataflow.convert_to_hls_layers.InferBinaryStreamingFCLayer method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.create_dataflow_partition.CreateDataflowPartition.apply">(src.finn.transformation.fpgadataflow.create_dataflow_partition.CreateDataflowPartition method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.hlssynth_ipgen.HLSSynth_IPGen.apply">(src.finn.transformation.fpgadataflow.hlssynth_ipgen.HLSSynth_IPGen method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.insert_tlastmarker.InsertTLastMarker.apply">(src.finn.transformation.fpgadataflow.insert_tlastmarker.InsertTLastMarker method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.make_deployment.DeployToPYNQ.apply">(src.finn.transformation.fpgadataflow.make_deployment.DeployToPYNQ method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.make_pynq_driver.MakePYNQDriver.apply">(src.finn.transformation.fpgadataflow.make_pynq_driver.MakePYNQDriver method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.make_pynq_proj.MakePYNQProject.apply">(src.finn.transformation.fpgadataflow.make_pynq_proj.MakePYNQProject method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.set_sim_mode.SetSimMode.apply">(src.finn.transformation.fpgadataflow.set_sim_mode.SetSimMode method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.synth_pynq_proj.SynthPYNQProject.apply">(src.finn.transformation.fpgadataflow.synth_pynq_proj.SynthPYNQProject method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.general.ConvertSubToAdd.apply">(src.finn.transformation.general.ConvertSubToAdd method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.general.GiveRandomTensorNames.apply">(src.finn.transformation.general.GiveRandomTensorNames method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.general.GiveReadableTensorNames.apply">(src.finn.transformation.general.GiveReadableTensorNames method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.general.GiveUniqueNodeNames.apply">(src.finn.transformation.general.GiveUniqueNodeNames method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.infer_datatypes.InferDataTypes.apply">(src.finn.transformation.infer_datatypes.InferDataTypes method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.infer_shapes.InferShapes.apply">(src.finn.transformation.infer_shapes.InferShapes method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.absorb.Absorb1BitMulIntoMatMul.apply">(src.finn.transformation.streamline.absorb.Absorb1BitMulIntoMatMul method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.absorb.AbsorbAddIntoMultiThreshold.apply">(src.finn.transformation.streamline.absorb.AbsorbAddIntoMultiThreshold method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.absorb.AbsorbMulIntoMultiThreshold.apply">(src.finn.transformation.streamline.absorb.AbsorbMulIntoMultiThreshold method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.absorb.FactorOutMulSignMagnitude.apply">(src.finn.transformation.streamline.absorb.FactorOutMulSignMagnitude method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp.apply">(src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.reorder.MoveAddPastMul.apply">(src.finn.transformation.streamline.reorder.MoveAddPastMul method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.reorder.MoveScalarAddPastMatMul.apply">(src.finn.transformation.streamline.reorder.MoveScalarAddPastMatMul method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.reorder.MoveScalarMulPastMatMul.apply">(src.finn.transformation.streamline.reorder.MoveScalarMulPastMatMul method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.round_thresholds.RoundAndClipThresholds.apply">(src.finn.transformation.streamline.round_thresholds.RoundAndClipThresholds method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.sign_to_thres.ConvertSignToThres.apply">(src.finn.transformation.streamline.sign_to_thres.ConvertSignToThres method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.Streamline.apply">(src.finn.transformation.streamline.Streamline method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.Transformation.apply">(src.finn.transformation.Transformation method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.data_packing.array2hexstring">array2hexstring() (in module src.finn.util.data_packing)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="B">B</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.transformation.html#src.finn.transformation.batchnorm_to_affine.BatchNormToAffine">BatchNormToAffine (class in src.finn.transformation.batchnorm_to_affine)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.BINARY">BINARY (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.BIPOLAR">BIPOLAR (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.bitwidth">bitwidth() (src.finn.core.datatype.DataType method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.blackboxfunction">blackboxfunction() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.blackboxfunction">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.blackboxfunction">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.blackboxfunction">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.blackboxfunction">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.bram_estimation">bram_estimation() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.bram_estimation">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.bram_estimation">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.bram_estimation">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + </ul></li> + <li><a href="src.finn.util.html#src.finn.util.basic.CppBuilder.build">build() (src.finn.util.basic.CppBuilder method)</a> + + <ul> + <li><a href="src.finn.util.html#src.finn.util.fpgadataflow.IPGenBuilder.build">(src.finn.util.fpgadataflow.IPGenBuilder method)</a> +</li> + </ul></li> + </ul></td> +</tr></table> + +<h2 id="C">C</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.calc_tmem">calc_tmem() (src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.calc_wmem">calc_wmem() (src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.calculate_signed_dot_prod_range">calculate_signed_dot_prod_range() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.check_all_tensor_shapes_specified">check_all_tensor_shapes_specified() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.check_compatibility">check_compatibility() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.cleanup.CleanUp">CleanUp (class in src.finn.transformation.fpgadataflow.cleanup)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.code_generation_ipgen">code_generation_ipgen() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.code_generation_npysim">code_generation_npysim() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.codegen_ipgen.CodeGen_ipgen">CodeGen_ipgen (class in src.finn.transformation.fpgadataflow.codegen_ipgen)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.codegen_ipstitch.CodeGen_ipstitch">CodeGen_ipstitch (class in src.finn.transformation.fpgadataflow.codegen_ipstitch)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.codegen_npysim.CodeGen_npysim">CodeGen_npysim (class in src.finn.transformation.fpgadataflow.codegen_npysim)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedAdd">CollapseRepeatedAdd (class in src.finn.transformation.streamline.collapse_repeated)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedMul">CollapseRepeatedMul (class in src.finn.transformation.streamline.collapse_repeated)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp">CollapseRepeatedOp (class in src.finn.transformation.streamline.collapse_repeated)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.multithreshold.compare">compare() (in module src.finn.custom_op.multithreshold)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.onnx_exec.compare_execution">compare_execution() (in module src.finn.core.onnx_exec)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.compile.Compile">Compile (class in src.finn.transformation.fpgadataflow.compile)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.compile_singlenode_code">compile_singlenode_code() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.bipolar_to_xnor.ConvertBipolarMatMulToXnorPopcount">ConvertBipolarMatMulToXnorPopcount (class in src.finn.transformation.bipolar_to_xnor)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.sign_to_thres.ConvertSignToThres">ConvertSignToThres (class in src.finn.transformation.streamline.sign_to_thres)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.general.ConvertSubToAdd">ConvertSubToAdd (class in src.finn.transformation.general)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator">ConvolutionInputGenerator (class in src.finn.custom_op.fpgadataflow.convolutioninputgenerator)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.CppBuilder">CppBuilder (class in src.finn.util.basic)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.create_dataflow_partition.CreateDataflowPartition">CreateDataflowPartition (class in src.finn.transformation.fpgadataflow.create_dataflow_partition)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.CustomOp">CustomOp (class in src.finn.custom_op)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="D">D</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.dataoutstrm">dataoutstrm() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.dataoutstrm">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.dataoutstrm">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.dataoutstrm">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.dataoutstrm">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType">DataType (class in src.finn.core.datatype)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.defines">defines() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.defines">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.defines">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.defines">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.defines">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.make_deployment.DeployToPYNQ">DeployToPYNQ (class in src.finn.transformation.fpgadataflow.make_deployment)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.docompute">docompute() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.docompute">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.docompute">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.docompute">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.docompute">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.dynamic_input_to_npy">dynamic_input_to_npy() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="E">E</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.exec_precompiled_singlenode_model">exec_precompiled_singlenode_model() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.execute_custom_node.execute_custom_node">execute_custom_node() (in module src.finn.core.execute_custom_node)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.onnx_exec.execute_node">execute_node() (in module src.finn.core.onnx_exec)</a> + + <ul> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.CustomOp.execute_node">(src.finn.custom_op.CustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.execute_node">(src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.execute_node">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.execute_node">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.execute_node">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.multithreshold.MultiThreshold.execute_node">(src.finn.custom_op.multithreshold.MultiThreshold method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.execute_node">(src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.execute_node">(src.finn.custom_op.xnorpopcount.XnorPopcountMatMul method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.core.html#src.finn.core.onnx_exec.execute_onnx">execute_onnx() (in module src.finn.core.onnx_exec)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.onnx_exec.execute_onnx_and_make_model">execute_onnx_and_make_model() (in module src.finn.core.onnx_exec)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="F">F</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.absorb.FactorOutMulSignMagnitude">FactorOutMulSignMagnitude (class in src.finn.transformation.streamline.absorb)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.find_consumer">find_consumer() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.find_producer">find_producer() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.data_packing.finnpy_to_packed_bytearray">finnpy_to_packed_bytearray() (in module src.finn.util.data_packing)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.FLOAT32">FLOAT32 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.fold_constants.FoldConstants">FoldConstants (class in src.finn.transformation.fold_constants)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="G">G</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.basic.gen_finn_dt_tensor">gen_finn_dt_tensor() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.generate_params">generate_params() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.generate_params">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + </ul></li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.get_all_tensor_names">get_all_tensor_names() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.get_by_name">get_by_name() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.get_finn_root">get_finn_root() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_folded_input_shape">get_folded_input_shape() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_folded_input_shape">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_folded_input_shape">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_folded_output_shape">get_folded_output_shape() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_folded_output_shape">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_folded_output_shape">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_hls_compatible_threshold_tensor">get_hls_compatible_threshold_tensor() (src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_hls_compatible_weight_tensor">get_hls_compatible_weight_tensor() (src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.get_hls_datatype_str">get_hls_datatype_str() (src.finn.core.datatype.DataType method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.get_initializer">get_initializer() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_input_datatype">get_input_datatype() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_input_datatype">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + </ul></li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_instream_width">get_instream_width() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_instream_width">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_instream_width">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.get_metadata_prop">get_metadata_prop() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.CustomOp.get_nodeattr">get_nodeattr() (src.finn.custom_op.CustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.CustomOp.get_nodeattr_types">get_nodeattr_types() (src.finn.custom_op.CustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_nodeattr_types">(src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_nodeattr_types">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_nodeattr_types">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.get_nodeattr_types">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_nodeattr_types">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.multithreshold.MultiThreshold.get_nodeattr_types">(src.finn.custom_op.multithreshold.MultiThreshold method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.get_nodeattr_types">(src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.get_nodeattr_types">(src.finn.custom_op.xnorpopcount.XnorPopcountMatMul method)</a> +</li> + </ul></li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.get_num_possible_values">get_num_possible_values() (src.finn.core.datatype.DataType method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_number_output_values">get_number_output_values() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_number_output_values">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_number_output_values">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.get_number_output_values">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_number_output_values">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_output_datatype">get_output_datatype() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_output_datatype">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + </ul></li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_outstream_width">get_outstream_width() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_outstream_width">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_outstream_width">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.analysis.html#src.finn.analysis.topology.get_per_tensor_fanouts">get_per_tensor_fanouts() (in module src.finn.analysis.topology)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.get_smallest_possible">get_smallest_possible() (src.finn.core.datatype.DataType method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_stream_width">get_stream_width() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_template_param_values">get_template_param_values() (src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.get_tensor_datatype">get_tensor_datatype() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.get_tensor_fanout">get_tensor_fanout() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.get_tensor_shape">get_tensor_shape() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.get_tensor_valueinfo">get_tensor_valueinfo() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.test.get_test_model_def_fxn">get_test_model_def_fxn() (in module src.finn.util.test)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.test.get_test_model_trained">get_test_model_trained() (in module src.finn.util.test)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.test.get_test_model_untrained">get_test_model_untrained() (in module src.finn.util.test)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.test.get_trained_checkpoint">get_trained_checkpoint() (in module src.finn.util.test)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_weight_datatype">get_weight_datatype() (src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.registry.getCustomOp">getCustomOp() (in module src.finn.custom_op.registry)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.general.GiveRandomTensorNames">GiveRandomTensorNames (class in src.finn.transformation.general)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.general.GiveReadableTensorNames">GiveReadableTensorNames (class in src.finn.transformation.general)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.general.GiveUniqueNodeNames">GiveUniqueNodeNames (class in src.finn.transformation.general)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.global_includes">global_includes() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.global_includes">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.global_includes">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.global_includes">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.global_includes">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.graph">graph() (src.finn.core.modelwrapper.ModelWrapper property)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="H">H</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.data_packing.hexstring2npbytearray">hexstring2npbytearray() (in module src.finn.util.data_packing)</a> +</li> + <li><a href="src.finn.analysis.fpgadataflow.html#src.finn.analysis.fpgadataflow.hls_synth_res_estimation.hls_synth_res_estimation">hls_synth_res_estimation() (in module src.finn.analysis.fpgadataflow.hls_synth_res_estimation)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp">HLSCustomOp (class in src.finn.custom_op.fpgadataflow)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.hlssynth_ipgen.HLSSynth_IPGen">HLSSynth_IPGen (class in src.finn.transformation.fpgadataflow.hlssynth_ipgen)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="I">I</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.CustomOp.infer_node_datatype">infer_node_datatype() (src.finn.custom_op.CustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.infer_node_datatype">(src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.infer_node_datatype">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.infer_node_datatype">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.infer_node_datatype">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.multithreshold.MultiThreshold.infer_node_datatype">(src.finn.custom_op.multithreshold.MultiThreshold method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.infer_node_datatype">(src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.infer_node_datatype">(src.finn.custom_op.xnorpopcount.XnorPopcountMatMul method)</a> +</li> + </ul></li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.convert_to_hls_layers.InferBinaryStreamingFCLayer">InferBinaryStreamingFCLayer (class in src.finn.transformation.fpgadataflow.convert_to_hls_layers)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.infer_datatypes.InferDataTypes">InferDataTypes (class in src.finn.transformation.infer_datatypes)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.infer_shapes.InferShapes">InferShapes (class in src.finn.transformation.infer_shapes)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.insert_tlastmarker.InsertTLastMarker">InsertTLastMarker (class in src.finn.transformation.fpgadataflow.insert_tlastmarker)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.INT16">INT16 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.INT2">INT2 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.INT3">INT3 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.INT32">INT32 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.INT4">INT4 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.INT8">INT8 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.interleave_matrix_outer_dim_from_partitions">interleave_matrix_outer_dim_from_partitions() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.ipgen_singlenode_code">ipgen_singlenode_code() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.fpgadataflow.IPGenBuilder">IPGenBuilder (class in src.finn.util.fpgadataflow)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.is_integer">is_integer() (src.finn.core.datatype.DataType method)</a> +</li> + <li><a href="src.finn.analysis.html#src.finn.analysis.topology.is_linear">is_linear() (in module src.finn.analysis.topology)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="L">L</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.lut_estimation">lut_estimation() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.lut_estimation">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.lut_estimation">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.lut_estimation">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + </ul></li> + </ul></td> +</tr></table> + +<h2 id="M">M</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.basic.make_build_dir">make_build_dir() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.make_empty_exec_context">make_empty_exec_context() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.make_new_valueinfo_name">make_new_valueinfo_name() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.CustomOp.make_shape_compatible_op">make_shape_compatible_op() (src.finn.custom_op.CustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.make_shape_compatible_op">(src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.make_shape_compatible_op">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.make_shape_compatible_op">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.make_shape_compatible_op">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.multithreshold.MultiThreshold.make_shape_compatible_op">(src.finn.custom_op.multithreshold.MultiThreshold method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.make_shape_compatible_op">(src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.make_shape_compatible_op">(src.finn.custom_op.xnorpopcount.XnorPopcountMatMul method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.make_pynq_driver.MakePYNQDriver">MakePYNQDriver (class in src.finn.transformation.fpgadataflow.make_pynq_driver)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.make_pynq_proj.MakePYNQProject">MakePYNQProject (class in src.finn.transformation.fpgadataflow.make_pynq_proj)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.max">max() (src.finn.core.datatype.DataType method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.min">min() (src.finn.core.datatype.DataType method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.model">model() (src.finn.core.modelwrapper.ModelWrapper property)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper">ModelWrapper (class in src.finn.core.modelwrapper)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.reorder.MoveAddPastMul">MoveAddPastMul (class in src.finn.transformation.streamline.reorder)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.reorder.MoveScalarAddPastMatMul">MoveScalarAddPastMatMul (class in src.finn.transformation.streamline.reorder)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.reorder.MoveScalarMulPastMatMul">MoveScalarMulPastMatMul (class in src.finn.transformation.streamline.reorder)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.multithreshold.MultiThreshold">MultiThreshold (class in src.finn.custom_op.multithreshold)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.multithreshold.multithreshold">multithreshold() (in module src.finn.custom_op.multithreshold)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="N">N</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.analysis.html#src.finn.analysis.topology.node_inputs_in_expected_order">node_inputs_in_expected_order() (in module src.finn.analysis.topology)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.node_res_estimation">node_res_estimation() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.data_packing.npbytearray2hexstring">npbytearray2hexstring() (in module src.finn.util.data_packing)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.npy_to_dynamic_output">npy_to_dynamic_output() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.data_packing.npy_to_rtlsim_input">npy_to_rtlsim_input() (in module src.finn.util.data_packing)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.data_packing.numpy_to_hls_code">numpy_to_hls_code() (in module src.finn.util.data_packing)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="P">P</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.data_packing.pack_innermost_dim_as_hex_string">pack_innermost_dim_as_hex_string() (in module src.finn.util.data_packing)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.data_packing.packed_bytearray_to_finnpy">packed_bytearray_to_finnpy() (in module src.finn.util.data_packing)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.pad_tensor_to_multiple_of">pad_tensor_to_multiple_of() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.pragmas">pragmas() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.pragmas">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.pragmas">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.pragmas">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.pragmas">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.fpgadataflow.pyverilate_stitched_ip">pyverilate_stitched_ip() (in module src.finn.util.fpgadataflow)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="R">R</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.basic.random_string">random_string() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.read_npy_data">read_npy_data() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.read_npy_data">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.read_npy_data">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.read_npy_data">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.read_npy_data">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.util.html#src.finn.util.basic.remove_by_name">remove_by_name() (in module src.finn.util.basic)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.rename_tensor">rename_tensor() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.analysis.fpgadataflow.html#src.finn.analysis.fpgadataflow.res_estimation.res_estimation">res_estimation() (in module src.finn.analysis.fpgadataflow.res_estimation)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.reset_rtlsim">reset_rtlsim() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.round_thresholds.RoundAndClipThresholds">RoundAndClipThresholds (class in src.finn.transformation.streamline.round_thresholds)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.roundup_to_integer_multiple">roundup_to_integer_multiple() (in module src.finn.util.basic)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.rtlsim">rtlsim() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.data_packing.rtlsim_output_to_npy">rtlsim_output_to_npy() (in module src.finn.util.data_packing)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="S">S</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.save">save() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.save_as_npy">save_as_npy() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.save_as_npy">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.save_as_npy">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.save_as_npy">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.save_as_npy">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.set_attribute">set_attribute() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.basic.CppBuilder.set_executable_path">set_executable_path() (src.finn.util.basic.CppBuilder method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.set_initializer">set_initializer() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.fpgadataflow.IPGenBuilder.set_ipgen_path">set_ipgen_path() (src.finn.util.fpgadataflow.IPGenBuilder method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.set_metadata_prop">set_metadata_prop() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.CustomOp.set_nodeattr">set_nodeattr() (src.finn.custom_op.CustomOp method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.set_tensor_datatype">set_tensor_datatype() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.set_tensor_shape">set_tensor_shape() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.set_sim_mode.SetSimMode">SetSimMode (class in src.finn.transformation.fpgadataflow.set_sim_mode)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.signed">signed() (src.finn.core.datatype.DataType method)</a> +</li> + <li><a href="src.html#module-src">src (module)</a> +</li> + <li><a href="src.finn.html#module-src.finn">src.finn (module)</a> +</li> + <li><a href="src.finn.analysis.html#module-src.finn.analysis">src.finn.analysis (module)</a> +</li> + <li><a href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow">src.finn.analysis.fpgadataflow (module)</a> +</li> + <li><a href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.hls_synth_res_estimation">src.finn.analysis.fpgadataflow.hls_synth_res_estimation (module)</a> +</li> + <li><a href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.res_estimation">src.finn.analysis.fpgadataflow.res_estimation (module)</a> +</li> + <li><a href="src.finn.analysis.html#module-src.finn.analysis.topology">src.finn.analysis.topology (module)</a> +</li> + <li><a href="src.finn.analysis.html#module-src.finn.analysis.verify_custom_nodes">src.finn.analysis.verify_custom_nodes (module)</a> +</li> + <li><a href="src.finn.core.html#module-src.finn.core">src.finn.core (module)</a> +</li> + <li><a href="src.finn.core.html#module-src.finn.core.datatype">src.finn.core.datatype (module)</a> +</li> + <li><a href="src.finn.core.html#module-src.finn.core.execute_custom_node">src.finn.core.execute_custom_node (module)</a> +</li> + <li><a href="src.finn.core.html#module-src.finn.core.modelwrapper">src.finn.core.modelwrapper (module)</a> +</li> + <li><a href="src.finn.core.html#module-src.finn.core.onnx_exec">src.finn.core.onnx_exec (module)</a> +</li> + <li><a href="src.finn.custom_op.html#module-src.finn.custom_op">src.finn.custom_op (module)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow">src.finn.custom_op.fpgadataflow (module)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.convolutioninputgenerator">src.finn.custom_op.fpgadataflow.convolutioninputgenerator (module)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingfclayer_batch">src.finn.custom_op.fpgadataflow.streamingfclayer_batch (module)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingmaxpool_batch">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch (module)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.templates">src.finn.custom_op.fpgadataflow.templates (module)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.tlastmarker">src.finn.custom_op.fpgadataflow.tlastmarker (module)</a> +</li> + <li><a href="src.finn.custom_op.html#module-src.finn.custom_op.multithreshold">src.finn.custom_op.multithreshold (module)</a> +</li> + <li><a href="src.finn.custom_op.html#module-src.finn.custom_op.registry">src.finn.custom_op.registry (module)</a> +</li> + <li><a href="src.finn.custom_op.html#module-src.finn.custom_op.streamingdataflowpartition">src.finn.custom_op.streamingdataflowpartition (module)</a> +</li> + <li><a href="src.finn.custom_op.html#module-src.finn.custom_op.xnorpopcount">src.finn.custom_op.xnorpopcount (module)</a> +</li> + <li><a href="src.finn.transformation.html#module-src.finn.transformation">src.finn.transformation (module)</a> +</li> + <li><a href="src.finn.transformation.html#module-src.finn.transformation.batchnorm_to_affine">src.finn.transformation.batchnorm_to_affine (module)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.transformation.html#module-src.finn.transformation.bipolar_to_xnor">src.finn.transformation.bipolar_to_xnor (module)</a> +</li> + <li><a href="src.finn.transformation.html#module-src.finn.transformation.fold_constants">src.finn.transformation.fold_constants (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow">src.finn.transformation.fpgadataflow (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.cleanup">src.finn.transformation.fpgadataflow.cleanup (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipgen">src.finn.transformation.fpgadataflow.codegen_ipgen (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipstitch">src.finn.transformation.fpgadataflow.codegen_ipstitch (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_npysim">src.finn.transformation.fpgadataflow.codegen_npysim (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.compile">src.finn.transformation.fpgadataflow.compile (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.convert_to_hls_layers">src.finn.transformation.fpgadataflow.convert_to_hls_layers (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.create_dataflow_partition">src.finn.transformation.fpgadataflow.create_dataflow_partition (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.hlssynth_ipgen">src.finn.transformation.fpgadataflow.hlssynth_ipgen (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.insert_tlastmarker">src.finn.transformation.fpgadataflow.insert_tlastmarker (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_deployment">src.finn.transformation.fpgadataflow.make_deployment (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_driver">src.finn.transformation.fpgadataflow.make_pynq_driver (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_proj">src.finn.transformation.fpgadataflow.make_pynq_proj (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.set_sim_mode">src.finn.transformation.fpgadataflow.set_sim_mode (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.synth_pynq_proj">src.finn.transformation.fpgadataflow.synth_pynq_proj (module)</a> +</li> + <li><a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.templates">src.finn.transformation.fpgadataflow.templates (module)</a> +</li> + <li><a href="src.finn.transformation.html#module-src.finn.transformation.general">src.finn.transformation.general (module)</a> +</li> + <li><a href="src.finn.transformation.html#module-src.finn.transformation.infer_datatypes">src.finn.transformation.infer_datatypes (module)</a> +</li> + <li><a href="src.finn.transformation.html#module-src.finn.transformation.infer_shapes">src.finn.transformation.infer_shapes (module)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline">src.finn.transformation.streamline (module)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.absorb">src.finn.transformation.streamline.absorb (module)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.collapse_repeated">src.finn.transformation.streamline.collapse_repeated (module)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.reorder">src.finn.transformation.streamline.reorder (module)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.round_thresholds">src.finn.transformation.streamline.round_thresholds (module)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.sign_to_thres">src.finn.transformation.streamline.sign_to_thres (module)</a> +</li> + <li><a href="src.finn.util.html#module-src.finn.util">src.finn.util (module)</a> +</li> + <li><a href="src.finn.util.html#module-src.finn.util.basic">src.finn.util.basic (module)</a> +</li> + <li><a href="src.finn.util.html#module-src.finn.util.data_packing">src.finn.util.data_packing (module)</a> +</li> + <li><a href="src.finn.util.html#module-src.finn.util.fpgadataflow">src.finn.util.fpgadataflow (module)</a> +</li> + <li><a href="src.finn.util.html#module-src.finn.util.onnx">src.finn.util.onnx (module)</a> +</li> + <li><a href="src.finn.util.html#module-src.finn.util.test">src.finn.util.test (module)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition">StreamingDataflowPartition (class in src.finn.custom_op.streamingdataflowpartition)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch">StreamingFCLayer_Batch (class in src.finn.custom_op.fpgadataflow.streamingfclayer_batch)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch">StreamingMaxPool_Batch (class in src.finn.custom_op.fpgadataflow.streamingmaxpool_batch)</a> +</li> + <li><a href="src.finn.transformation.streamline.html#src.finn.transformation.streamline.Streamline">Streamline (class in src.finn.transformation.streamline)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.strm_decl">strm_decl() (src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.strm_decl">(src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.strm_decl">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.strm_decl">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.strm_decl">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + </ul></li> + <li><a href="src.finn.transformation.fpgadataflow.html#src.finn.transformation.fpgadataflow.synth_pynq_proj.SynthPYNQProject">SynthPYNQProject (class in src.finn.transformation.fpgadataflow.synth_pynq_proj)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="T">T</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.TERNARY">TERNARY (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker">TLastMarker (class in src.finn.custom_op.fpgadataflow.tlastmarker)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.HLSCustomOp.toggle_clk">toggle_clk() (src.finn.custom_op.fpgadataflow.HLSCustomOp method)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.modelwrapper.ModelWrapper.transform">transform() (src.finn.core.modelwrapper.ModelWrapper method)</a> +</li> + <li><a href="src.finn.transformation.html#src.finn.transformation.Transformation">Transformation (class in src.finn.transformation)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="U">U</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.UINT16">UINT16 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.UINT2">UINT2 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.UINT3">UINT3 (src.finn.core.datatype.DataType attribute)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.UINT32">UINT32 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.UINT4">UINT4 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.core.html#src.finn.core.datatype.DataType.UINT8">UINT8 (src.finn.core.datatype.DataType attribute)</a> +</li> + <li><a href="src.finn.util.html#src.finn.util.data_packing.unpack_innermost_dim_from_hex_string">unpack_innermost_dim_from_hex_string() (in module src.finn.util.data_packing)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="V">V</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.util.html#src.finn.util.onnx.valueinfo_to_tensor">valueinfo_to_tensor() (in module src.finn.util.onnx)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.CustomOp.verify_node">verify_node() (src.finn.custom_op.CustomOp method)</a> + + <ul> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.verify_node">(src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.verify_node">(src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.verify_node">(src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch method)</a> +</li> + <li><a href="src.finn.custom_op.fpgadataflow.html#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.verify_node">(src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.multithreshold.MultiThreshold.verify_node">(src.finn.custom_op.multithreshold.MultiThreshold method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.verify_node">(src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition method)</a> +</li> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.verify_node">(src.finn.custom_op.xnorpopcount.XnorPopcountMatMul method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.analysis.html#src.finn.analysis.verify_custom_nodes.verify_nodes">verify_nodes() (in module src.finn.analysis.verify_custom_nodes)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="X">X</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul">XnorPopcountMatMul (class in src.finn.custom_op.xnorpopcount)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="src.finn.custom_op.html#src.finn.custom_op.xnorpopcount.xnorpopcountmatmul">xnorpopcountmatmul() (in module src.finn.custom_op.xnorpopcount)</a> +</li> + </ul></td> +</tr></table> + </div> diff --git a/docs/finn/_build/html/modules.html b/docs/finn/_build/html/modules.html index 5b41dccb4be635ef0bd1b17df25595282a12fe8b..0b1993b0f905739bbf718fdb3853f42861541230 100644 --- a/docs/finn/_build/html/modules.html +++ b/docs/finn/_build/html/modules.html @@ -38,12 +38,12 @@ <li class="toctree-l2"><a class="reference internal" href="src.html#subpackages">Subpackages</a><ul> <li class="toctree-l3"><a class="reference internal" href="src.finn.html">src.finn package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.html#subpackages">Subpackages</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.html#module-src.finn">Module contents</a></li> </ul> </li> </ul> </li> -<li class="toctree-l2"><a class="reference internal" href="src.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.html#module-src">Module contents</a></li> </ul> </li> </ul> diff --git a/docs/finn/_build/html/objects.inv b/docs/finn/_build/html/objects.inv index 4f056627b7ea7514493cad64a0f8cd5b946f8411..8c49eed300d5e25b1fc0f539939b5ce97011b988 100644 Binary files a/docs/finn/_build/html/objects.inv and b/docs/finn/_build/html/objects.inv differ diff --git a/docs/finn/_build/html/py-modindex.html b/docs/finn/_build/html/py-modindex.html new file mode 100644 index 0000000000000000000000000000000000000000..4df1f6a948b2d33594c0e7a300d19d4062cc508e --- /dev/null +++ b/docs/finn/_build/html/py-modindex.html @@ -0,0 +1,405 @@ + +<!DOCTYPE html> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta charset="utf-8" /> + <title>Python Module Index — FINN documentation</title> + <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="_static/language_data.js"></script> + <link rel="index" title="Index" href="genindex.html" /> + <link rel="search" title="Search" href="search.html" /> + + + <link rel="stylesheet" href="_static/custom.css" type="text/css" /> + + + <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> + + + + </head><body> + + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + + + <div class="body" role="main"> + + + <h1>Python Module Index</h1> + + <div class="modindex-jumpbox"> + <a href="#cap-s"><strong>s</strong></a> + </div> + + <table class="indextable modindextable"> + <tr class="pcap"><td></td><td> </td><td></td></tr> + <tr class="cap" id="cap-s"><td></td><td> + <strong>s</strong></td><td></td></tr> + <tr> + <td><img src="_static/minus.png" class="toggler" + id="toggle-1" style="display: none" alt="-" /></td> + <td> + <a href="src.html#module-src"><code class="xref">src</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.html#module-src.finn"><code class="xref">src.finn</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.analysis.html#module-src.finn.analysis"><code class="xref">src.finn.analysis</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow"><code class="xref">src.finn.analysis.fpgadataflow</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.hls_synth_res_estimation"><code class="xref">src.finn.analysis.fpgadataflow.hls_synth_res_estimation</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.res_estimation"><code class="xref">src.finn.analysis.fpgadataflow.res_estimation</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.analysis.html#module-src.finn.analysis.topology"><code class="xref">src.finn.analysis.topology</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.analysis.html#module-src.finn.analysis.verify_custom_nodes"><code class="xref">src.finn.analysis.verify_custom_nodes</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.core.html#module-src.finn.core"><code class="xref">src.finn.core</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.core.html#module-src.finn.core.datatype"><code class="xref">src.finn.core.datatype</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.core.html#module-src.finn.core.execute_custom_node"><code class="xref">src.finn.core.execute_custom_node</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.core.html#module-src.finn.core.modelwrapper"><code class="xref">src.finn.core.modelwrapper</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.core.html#module-src.finn.core.onnx_exec"><code class="xref">src.finn.core.onnx_exec</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.html#module-src.finn.custom_op"><code class="xref">src.finn.custom_op</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow"><code class="xref">src.finn.custom_op.fpgadataflow</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.convolutioninputgenerator"><code class="xref">src.finn.custom_op.fpgadataflow.convolutioninputgenerator</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingfclayer_batch"><code class="xref">src.finn.custom_op.fpgadataflow.streamingfclayer_batch</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingmaxpool_batch"><code class="xref">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.templates"><code class="xref">src.finn.custom_op.fpgadataflow.templates</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.tlastmarker"><code class="xref">src.finn.custom_op.fpgadataflow.tlastmarker</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.html#module-src.finn.custom_op.multithreshold"><code class="xref">src.finn.custom_op.multithreshold</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.html#module-src.finn.custom_op.registry"><code class="xref">src.finn.custom_op.registry</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.html#module-src.finn.custom_op.streamingdataflowpartition"><code class="xref">src.finn.custom_op.streamingdataflowpartition</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.custom_op.html#module-src.finn.custom_op.xnorpopcount"><code class="xref">src.finn.custom_op.xnorpopcount</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.html#module-src.finn.transformation"><code class="xref">src.finn.transformation</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.html#module-src.finn.transformation.batchnorm_to_affine"><code class="xref">src.finn.transformation.batchnorm_to_affine</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.html#module-src.finn.transformation.bipolar_to_xnor"><code class="xref">src.finn.transformation.bipolar_to_xnor</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.html#module-src.finn.transformation.fold_constants"><code class="xref">src.finn.transformation.fold_constants</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow"><code class="xref">src.finn.transformation.fpgadataflow</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.cleanup"><code class="xref">src.finn.transformation.fpgadataflow.cleanup</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipgen"><code class="xref">src.finn.transformation.fpgadataflow.codegen_ipgen</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipstitch"><code class="xref">src.finn.transformation.fpgadataflow.codegen_ipstitch</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_npysim"><code class="xref">src.finn.transformation.fpgadataflow.codegen_npysim</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.compile"><code class="xref">src.finn.transformation.fpgadataflow.compile</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.convert_to_hls_layers"><code class="xref">src.finn.transformation.fpgadataflow.convert_to_hls_layers</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.create_dataflow_partition"><code class="xref">src.finn.transformation.fpgadataflow.create_dataflow_partition</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.hlssynth_ipgen"><code class="xref">src.finn.transformation.fpgadataflow.hlssynth_ipgen</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.insert_tlastmarker"><code class="xref">src.finn.transformation.fpgadataflow.insert_tlastmarker</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_deployment"><code class="xref">src.finn.transformation.fpgadataflow.make_deployment</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_driver"><code class="xref">src.finn.transformation.fpgadataflow.make_pynq_driver</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_proj"><code class="xref">src.finn.transformation.fpgadataflow.make_pynq_proj</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.set_sim_mode"><code class="xref">src.finn.transformation.fpgadataflow.set_sim_mode</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.synth_pynq_proj"><code class="xref">src.finn.transformation.fpgadataflow.synth_pynq_proj</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.templates"><code class="xref">src.finn.transformation.fpgadataflow.templates</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.html#module-src.finn.transformation.general"><code class="xref">src.finn.transformation.general</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.html#module-src.finn.transformation.infer_datatypes"><code class="xref">src.finn.transformation.infer_datatypes</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.html#module-src.finn.transformation.infer_shapes"><code class="xref">src.finn.transformation.infer_shapes</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline"><code class="xref">src.finn.transformation.streamline</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.absorb"><code class="xref">src.finn.transformation.streamline.absorb</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.collapse_repeated"><code class="xref">src.finn.transformation.streamline.collapse_repeated</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.reorder"><code class="xref">src.finn.transformation.streamline.reorder</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.round_thresholds"><code class="xref">src.finn.transformation.streamline.round_thresholds</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.sign_to_thres"><code class="xref">src.finn.transformation.streamline.sign_to_thres</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.util.html#module-src.finn.util"><code class="xref">src.finn.util</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.util.html#module-src.finn.util.basic"><code class="xref">src.finn.util.basic</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.util.html#module-src.finn.util.data_packing"><code class="xref">src.finn.util.data_packing</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.util.html#module-src.finn.util.fpgadataflow"><code class="xref">src.finn.util.fpgadataflow</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.util.html#module-src.finn.util.onnx"><code class="xref">src.finn.util.onnx</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="src.finn.util.html#module-src.finn.util.test"><code class="xref">src.finn.util.test</code></a></td><td> + <em></em></td></tr> + </table> + + + </div> + + </div> + </div> + <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> + <div class="sphinxsidebarwrapper"> +<h1 class="logo"><a href="index.html">FINN</a></h1> + + + + + + + + +<h3>Navigation</h3> + +<div class="relations"> +<h3>Related Topics</h3> +<ul> + <li><a href="index.html">Documentation overview</a><ul> + </ul></li> +</ul> +</div> +<div id="searchbox" style="display: none" role="search"> + <h3 id="searchlabel">Quick search</h3> + <div class="searchformwrapper"> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" aria-labelledby="searchlabel" /> + <input type="submit" value="Go" /> + </form> + </div> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + + + + + + + + + </div> + </div> + <div class="clearer"></div> + </div> + <div class="footer"> + ©2020, Y. Umuroglu, J. Petri-Koenig. + + | + Powered by <a href="http://sphinx-doc.org/">Sphinx 2.2.2</a> + & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + + </div> + + + + + </body> +</html> \ No newline at end of file diff --git a/docs/finn/_build/html/searchindex.js b/docs/finn/_build/html/searchindex.js index 5d80d1eefdf8bc589015aad5b9b09c413881528b..30505be391a3e5248a6bdd6f906b91e9717664d7 100644 --- a/docs/finn/_build/html/searchindex.js +++ b/docs/finn/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","modules","src","src.finn","src.finn.analysis","src.finn.analysis.fpgadataflow","src.finn.core","src.finn.custom_op","src.finn.custom_op.fpgadataflow","src.finn.transformation","src.finn.transformation.fpgadataflow","src.finn.transformation.streamline","src.finn.util"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","modules.rst","src.rst","src.finn.rst","src.finn.analysis.rst","src.finn.analysis.fpgadataflow.rst","src.finn.core.rst","src.finn.custom_op.rst","src.finn.custom_op.fpgadataflow.rst","src.finn.transformation.rst","src.finn.transformation.fpgadataflow.rst","src.finn.transformation.streamline.rst","src.finn.util.rst"],objects:{},objnames:{},objtypes:{},terms:{absorb:[2,3,9],analysi:[2,3],basic:[2,3],batchnorm_to_affin:[2,3],bipolar_to_xnor:[2,3],cleanup:[2,3,9],codegen_ipgen:[2,3,9],codegen_ipstitch:[2,3,9],codegen_npysim:[2,3,9],collapse_rep:[2,3,9],compil:[2,3,9],content:1,convert_to_hls_lay:[2,3,9],convolutioninputgener:[2,3,7],core:[2,3],create_dataflow_partit:[2,3,9],custom_op:[2,3],data_pack:[2,3],datatyp:[2,3],execute_custom_nod:[2,3],finn:[1,2],fold_const:[2,3],fpgadataflow:[2,3,4,7,9],gener:[2,3],hls_synth_res_estim:[2,3,4],hlssynth_ipgen:[2,3,9],index:0,infer_datatyp:[2,3],infer_shap:[2,3],insert_tlastmark:[2,3,9],make_deploy:[2,3,9],make_pynq_driv:[2,3,9],make_pynq_proj:[2,3,9],modelwrapp:[2,3],modul:[0,1],multithreshold:[2,3],onnx:[2,3],onnx_exec:[2,3],packag:1,page:0,registri:[2,3],reorder:[2,3,9],res_estim:[2,3,4],round_threshold:[2,3,9],search:0,set_sim_mod:[2,3,9],sign_to_thr:[2,3,9],streamingdataflowpartit:[2,3],streamingfclayer_batch:[2,3,7],streamingmaxpool_batch:[2,3,7],streamlin:[2,3,9],submodul:[2,3],subpackag:1,synth_pynq_proj:[2,3,9],templat:[2,3,7,9],test:[2,3],tlastmark:[2,3,7],topolog:[2,3],transform:[2,3],util:[2,3],verify_custom_nod:[2,3],xnorpopcount:[2,3]},titles:["Welcome to FINN\u2019s documentation!","src","src package","src.finn package","src.finn.analysis package","src.finn.analysis.fpgadataflow package","src.finn.core package","src.finn.custom_op package","src.finn.custom_op.fpgadataflow package","src.finn.transformation package","src.finn.transformation.fpgadataflow package","src.finn.transformation.streamline package","src.finn.util package"],titleterms:{absorb:11,analysi:[4,5],basic:12,batchnorm_to_affin:9,bipolar_to_xnor:9,cleanup:10,codegen_ipgen:10,codegen_ipstitch:10,codegen_npysim:10,collapse_rep:11,compil:10,content:[2,3,4,5,6,7,8,9,10,11,12],convert_to_hls_lay:10,convolutioninputgener:8,core:6,create_dataflow_partit:10,custom_op:[7,8],data_pack:12,datatyp:6,document:0,execute_custom_nod:6,finn:[0,3,4,5,6,7,8,9,10,11,12],fold_const:9,fpgadataflow:[5,8,10,12],gener:9,hls_synth_res_estim:5,hlssynth_ipgen:10,indic:0,infer_datatyp:9,infer_shap:9,insert_tlastmark:10,make_deploy:10,make_pynq_driv:10,make_pynq_proj:10,modelwrapp:6,modul:[2,3,4,5,6,7,8,9,10,11,12],multithreshold:7,onnx:12,onnx_exec:6,packag:[2,3,4,5,6,7,8,9,10,11,12],registri:7,reorder:11,res_estim:5,round_threshold:11,set_sim_mod:10,sign_to_thr:11,src:[1,2,3,4,5,6,7,8,9,10,11,12],streamingdataflowpartit:7,streamingfclayer_batch:8,streamingmaxpool_batch:8,streamlin:11,submodul:[4,5,6,7,8,9,10,11,12],subpackag:[2,3,4,7,9],synth_pynq_proj:10,tabl:0,templat:[8,10],test:12,tlastmark:8,topolog:4,transform:[9,10,11],util:12,verify_custom_nod:4,welcom:0,xnorpopcount:7}}) \ No newline at end of file +Search.setIndex({docnames:["index","modules","src","src.finn","src.finn.analysis","src.finn.analysis.fpgadataflow","src.finn.core","src.finn.custom_op","src.finn.custom_op.fpgadataflow","src.finn.transformation","src.finn.transformation.fpgadataflow","src.finn.transformation.streamline","src.finn.util"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","modules.rst","src.rst","src.finn.rst","src.finn.analysis.rst","src.finn.analysis.fpgadataflow.rst","src.finn.core.rst","src.finn.custom_op.rst","src.finn.custom_op.fpgadataflow.rst","src.finn.transformation.rst","src.finn.transformation.fpgadataflow.rst","src.finn.transformation.streamline.rst","src.finn.util.rst"],objects:{"":{src:[2,0,0,"-"]},"src.finn":{analysis:[4,0,0,"-"],core:[6,0,0,"-"],custom_op:[7,0,0,"-"],transformation:[9,0,0,"-"],util:[12,0,0,"-"]},"src.finn.analysis":{fpgadataflow:[5,0,0,"-"],topology:[4,0,0,"-"],verify_custom_nodes:[4,0,0,"-"]},"src.finn.analysis.fpgadataflow":{hls_synth_res_estimation:[5,0,0,"-"],res_estimation:[5,0,0,"-"]},"src.finn.analysis.fpgadataflow.hls_synth_res_estimation":{hls_synth_res_estimation:[5,1,1,""]},"src.finn.analysis.fpgadataflow.res_estimation":{res_estimation:[5,1,1,""]},"src.finn.analysis.topology":{all_tensors_f32:[4,1,1,""],get_per_tensor_fanouts:[4,1,1,""],is_linear:[4,1,1,""],node_inputs_in_expected_order:[4,1,1,""]},"src.finn.analysis.verify_custom_nodes":{verify_nodes:[4,1,1,""]},"src.finn.core":{datatype:[6,0,0,"-"],execute_custom_node:[6,0,0,"-"],modelwrapper:[6,0,0,"-"],onnx_exec:[6,0,0,"-"]},"src.finn.core.datatype":{DataType:[6,2,1,""]},"src.finn.core.datatype.DataType":{BINARY:[6,3,1,""],BIPOLAR:[6,3,1,""],FLOAT32:[6,3,1,""],INT16:[6,3,1,""],INT2:[6,3,1,""],INT32:[6,3,1,""],INT3:[6,3,1,""],INT4:[6,3,1,""],INT8:[6,3,1,""],TERNARY:[6,3,1,""],UINT16:[6,3,1,""],UINT2:[6,3,1,""],UINT32:[6,3,1,""],UINT3:[6,3,1,""],UINT4:[6,3,1,""],UINT8:[6,3,1,""],allowed:[6,4,1,""],bitwidth:[6,4,1,""],get_hls_datatype_str:[6,4,1,""],get_num_possible_values:[6,4,1,""],get_smallest_possible:[6,4,1,""],is_integer:[6,4,1,""],max:[6,4,1,""],min:[6,4,1,""],signed:[6,4,1,""]},"src.finn.core.execute_custom_node":{execute_custom_node:[6,1,1,""]},"src.finn.core.modelwrapper":{ModelWrapper:[6,2,1,""]},"src.finn.core.modelwrapper.ModelWrapper":{analysis:[6,4,1,""],check_all_tensor_shapes_specified:[6,4,1,""],check_compatibility:[6,4,1,""],find_consumer:[6,4,1,""],find_producer:[6,4,1,""],get_all_tensor_names:[6,4,1,""],get_initializer:[6,4,1,""],get_metadata_prop:[6,4,1,""],get_tensor_datatype:[6,4,1,""],get_tensor_fanout:[6,4,1,""],get_tensor_shape:[6,4,1,""],get_tensor_valueinfo:[6,4,1,""],graph:[6,4,1,""],make_empty_exec_context:[6,4,1,""],make_new_valueinfo_name:[6,4,1,""],model:[6,4,1,""],rename_tensor:[6,4,1,""],save:[6,4,1,""],set_attribute:[6,4,1,""],set_initializer:[6,4,1,""],set_metadata_prop:[6,4,1,""],set_tensor_datatype:[6,4,1,""],set_tensor_shape:[6,4,1,""],transform:[6,4,1,""]},"src.finn.core.onnx_exec":{compare_execution:[6,1,1,""],execute_node:[6,1,1,""],execute_onnx:[6,1,1,""],execute_onnx_and_make_model:[6,1,1,""]},"src.finn.custom_op":{CustomOp:[7,2,1,""],fpgadataflow:[8,0,0,"-"],multithreshold:[7,0,0,"-"],registry:[7,0,0,"-"],streamingdataflowpartition:[7,0,0,"-"],xnorpopcount:[7,0,0,"-"]},"src.finn.custom_op.CustomOp":{execute_node:[7,4,1,""],get_nodeattr:[7,4,1,""],get_nodeattr_types:[7,4,1,""],infer_node_datatype:[7,4,1,""],make_shape_compatible_op:[7,4,1,""],set_nodeattr:[7,4,1,""],verify_node:[7,4,1,""]},"src.finn.custom_op.fpgadataflow":{HLSCustomOp:[8,2,1,""],convolutioninputgenerator:[8,0,0,"-"],streamingfclayer_batch:[8,0,0,"-"],streamingmaxpool_batch:[8,0,0,"-"],templates:[8,0,0,"-"],tlastmarker:[8,0,0,"-"]},"src.finn.custom_op.fpgadataflow.HLSCustomOp":{blackboxfunction:[8,4,1,""],bram_estimation:[8,4,1,""],code_generation_ipgen:[8,4,1,""],code_generation_npysim:[8,4,1,""],compile_singlenode_code:[8,4,1,""],dataoutstrm:[8,4,1,""],defines:[8,4,1,""],docompute:[8,4,1,""],dynamic_input_to_npy:[8,4,1,""],exec_precompiled_singlenode_model:[8,4,1,""],execute_node:[8,4,1,""],generate_params:[8,4,1,""],get_folded_input_shape:[8,4,1,""],get_folded_output_shape:[8,4,1,""],get_instream_width:[8,4,1,""],get_nodeattr_types:[8,4,1,""],get_number_output_values:[8,4,1,""],get_outstream_width:[8,4,1,""],global_includes:[8,4,1,""],ipgen_singlenode_code:[8,4,1,""],lut_estimation:[8,4,1,""],node_res_estimation:[8,4,1,""],npy_to_dynamic_output:[8,4,1,""],pragmas:[8,4,1,""],read_npy_data:[8,4,1,""],reset_rtlsim:[8,4,1,""],rtlsim:[8,4,1,""],save_as_npy:[8,4,1,""],strm_decl:[8,4,1,""],toggle_clk:[8,4,1,""]},"src.finn.custom_op.fpgadataflow.convolutioninputgenerator":{ConvolutionInputGenerator:[8,2,1,""]},"src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator":{blackboxfunction:[8,4,1,""],bram_estimation:[8,4,1,""],dataoutstrm:[8,4,1,""],defines:[8,4,1,""],docompute:[8,4,1,""],execute_node:[8,4,1,""],get_input_datatype:[8,4,1,""],get_nodeattr_types:[8,4,1,""],get_number_output_values:[8,4,1,""],get_output_datatype:[8,4,1,""],get_stream_width:[8,4,1,""],global_includes:[8,4,1,""],infer_node_datatype:[8,4,1,""],lut_estimation:[8,4,1,""],make_shape_compatible_op:[8,4,1,""],pragmas:[8,4,1,""],read_npy_data:[8,4,1,""],save_as_npy:[8,4,1,""],strm_decl:[8,4,1,""],verify_node:[8,4,1,""]},"src.finn.custom_op.fpgadataflow.streamingfclayer_batch":{StreamingFCLayer_Batch:[8,2,1,""]},"src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch":{blackboxfunction:[8,4,1,""],bram_estimation:[8,4,1,""],calc_tmem:[8,4,1,""],calc_wmem:[8,4,1,""],dataoutstrm:[8,4,1,""],defines:[8,4,1,""],docompute:[8,4,1,""],execute_node:[8,4,1,""],generate_params:[8,4,1,""],get_folded_input_shape:[8,4,1,""],get_folded_output_shape:[8,4,1,""],get_hls_compatible_threshold_tensor:[8,4,1,""],get_hls_compatible_weight_tensor:[8,4,1,""],get_input_datatype:[8,4,1,""],get_instream_width:[8,4,1,""],get_nodeattr_types:[8,4,1,""],get_number_output_values:[8,4,1,""],get_output_datatype:[8,4,1,""],get_outstream_width:[8,4,1,""],get_template_param_values:[8,4,1,""],get_weight_datatype:[8,4,1,""],global_includes:[8,4,1,""],infer_node_datatype:[8,4,1,""],lut_estimation:[8,4,1,""],make_shape_compatible_op:[8,4,1,""],pragmas:[8,4,1,""],read_npy_data:[8,4,1,""],save_as_npy:[8,4,1,""],strm_decl:[8,4,1,""],verify_node:[8,4,1,""]},"src.finn.custom_op.fpgadataflow.streamingmaxpool_batch":{StreamingMaxPool_Batch:[8,2,1,""]},"src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch":{blackboxfunction:[8,4,1,""],bram_estimation:[8,4,1,""],dataoutstrm:[8,4,1,""],defines:[8,4,1,""],docompute:[8,4,1,""],get_nodeattr_types:[8,4,1,""],get_number_output_values:[8,4,1,""],global_includes:[8,4,1,""],infer_node_datatype:[8,4,1,""],lut_estimation:[8,4,1,""],make_shape_compatible_op:[8,4,1,""],pragmas:[8,4,1,""],read_npy_data:[8,4,1,""],save_as_npy:[8,4,1,""],strm_decl:[8,4,1,""],verify_node:[8,4,1,""]},"src.finn.custom_op.fpgadataflow.tlastmarker":{TLastMarker:[8,2,1,""]},"src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker":{blackboxfunction:[8,4,1,""],dataoutstrm:[8,4,1,""],defines:[8,4,1,""],docompute:[8,4,1,""],execute_node:[8,4,1,""],get_folded_input_shape:[8,4,1,""],get_folded_output_shape:[8,4,1,""],get_instream_width:[8,4,1,""],get_nodeattr_types:[8,4,1,""],get_number_output_values:[8,4,1,""],get_outstream_width:[8,4,1,""],global_includes:[8,4,1,""],infer_node_datatype:[8,4,1,""],make_shape_compatible_op:[8,4,1,""],pragmas:[8,4,1,""],read_npy_data:[8,4,1,""],save_as_npy:[8,4,1,""],strm_decl:[8,4,1,""],verify_node:[8,4,1,""]},"src.finn.custom_op.multithreshold":{MultiThreshold:[7,2,1,""],compare:[7,1,1,""],multithreshold:[7,1,1,""]},"src.finn.custom_op.multithreshold.MultiThreshold":{execute_node:[7,4,1,""],get_nodeattr_types:[7,4,1,""],infer_node_datatype:[7,4,1,""],make_shape_compatible_op:[7,4,1,""],verify_node:[7,4,1,""]},"src.finn.custom_op.registry":{getCustomOp:[7,1,1,""]},"src.finn.custom_op.streamingdataflowpartition":{StreamingDataflowPartition:[7,2,1,""]},"src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition":{execute_node:[7,4,1,""],get_nodeattr_types:[7,4,1,""],infer_node_datatype:[7,4,1,""],make_shape_compatible_op:[7,4,1,""],verify_node:[7,4,1,""]},"src.finn.custom_op.xnorpopcount":{XnorPopcountMatMul:[7,2,1,""],xnorpopcountmatmul:[7,1,1,""]},"src.finn.custom_op.xnorpopcount.XnorPopcountMatMul":{execute_node:[7,4,1,""],get_nodeattr_types:[7,4,1,""],infer_node_datatype:[7,4,1,""],make_shape_compatible_op:[7,4,1,""],verify_node:[7,4,1,""]},"src.finn.transformation":{Transformation:[9,2,1,""],batchnorm_to_affine:[9,0,0,"-"],bipolar_to_xnor:[9,0,0,"-"],fold_constants:[9,0,0,"-"],fpgadataflow:[10,0,0,"-"],general:[9,0,0,"-"],infer_datatypes:[9,0,0,"-"],infer_shapes:[9,0,0,"-"],streamline:[11,0,0,"-"]},"src.finn.transformation.Transformation":{apply:[9,4,1,""]},"src.finn.transformation.batchnorm_to_affine":{BatchNormToAffine:[9,2,1,""]},"src.finn.transformation.batchnorm_to_affine.BatchNormToAffine":{apply:[9,4,1,""]},"src.finn.transformation.bipolar_to_xnor":{ConvertBipolarMatMulToXnorPopcount:[9,2,1,""]},"src.finn.transformation.bipolar_to_xnor.ConvertBipolarMatMulToXnorPopcount":{apply:[9,4,1,""]},"src.finn.transformation.fold_constants":{FoldConstants:[9,2,1,""]},"src.finn.transformation.fold_constants.FoldConstants":{apply:[9,4,1,""]},"src.finn.transformation.fpgadataflow":{cleanup:[10,0,0,"-"],codegen_ipgen:[10,0,0,"-"],codegen_ipstitch:[10,0,0,"-"],codegen_npysim:[10,0,0,"-"],compile:[10,0,0,"-"],convert_to_hls_layers:[10,0,0,"-"],create_dataflow_partition:[10,0,0,"-"],hlssynth_ipgen:[10,0,0,"-"],insert_tlastmarker:[10,0,0,"-"],make_deployment:[10,0,0,"-"],make_pynq_driver:[10,0,0,"-"],make_pynq_proj:[10,0,0,"-"],set_sim_mode:[10,0,0,"-"],synth_pynq_proj:[10,0,0,"-"],templates:[10,0,0,"-"]},"src.finn.transformation.fpgadataflow.cleanup":{CleanUp:[10,2,1,""]},"src.finn.transformation.fpgadataflow.cleanup.CleanUp":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.codegen_ipgen":{CodeGen_ipgen:[10,2,1,""]},"src.finn.transformation.fpgadataflow.codegen_ipgen.CodeGen_ipgen":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.codegen_ipstitch":{CodeGen_ipstitch:[10,2,1,""]},"src.finn.transformation.fpgadataflow.codegen_ipstitch.CodeGen_ipstitch":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.codegen_npysim":{CodeGen_npysim:[10,2,1,""]},"src.finn.transformation.fpgadataflow.codegen_npysim.CodeGen_npysim":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.compile":{Compile:[10,2,1,""]},"src.finn.transformation.fpgadataflow.compile.Compile":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.convert_to_hls_layers":{InferBinaryStreamingFCLayer:[10,2,1,""]},"src.finn.transformation.fpgadataflow.convert_to_hls_layers.InferBinaryStreamingFCLayer":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.create_dataflow_partition":{CreateDataflowPartition:[10,2,1,""]},"src.finn.transformation.fpgadataflow.create_dataflow_partition.CreateDataflowPartition":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.hlssynth_ipgen":{HLSSynth_IPGen:[10,2,1,""]},"src.finn.transformation.fpgadataflow.hlssynth_ipgen.HLSSynth_IPGen":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.insert_tlastmarker":{InsertTLastMarker:[10,2,1,""]},"src.finn.transformation.fpgadataflow.insert_tlastmarker.InsertTLastMarker":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.make_deployment":{DeployToPYNQ:[10,2,1,""]},"src.finn.transformation.fpgadataflow.make_deployment.DeployToPYNQ":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.make_pynq_driver":{MakePYNQDriver:[10,2,1,""]},"src.finn.transformation.fpgadataflow.make_pynq_driver.MakePYNQDriver":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.make_pynq_proj":{MakePYNQProject:[10,2,1,""]},"src.finn.transformation.fpgadataflow.make_pynq_proj.MakePYNQProject":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.set_sim_mode":{SetSimMode:[10,2,1,""]},"src.finn.transformation.fpgadataflow.set_sim_mode.SetSimMode":{apply:[10,4,1,""]},"src.finn.transformation.fpgadataflow.synth_pynq_proj":{SynthPYNQProject:[10,2,1,""]},"src.finn.transformation.fpgadataflow.synth_pynq_proj.SynthPYNQProject":{apply:[10,4,1,""]},"src.finn.transformation.general":{ConvertSubToAdd:[9,2,1,""],GiveRandomTensorNames:[9,2,1,""],GiveReadableTensorNames:[9,2,1,""],GiveUniqueNodeNames:[9,2,1,""]},"src.finn.transformation.general.ConvertSubToAdd":{apply:[9,4,1,""]},"src.finn.transformation.general.GiveRandomTensorNames":{apply:[9,4,1,""]},"src.finn.transformation.general.GiveReadableTensorNames":{apply:[9,4,1,""]},"src.finn.transformation.general.GiveUniqueNodeNames":{apply:[9,4,1,""]},"src.finn.transformation.infer_datatypes":{InferDataTypes:[9,2,1,""]},"src.finn.transformation.infer_datatypes.InferDataTypes":{apply:[9,4,1,""]},"src.finn.transformation.infer_shapes":{InferShapes:[9,2,1,""]},"src.finn.transformation.infer_shapes.InferShapes":{apply:[9,4,1,""]},"src.finn.transformation.streamline":{Streamline:[11,2,1,""],absorb:[11,0,0,"-"],collapse_repeated:[11,0,0,"-"],reorder:[11,0,0,"-"],round_thresholds:[11,0,0,"-"],sign_to_thres:[11,0,0,"-"]},"src.finn.transformation.streamline.Streamline":{apply:[11,4,1,""]},"src.finn.transformation.streamline.absorb":{Absorb1BitMulIntoMatMul:[11,2,1,""],AbsorbAddIntoMultiThreshold:[11,2,1,""],AbsorbMulIntoMultiThreshold:[11,2,1,""],FactorOutMulSignMagnitude:[11,2,1,""]},"src.finn.transformation.streamline.absorb.Absorb1BitMulIntoMatMul":{apply:[11,4,1,""]},"src.finn.transformation.streamline.absorb.AbsorbAddIntoMultiThreshold":{apply:[11,4,1,""]},"src.finn.transformation.streamline.absorb.AbsorbMulIntoMultiThreshold":{apply:[11,4,1,""]},"src.finn.transformation.streamline.absorb.FactorOutMulSignMagnitude":{apply:[11,4,1,""]},"src.finn.transformation.streamline.collapse_repeated":{CollapseRepeatedAdd:[11,2,1,""],CollapseRepeatedMul:[11,2,1,""],CollapseRepeatedOp:[11,2,1,""]},"src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp":{apply:[11,4,1,""]},"src.finn.transformation.streamline.reorder":{MoveAddPastMul:[11,2,1,""],MoveScalarAddPastMatMul:[11,2,1,""],MoveScalarMulPastMatMul:[11,2,1,""]},"src.finn.transformation.streamline.reorder.MoveAddPastMul":{apply:[11,4,1,""]},"src.finn.transformation.streamline.reorder.MoveScalarAddPastMatMul":{apply:[11,4,1,""]},"src.finn.transformation.streamline.reorder.MoveScalarMulPastMatMul":{apply:[11,4,1,""]},"src.finn.transformation.streamline.round_thresholds":{RoundAndClipThresholds:[11,2,1,""]},"src.finn.transformation.streamline.round_thresholds.RoundAndClipThresholds":{apply:[11,4,1,""]},"src.finn.transformation.streamline.sign_to_thres":{ConvertSignToThres:[11,2,1,""]},"src.finn.transformation.streamline.sign_to_thres.ConvertSignToThres":{apply:[11,4,1,""]},"src.finn.util":{basic:[12,0,0,"-"],data_packing:[12,0,0,"-"],fpgadataflow:[12,0,0,"-"],onnx:[12,0,0,"-"],test:[12,0,0,"-"]},"src.finn.util.basic":{CppBuilder:[12,2,1,""],calculate_signed_dot_prod_range:[12,1,1,""],gen_finn_dt_tensor:[12,1,1,""],get_by_name:[12,1,1,""],get_finn_root:[12,1,1,""],interleave_matrix_outer_dim_from_partitions:[12,1,1,""],make_build_dir:[12,1,1,""],pad_tensor_to_multiple_of:[12,1,1,""],random_string:[12,1,1,""],remove_by_name:[12,1,1,""],roundup_to_integer_multiple:[12,1,1,""]},"src.finn.util.basic.CppBuilder":{append_includes:[12,4,1,""],append_sources:[12,4,1,""],build:[12,4,1,""],set_executable_path:[12,4,1,""]},"src.finn.util.data_packing":{array2hexstring:[12,1,1,""],finnpy_to_packed_bytearray:[12,1,1,""],hexstring2npbytearray:[12,1,1,""],npbytearray2hexstring:[12,1,1,""],npy_to_rtlsim_input:[12,1,1,""],numpy_to_hls_code:[12,1,1,""],pack_innermost_dim_as_hex_string:[12,1,1,""],packed_bytearray_to_finnpy:[12,1,1,""],rtlsim_output_to_npy:[12,1,1,""],unpack_innermost_dim_from_hex_string:[12,1,1,""]},"src.finn.util.fpgadataflow":{IPGenBuilder:[12,2,1,""],pyverilate_stitched_ip:[12,1,1,""]},"src.finn.util.fpgadataflow.IPGenBuilder":{append_tcl:[12,4,1,""],build:[12,4,1,""],set_ipgen_path:[12,4,1,""]},"src.finn.util.onnx":{valueinfo_to_tensor:[12,1,1,""]},"src.finn.util.test":{get_test_model_def_fxn:[12,1,1,""],get_test_model_trained:[12,1,1,""],get_test_model_untrained:[12,1,1,""],get_trained_checkpoint:[12,1,1,""]},src:{finn:[3,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"],"4":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute","4":"py:method"},terms:{"0f01":12,"0x0f01":12,"abstract":[7,8,9],"boolean":6,"class":[6,7,8,9,10,11,12],"const":9,"default":[7,8,9],"enum":6,"final":6,"float":12,"function":[6,9,12],"new":6,"return":[4,5,6,7,8,9,11,12],"static":4,"true":[6,12],"var":8,For:11,HLS:6,IPs:10,PEs:8,The:[4,6,9,10,11,12],Use:12,abc:[7,9],abit:12,about:[4,10],absorb1bitmulintomatmul:11,absorb:[2,3,9,10],absorbaddintomultithreshold:11,absorbmulintomultithreshold:11,acceler:10,account:6,action:10,activ:6,add:[9,11],addition:11,address:10,after:12,aim:11,all:[4,6,7,8,9,10,12],all_tensors_f32:4,allow:6,alreadi:10,also:[7,8,10],amount:12,analysi:[2,3,6],analysis_fxn:6,anaylsis_fxn:6,ani:[6,9,10,12],annot:[4,7,8],anoth:10,append_includ:12,append_sourc:12,append_tcl:12,appli:[6,9,10,11],apply_rep:9,appropri:9,arbitrari:12,around:6,arrai:12,array2hexstr:12,arxiv:11,assign:6,associ:[6,9],assum:12,attribut:[4,6,7,8,10],attribute_nam:[6,7,8],attributeproto:[7,8],backend:10,base:[6,7,8,9,10,11,12],basic:[2,3],batchnorm:9,batchnorm_to_affin:[2,3],batchnormtoaffin:9,been:10,befor:12,between:[8,12],binari:[6,8,10,11,12],bipolar:[6,8,9,11,12],bipolar_to_xnor:[2,3],bit:[6,12],bitwidth:6,blackboxfunct:8,block:10,blott:8,board:10,bool:[4,9],both:12,bram_estim:8,brien:8,build:12,built:4,calc_tmem:8,calc_wmem:8,calcul:8,calculate_signed_dot_prod_rang:12,call:[6,8,9,10],can:[6,9,10,11,12],cannot:9,certain:4,chang:[6,9],check:[4,6,7,8],check_all_tensor_shapes_specifi:6,check_compat:6,cleanup:[2,3,9],clk:[8,10],clone:12,code:[10,12],code_gen_dir:12,code_generation_ipgen:8,code_generation_npysim:8,codegen_ipgen:[2,3,9],codegen_ipstitch:[2,3,9],codegen_npysim:[2,3,9],collaps:11,collapse_rep:[2,3,9],collapserepeatedadd:11,collapserepeatedmul:11,collapserepeatedop:11,collect:10,come:4,compar:[6,7],compare_execut:6,compare_fxn:6,compat:[6,7,8],compil:[2,3,9],compile_singlenode_cod:8,comput:6,consecut:11,constant:[4,6,11],consum:6,contain:[6,7,10,12],content:1,context:[6,7,8],convent:4,convert:[8,9,10,11,12],convert_to_hls_lay:[2,3,9],convertbipolarmatmultoxnorpopcount:9,convertsigntothr:11,convertsubtoadd:9,convolutioninputgener:[2,3,7],copi:[6,9,10],core:[2,3],correct:9,correctli:[4,7,8,10],correspond:[6,7,8],count:8,cpp_file:12,cppbuilder:12,creat:[6,10,12],create_dataflow_partit:[2,3,9],createdataflowpartit:10,current:6,custom:[4,6],custom_op:[2,3],customop:[7,8],data:[7,10,12],data_pack:[2,3],dataflow:10,dataoutstrm:8,datatyp:[2,3,7,8,9,12],debug:6,declar:9,deep:[6,8,9],default_v:[7,8],default_valu:[7,8],defin:8,deploy:10,deploytopynq:10,design:10,dict:[6,7,8],dictionari:[4,6],digit:12,dimens:12,dimension:12,dir:[10,12],directori:[10,12],distr_pad:12,divis:12,docker:12,docomput:8,don:9,done:4,dot:12,driver:10,dt_a:12,dt_b:12,dtype:[4,6,7,8,12],dynam:4,dynamic_input_to_npi:8,each:[4,6,9,11,12],effect:9,element:12,embed:6,emit:12,empti:6,end:8,ensur:[8,9,10,12],enumer:[6,9],equal:[7,8],equival:11,estim:5,even:9,evenli:12,everi:9,exampl:12,exec_precompiled_singlenode_model:8,execut:[6,7,8],execute_custom_nod:[2,3],execute_nod:[6,7,8],execute_onnx:6,execute_onnx_and_make_model:6,exist:[7,12],exit:12,expect:[4,6,7,8,10],explor:[6,8],expos:6,extra:[4,12],extract:[4,5],factor:12,factoroutmulsignmagnitud:11,fals:[6,9,12],fan:4,fast:8,fewest:6,field:[10,12],file:[6,10,12],filenam:[6,10],find:6,find_consum:6,find_produc:6,finn:[1,2],finn_dt:12,finnpy_to_packed_bytearrai:12,first:[4,11],fix:[9,12],flatten:12,float32:[4,6],fold_const:[2,3],foldconst:9,folder:[10,12],follow:[4,10],form:8,found:10,four:12,fpgadataflow:[2,3,4,7,9],fpgapart:[8,10],framework:8,fraser:8,from:[5,6,10,12],full:6,further:9,gambardella:8,gen_finn_dt_tensor:12,gener:[2,3,10,12],generate_param:8,get:[6,7],get_all_tensor_nam:6,get_by_nam:12,get_finn_root:12,get_folded_input_shap:8,get_folded_output_shap:8,get_hls_compatible_threshold_tensor:8,get_hls_compatible_weight_tensor:8,get_hls_datatype_str:6,get_initi:6,get_input_datatyp:8,get_instream_width:8,get_metadata_prop:6,get_nodeattr:7,get_nodeattr_typ:[7,8],get_num_possible_valu:6,get_number_output_valu:8,get_output_datatyp:8,get_outstream_width:8,get_per_tensor_fanout:4,get_smallest_poss:6,get_stream_width:8,get_template_param_valu:8,get_tensor_datatyp:6,get_tensor_fanout:6,get_tensor_shap:6,get_tensor_valueinfo:6,get_test_model_def_fxn:12,get_test_model_train:12,get_test_model_untrain:12,get_trained_checkpoint:12,get_weight_datatyp:8,getcustomop:7,give:[9,11],give_unique_node_nam:9,given:[4,5,6,7,8,12],giverandomtensornam:9,givereadabletensornam:9,giveuniquenodenam:9,global_includ:8,graph:[4,6,7,8,9,10],guarante:9,guid:[2,3],has:[4,6,9,10,12],have:[4,6,9,10,11],hex:12,hexstr:12,hexstring2npbytearrai:12,hls_synth_res_estim:[2,3,4],hls_var_nam:12,hlscustomop:8,hlslib:8,hlssynth_ipgen:[2,3,9],host:12,how:[2,3,12],human:9,immedi:10,implement:6,includ:[6,10],index:0,indic:[6,7,8,9,10],infer:[6,7,8,9,12],infer_datatyp:[2,3],infer_node_datatyp:[7,8],infer_shap:[2,3],inferbinarystreamingfclay:10,inferdatatyp:9,infershap:9,infinit:9,info:[9,12],info_messag:4,inform:[4,10],infrastructur:10,inherit:9,initi:[4,6],innermost:12,inp0:7,inp1:7,inp:8,input:[4,6,7,8,9,11,12],input_dict:6,input_dtyp:12,input_fil:12,insert:[10,12],insert_tlastmark:[2,3,9],inserttlastmark:10,insid:7,instanc:[6,7,8,11],instanti:10,instead:12,int16:6,int2:6,int32:6,int3:6,int4:6,int8:6,integ:[6,11,12],interfac:10,interleav:8,interleave_matrix_outer_dim_from_partit:12,intermedi:[6,9],intern:9,ipgen_singlenode_cod:8,ipgenbuild:12,is_integ:6,is_linear:4,item:12,kei:6,know:9,lambda:6,largest:6,layer:[9,10],lead:12,learn:8,leeser:8,len:12,let:9,letter:12,library_path:12,linear:[4,6],list:[4,6],look:4,loop:9,lut_estim:8,made:[6,9],magnitud:11,make:[9,10],make_build_dir:12,make_collapsed_param_fxn:11,make_deepcopi:6,make_deploy:[2,3,9],make_empty_exec_context:6,make_new_valueinfo_nam:6,make_project:10,make_pynq_driv:[2,3,9],make_pynq_proj:[2,3,9],make_shape_compatible_op:[7,8],makepynqdriv:10,makepynqproject:10,manipul:6,manual:9,matmul:[9,11],matrix:[8,11,12],max:[6,12],mean:12,meant:9,member:[7,8],metadata_prop:[6,10],min:[6,12],minimum:12,mixtur:4,mkdtemp:12,mode:10,model:[4,5,6,7,8,9,10,11,12],model_a:6,model_b:6,model_was_chang:9,modelproto:[6,10],modelwrapp:[2,3,4,9],modul:[0,1],more:[6,9,12],move:11,moveaddpastmul:11,movescalaraddpastmatmul:11,movescalarmulpastmatmul:11,mul:[9,11],multidimension:12,multipl:[9,11,12],multipli:11,multithreshold:[2,3,10,11],must:[7,9,10,11,12],mvtu:10,n_partit:12,n_thres_step:8,name:[4,5,6,7,9,12],name_field:12,ndarrai:12,nearest:[11,12],necessari:10,need:[5,7,8,9],neg:[6,11],netnam:12,network:8,neural:8,new_nam:6,next:11,no_decl:12,node:[4,5,6,7,8,9,10,11],node_inputs_in_expected_ord:4,node_res_estim:8,non:10,none:[6,7,12],notwithstand:4,now:[4,6],npbytearrai:12,npbytearray2hexstr:12,npy:12,npy_to_dynamic_output:8,npy_to_rtlsim_input:12,number:[6,7,8,12],numpi:[8,12],numpy_to_hls_cod:12,object:[6,12],old_nam:6,onc:9,one:[4,6,10,12],onli:[4,6,9,10,11],onnx:[2,3,6,7,8,10],onnx_exec:[2,3],onnx_model_proto:6,onnx_nod:[7,8],onnxruntim:6,op_nam:11,op_typ:4,oper:[6,11],ops:[4,11],order:4,orig_thres_matrix:8,orig_weight_matrix:8,origin:8,other:[6,11],otherwis:[6,9,12],out:4,out_bia:7,out_scal:7,out_shap:12,outcom:10,output:[6,7,8,9,12],output_shap:12,overlai:10,pack:[10,12],pack_innermost_dim:12,pack_innermost_dim_as_hex_str:12,packag:1,packed_bytearrai:12,packed_bytearray_to_finnpi:12,packedbit:12,pad:12,pad_tensor_to_multiple_of:12,pad_to_dim:12,pad_to_nbit:12,page:0,pair:10,paramet:11,part:[7,12],particular:[7,8,12],pass:[2,3,8],password:10,past:11,path:[8,12],per:10,perform:[7,8],permit:[7,8],place:10,platform:10,point:9,posit:[8,11,12],possibl:[6,10],pragma:8,preced:11,precid:11,precis:12,precomput:9,prefer:6,prefix:12,prepend:12,preusser:8,previous:10,prior:[9,10],produc:[4,6],product:12,project:10,properti:[4,6],provid:6,pynq:10,pynq_driver_dir:10,python:[10,12],pyveril:12,pyverilate_stitched_ip:12,quantiz:[4,8],random:[9,12],random_str:12,randomli:12,reach:9,read_npy_data:8,readabl:9,recommend:9,registri:[2,3],remov:[10,12],remove_by_nam:12,remove_prefix:12,renam:6,rename_tensor:6,reorder:[2,3,9],repeat:[9,11],repeatedli:6,replac:9,repres:[6,12],represent:12,requir:[6,7,8],res_estim:[2,3,4],reset_rtlsim:8,reshap:8,resourc:5,respect:12,result:[4,5,6,9,10,11,12],return_full_exec_context:6,returned_dict:[7,8],revers:12,reverse_endian:12,reverse_inn:12,root:12,round:[11,12],round_threshold:[2,3,9],roundandclipthreshold:11,roundup_to_integer_multipl:12,row:8,rtlsim:8,rtlsim_output_to_npi:12,run:[6,10],same:[10,12],save:[6,12],save_as_npi:8,scalar:11,scp:10,script:10,search:0,second:[10,11],see:[11,12],sep:8,sequenc:12,set:[6,7,8,10,11,12],set_attribut:6,set_executable_path:12,set_initi:6,set_ipgen_path:12,set_metadata_prop:6,set_nodeattr:7,set_sim_mod:[2,3,9],set_tensor_datatyp:6,set_tensor_shap:6,setsimmod:10,shape:[6,7,8,9,12],shell:10,should:[4,6,9],sign:[6,9,11,12],sign_to_thr:[2,3,9],sim:[8,12],sim_mod:10,simd:8,sinc:[6,12],singl:[6,11,12],small:4,smallest:6,some:[6,9],specifi:[6,9,12],split:[10,11,12],standard:[6,7,8],stitch:[10,12],store:[7,10,12],streamingdataflowpartit:[2,3,10],streamingfclayer_batch:[2,3,7,10],streamingmaxpool_batch:[2,3,7],streamlin:[2,3,9],string:[4,12],stringlength:12,strm_decl:8,structur:4,sub:9,subdirectori:10,subgraph:6,submodul:[2,3],subpackag:1,subset:4,success:10,suitabl:8,surviv:12,synth_pynq_proj:[2,3,9],synthesi:[5,10],synthpynqproject:10,take:[4,6,9,11,12],taken:[6,10],target:10,target_dir:10,targetbit:12,tcl:10,tcl_script:12,tempfil:12,templat:[2,3,7,9],temporari:12,tensor:[4,6,9,11,12],tensor_fanout:4,tensor_nam:[4,6],tensor_shap:[6,12],tensor_valu:6,termin:10,ternari:6,test:[2,3,9],thei:11,them:[4,10,11],thi:[4,6,7,8,9,10,12],threshold:[7,8,11],time:9,tlastmark:[2,3,7,10],tmem:8,togeth:10,toggle_clk:8,topolog:[2,3],transform:[2,3,6],transformed_model:9,travers:4,tupl:9,two:[6,10,11,12],type:[6,9,12],uint16:6,uint2:[6,12],uint32:6,uint3:6,uint4:6,uint8:[6,12],umuroglu:8,under:10,uniqu:9,unpack:[10,12],unpack_innermost_dim_from_hex_str:12,unsign:[6,11],until:6,updat:11,used:[6,7,8,12],useful:6,user:9,usernam:10,using:[6,9,11,12],util:[2,3,6,7,8],val:12,valu:[6,7,8,10,11,12],value_info:6,valueinfo:[6,9],valueinfo_to_tensor:12,valueinfoproto:[6,12],variabl:12,vector:[11,12],verif:4,verifi:[4,7,8],verify_custom_nod:[2,3],verify_nod:[4,7,8],via:6,visser:8,vivado:[5,6,10],vivado_pynq_proj:10,vivado_stitch_proj:10,wai:4,want:11,wbit:12,weight:[6,8],when:[4,9],where:[6,7,8,10,11],whether:[4,6,7,8,9],which:[6,7,8,10,11,12],width:12,wmem:8,work:[6,12],wrapper:6,write:[2,3],xnorpopcount:[2,3],xnorpopcountmatmul:[7,9,10],you:9,your:9,zero:[6,11,12]},titles:["Welcome to FINN\u2019s documentation!","src","src package","src.finn package","src.finn.analysis package","src.finn.analysis.fpgadataflow package","src.finn.core package","src.finn.custom_op package","src.finn.custom_op.fpgadataflow package","src.finn.transformation package","src.finn.transformation.fpgadataflow package","src.finn.transformation.streamline package","src.finn.util package"],titleterms:{absorb:11,analysi:[4,5],basic:12,batchnorm_to_affin:9,bipolar_to_xnor:9,cleanup:10,codegen_ipgen:10,codegen_ipstitch:10,codegen_npysim:10,collapse_rep:11,compil:10,content:[2,3,4,5,6,7,8,9,10,11,12],convert_to_hls_lay:10,convolutioninputgener:8,core:6,create_dataflow_partit:10,custom_op:[7,8],data_pack:12,datatyp:6,document:0,execute_custom_nod:6,finn:[0,3,4,5,6,7,8,9,10,11,12],fold_const:9,fpgadataflow:[5,8,10,12],gener:9,guid:9,hls_synth_res_estim:5,hlssynth_ipgen:10,how:4,indic:0,infer_datatyp:9,infer_shap:9,insert_tlastmark:10,make_deploy:10,make_pynq_driv:10,make_pynq_proj:10,modelwrapp:6,modul:[2,3,4,5,6,7,8,9,10,11,12],multithreshold:7,onnx:12,onnx_exec:6,packag:[2,3,4,5,6,7,8,9,10,11,12],pass:4,registri:7,reorder:11,res_estim:5,round_threshold:11,set_sim_mod:10,sign_to_thr:11,src:[1,2,3,4,5,6,7,8,9,10,11,12],streamingdataflowpartit:7,streamingfclayer_batch:8,streamingmaxpool_batch:8,streamlin:11,submodul:[4,5,6,7,8,9,10,11,12],subpackag:[2,3,4,7,9],synth_pynq_proj:10,tabl:0,templat:[8,10],test:12,tlastmark:8,topolog:4,transform:[9,10,11],util:12,verify_custom_nod:4,welcom:0,write:[4,9],xnorpopcount:7}}) \ No newline at end of file diff --git a/docs/finn/_build/html/src.finn.analysis.fpgadataflow.html b/docs/finn/_build/html/src.finn.analysis.fpgadataflow.html index 8fb899333edb6c62147aa94c51a7c977cff313c4..d5f674b8c764c84299d7ff9dcbe66d6730d0a265 100644 --- a/docs/finn/_build/html/src.finn.analysis.fpgadataflow.html +++ b/docs/finn/_build/html/src.finn.analysis.fpgadataflow.html @@ -35,14 +35,28 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-analysis-fpgadataflow-hls-synth-res-estimation-module"> -<h2>src.finn.analysis.fpgadataflow.hls_synth_res_estimation module<a class="headerlink" href="#src-finn-analysis-fpgadataflow-hls-synth-res-estimation-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.analysis.fpgadataflow.hls_synth_res_estimation"> +<span id="src-finn-analysis-fpgadataflow-hls-synth-res-estimation-module"></span><h2>src.finn.analysis.fpgadataflow.hls_synth_res_estimation module<a class="headerlink" href="#module-src.finn.analysis.fpgadataflow.hls_synth_res_estimation" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.analysis.fpgadataflow.hls_synth_res_estimation.hls_synth_res_estimation"> +<code class="sig-prename descclassname">src.finn.analysis.fpgadataflow.hls_synth_res_estimation.</code><code class="sig-name descname">hls_synth_res_estimation</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.analysis.fpgadataflow.hls_synth_res_estimation.hls_synth_res_estimation" title="Permalink to this definition">¶</a></dt> +<dd><p>Extracts the results from the vivado synthesis. +Returns {node name : resource estimation}</p> +</dd></dl> + </div> -<div class="section" id="src-finn-analysis-fpgadataflow-res-estimation-module"> -<h2>src.finn.analysis.fpgadataflow.res_estimation module<a class="headerlink" href="#src-finn-analysis-fpgadataflow-res-estimation-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.analysis.fpgadataflow.res_estimation"> +<span id="src-finn-analysis-fpgadataflow-res-estimation-module"></span><h2>src.finn.analysis.fpgadataflow.res_estimation module<a class="headerlink" href="#module-src.finn.analysis.fpgadataflow.res_estimation" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.analysis.fpgadataflow.res_estimation.res_estimation"> +<code class="sig-prename descclassname">src.finn.analysis.fpgadataflow.res_estimation.</code><code class="sig-name descname">res_estimation</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.analysis.fpgadataflow.res_estimation.res_estimation" title="Permalink to this definition">¶</a></dt> +<dd><p>Estimates the resources needed for the given model. +Returns {node name : resource estimation}</p> +</dd></dl> + </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.analysis.fpgadataflow"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.analysis.fpgadataflow" title="Permalink to this headline">¶</a></h2> </div> </div> diff --git a/docs/finn/_build/html/src.finn.analysis.html b/docs/finn/_build/html/src.finn.analysis.html index 523e6a287ebcebc1c2e68b66edfc3e27470fde13..e9492e7bd689832d196139f58bf450679cb04af6 100644 --- a/docs/finn/_build/html/src.finn.analysis.html +++ b/docs/finn/_build/html/src.finn.analysis.html @@ -38,9 +38,9 @@ <ul> <li class="toctree-l1"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html">src.finn.analysis.fpgadataflow package</a><ul> <li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#src-finn-analysis-fpgadataflow-hls-synth-res-estimation-module">src.finn.analysis.fpgadataflow.hls_synth_res_estimation module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#src-finn-analysis-fpgadataflow-res-estimation-module">src.finn.analysis.fpgadataflow.res_estimation module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.hls_synth_res_estimation">src.finn.analysis.fpgadataflow.hls_synth_res_estimation module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.res_estimation">src.finn.analysis.fpgadataflow.res_estimation module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow">Module contents</a></li> </ul> </li> </ul> @@ -49,14 +49,58 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-analysis-topology-module"> -<h2>src.finn.analysis.topology module<a class="headerlink" href="#src-finn-analysis-topology-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.analysis.topology"> +<span id="src-finn-analysis-topology-module"></span><h2>src.finn.analysis.topology module<a class="headerlink" href="#module-src.finn.analysis.topology" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.analysis.topology.all_tensors_f32"> +<code class="sig-prename descclassname">src.finn.analysis.topology.</code><code class="sig-name descname">all_tensors_f32</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.analysis.topology.all_tensors_f32" title="Permalink to this definition">¶</a></dt> +<dd><p>Checks whether all tensors have a float32 dtype, extra quantization +annotations notwithstanding.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.analysis.topology.get_per_tensor_fanouts"> +<code class="sig-prename descclassname">src.finn.analysis.topology.</code><code class="sig-name descname">get_per_tensor_fanouts</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.analysis.topology.get_per_tensor_fanouts" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a dictionary of (tensor_name, tensor_fanout) for the model.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.analysis.topology.is_linear"> +<code class="sig-prename descclassname">src.finn.analysis.topology.</code><code class="sig-name descname">is_linear</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.analysis.topology.is_linear" title="Permalink to this definition">¶</a></dt> +<dd><p>Checks whether the given model graph is linear. This is done by looking +at the fan-out of each tensor. All tensors have a fan-out <= 1 in a linear +graph. Returns {“is_linearâ€, Bool}</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.analysis.topology.node_inputs_in_expected_order"> +<code class="sig-prename descclassname">src.finn.analysis.topology.</code><code class="sig-name descname">node_inputs_in_expected_order</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.analysis.topology.node_inputs_in_expected_order" title="Permalink to this definition">¶</a></dt> +<dd><p>Verifies that the node inputs are ordered in the way that FINN expects +them. When a node has a mixture of static (= constant, initialized) inputs +and dynamic inputs, the dynamic input should come first, followed by the +static one. Only verifiable for a small subset of op_types for now.</p> +</dd></dl> + +</div> +<div class="section" id="module-src.finn.analysis.verify_custom_nodes"> +<span id="src-finn-analysis-verify-custom-nodes-module"></span><h2>src.finn.analysis.verify_custom_nodes module<a class="headerlink" href="#module-src.finn.analysis.verify_custom_nodes" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.analysis.verify_custom_nodes.verify_nodes"> +<code class="sig-prename descclassname">src.finn.analysis.verify_custom_nodes.</code><code class="sig-name descname">verify_nodes</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.analysis.verify_custom_nodes.verify_nodes" title="Permalink to this definition">¶</a></dt> +<dd><p>Checks if custom ops in graph are correctly built, with all attributes +and inputs. Returns {node op_type : info_messages} +<a href="#id1"><span class="problematic" id="id2">*</span></a>info_messages is list of strings about the result of the verification</p> +</dd></dl> + </div> -<div class="section" id="src-finn-analysis-verify-custom-nodes-module"> -<h2>src.finn.analysis.verify_custom_nodes module<a class="headerlink" href="#src-finn-analysis-verify-custom-nodes-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.analysis"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.analysis" title="Permalink to this headline">¶</a></h2> +<div class="section" id="how-to-write-an-analysis-pass-for-finn"> +<h3>How to write an analysis pass for FINN<a class="headerlink" href="#how-to-write-an-analysis-pass-for-finn" title="Permalink to this headline">¶</a></h3> +<p>An analysis pass traverses the graph structure and produces information about +certain properties. The convention is to take in a ModelWrapper, and return +a dictionary of named properties that the analysis extracts.</p> </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> diff --git a/docs/finn/_build/html/src.finn.core.html b/docs/finn/_build/html/src.finn.core.html index e43f4f3c7525724ba95824e8d16e2d82be0cab1a..dbddb71c34f12f4329a487ba108ce7e55fef49db 100644 --- a/docs/finn/_build/html/src.finn.core.html +++ b/docs/finn/_build/html/src.finn.core.html @@ -35,20 +35,368 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-core-datatype-module"> -<h2>src.finn.core.datatype module<a class="headerlink" href="#src-finn-core-datatype-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.core.datatype"> +<span id="src-finn-core-datatype-module"></span><h2>src.finn.core.datatype module<a class="headerlink" href="#module-src.finn.core.datatype" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.core.datatype.DataType"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.core.datatype.</code><code class="sig-name descname">DataType</code><a class="headerlink" href="#src.finn.core.datatype.DataType" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">enum.Enum</span></code></p> +<p>An enumeration.</p> +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.BINARY"> +<code class="sig-name descname">BINARY</code><em class="property"> = 1</em><a class="headerlink" href="#src.finn.core.datatype.DataType.BINARY" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.BIPOLAR"> +<code class="sig-name descname">BIPOLAR</code><em class="property"> = 8</em><a class="headerlink" href="#src.finn.core.datatype.DataType.BIPOLAR" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.FLOAT32"> +<code class="sig-name descname">FLOAT32</code><em class="property"> = 16</em><a class="headerlink" href="#src.finn.core.datatype.DataType.FLOAT32" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.INT16"> +<code class="sig-name descname">INT16</code><em class="property"> = 14</em><a class="headerlink" href="#src.finn.core.datatype.DataType.INT16" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.INT2"> +<code class="sig-name descname">INT2</code><em class="property"> = 10</em><a class="headerlink" href="#src.finn.core.datatype.DataType.INT2" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.INT3"> +<code class="sig-name descname">INT3</code><em class="property"> = 11</em><a class="headerlink" href="#src.finn.core.datatype.DataType.INT3" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.INT32"> +<code class="sig-name descname">INT32</code><em class="property"> = 15</em><a class="headerlink" href="#src.finn.core.datatype.DataType.INT32" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.INT4"> +<code class="sig-name descname">INT4</code><em class="property"> = 12</em><a class="headerlink" href="#src.finn.core.datatype.DataType.INT4" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.INT8"> +<code class="sig-name descname">INT8</code><em class="property"> = 13</em><a class="headerlink" href="#src.finn.core.datatype.DataType.INT8" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.TERNARY"> +<code class="sig-name descname">TERNARY</code><em class="property"> = 9</em><a class="headerlink" href="#src.finn.core.datatype.DataType.TERNARY" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.UINT16"> +<code class="sig-name descname">UINT16</code><em class="property"> = 6</em><a class="headerlink" href="#src.finn.core.datatype.DataType.UINT16" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.UINT2"> +<code class="sig-name descname">UINT2</code><em class="property"> = 2</em><a class="headerlink" href="#src.finn.core.datatype.DataType.UINT2" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.UINT3"> +<code class="sig-name descname">UINT3</code><em class="property"> = 3</em><a class="headerlink" href="#src.finn.core.datatype.DataType.UINT3" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.UINT32"> +<code class="sig-name descname">UINT32</code><em class="property"> = 7</em><a class="headerlink" href="#src.finn.core.datatype.DataType.UINT32" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.UINT4"> +<code class="sig-name descname">UINT4</code><em class="property"> = 4</em><a class="headerlink" href="#src.finn.core.datatype.DataType.UINT4" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="src.finn.core.datatype.DataType.UINT8"> +<code class="sig-name descname">UINT8</code><em class="property"> = 5</em><a class="headerlink" href="#src.finn.core.datatype.DataType.UINT8" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.allowed"> +<code class="sig-name descname">allowed</code><span class="sig-paren">(</span><em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.allowed" title="Permalink to this definition">¶</a></dt> +<dd><p>Check whether given value is allowed for this DataType.</p> +<p>value (float32): value to be checked</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.bitwidth"> +<code class="sig-name descname">bitwidth</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.bitwidth" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns the number of bits required for this DataType.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.get_hls_datatype_str"> +<code class="sig-name descname">get_hls_datatype_str</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.get_hls_datatype_str" title="Permalink to this definition">¶</a></dt> +<dd><p>Return the corresponding Vivado HLS datatype name.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.get_num_possible_values"> +<code class="sig-name descname">get_num_possible_values</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.get_num_possible_values" title="Permalink to this definition">¶</a></dt> +<dd><p>Return the number of possible values this DataType can take. Only +implemented for integer types for now.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.get_smallest_possible"> +<code class="sig-name descname">get_smallest_possible</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.get_smallest_possible" title="Permalink to this definition">¶</a></dt> +<dd><p>Return smallest (fewest bits) possible DataType that can represent +value. Prefers unsigned integers where possible.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.is_integer"> +<code class="sig-name descname">is_integer</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.is_integer" title="Permalink to this definition">¶</a></dt> +<dd><p>Return whether this DataType represents integer values only.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.max"> +<code class="sig-name descname">max</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.max" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns the largest possible value allowed by this DataType.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.min"> +<code class="sig-name descname">min</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.min" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns the smallest possible value allowed by this DataType.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.datatype.DataType.signed"> +<code class="sig-name descname">signed</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.datatype.DataType.signed" title="Permalink to this definition">¶</a></dt> +<dd><p>Return whether this DataType can represent negative numbers.</p> +</dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-core-execute-custom-node-module"> -<h2>src.finn.core.execute_custom_node module<a class="headerlink" href="#src-finn-core-execute-custom-node-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.core.execute_custom_node"> +<span id="src-finn-core-execute-custom-node-module"></span><h2>src.finn.core.execute_custom_node module<a class="headerlink" href="#module-src.finn.core.execute_custom_node" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.core.execute_custom_node.execute_custom_node"> +<code class="sig-prename descclassname">src.finn.core.execute_custom_node.</code><code class="sig-name descname">execute_custom_node</code><span class="sig-paren">(</span><em class="sig-param">node</em>, <em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.execute_custom_node.execute_custom_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Call custom implementation to execute a single custom node. +Input/output provided via context.</p> +</dd></dl> + </div> -<div class="section" id="src-finn-core-modelwrapper-module"> -<h2>src.finn.core.modelwrapper module<a class="headerlink" href="#src-finn-core-modelwrapper-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.core.modelwrapper"> +<span id="src-finn-core-modelwrapper-module"></span><h2>src.finn.core.modelwrapper module<a class="headerlink" href="#module-src.finn.core.modelwrapper" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.core.modelwrapper.ModelWrapper"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.core.modelwrapper.</code><code class="sig-name descname">ModelWrapper</code><span class="sig-paren">(</span><em class="sig-param">onnx_model_proto</em>, <em class="sig-param">make_deepcopy=False</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> +<p>A wrapper around ONNX ModelProto that exposes some useful utility +functions for graph manipulation and exploration.</p> +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.analysis"> +<code class="sig-name descname">analysis</code><span class="sig-paren">(</span><em class="sig-param">analysis_fxn</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.analysis" title="Permalink to this definition">¶</a></dt> +<dd><p>Run given anaylsis_fxn on this model and return resulting dict.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.check_all_tensor_shapes_specified"> +<code class="sig-name descname">check_all_tensor_shapes_specified</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.check_all_tensor_shapes_specified" title="Permalink to this definition">¶</a></dt> +<dd><p>Checks whether all tensors have a specified shape (ValueInfo). +The ONNX standard allows for intermediate activations to have no +associated ValueInfo, but FINN expects this.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.check_compatibility"> +<code class="sig-name descname">check_compatibility</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.check_compatibility" title="Permalink to this definition">¶</a></dt> +<dd><p>Checks this model for FINN compatibility: +* no embedded subgraphs +* all tensor shapes are specified, including activations +* all constants are initializers</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.find_consumer"> +<code class="sig-name descname">find_consumer</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.find_consumer" title="Permalink to this definition">¶</a></dt> +<dd><p>Find and return the node that consumes the tensor with given name. +Currently only works for linear graphs.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.find_producer"> +<code class="sig-name descname">find_producer</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.find_producer" title="Permalink to this definition">¶</a></dt> +<dd><p>Find and return the node that produces the tensor with given name. +Currently only works for linear graphs.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.get_all_tensor_names"> +<code class="sig-name descname">get_all_tensor_names</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.get_all_tensor_names" title="Permalink to this definition">¶</a></dt> +<dd><p>Return a list of all (input, output and value_info) tensor names +in the graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.get_initializer"> +<code class="sig-name descname">get_initializer</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.get_initializer" title="Permalink to this definition">¶</a></dt> +<dd><p>Get the initializer value for tensor with given name, if any.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.get_metadata_prop"> +<code class="sig-name descname">get_metadata_prop</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.get_metadata_prop" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns the value associated with metadata_prop with given key, +or None otherwise.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.get_tensor_datatype"> +<code class="sig-name descname">get_tensor_datatype</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.get_tensor_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns the FINN DataType of tensor with given name.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.get_tensor_fanout"> +<code class="sig-name descname">get_tensor_fanout</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.get_tensor_fanout" title="Permalink to this definition">¶</a></dt> +<dd><p>Return the number of nodes for which the tensor with given name is +as input.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.get_tensor_shape"> +<code class="sig-name descname">get_tensor_shape</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.get_tensor_shape" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns the shape of tensor with given name, if it has ValueInfoProto.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.get_tensor_valueinfo"> +<code class="sig-name descname">get_tensor_valueinfo</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.get_tensor_valueinfo" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns ValueInfoProto of tensor with given name, if it has one.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.graph"> +<em class="property">property </em><code class="sig-name descname">graph</code><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.graph" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.make_empty_exec_context"> +<code class="sig-name descname">make_empty_exec_context</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.make_empty_exec_context" title="Permalink to this definition">¶</a></dt> +<dd><p>Creates an empty execution context for this model. +The execution context is a dictionary of all tensors used for the +inference computation. Any initializer values will be taken into +account, all other tensors will be zero.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.make_new_valueinfo_name"> +<code class="sig-name descname">make_new_valueinfo_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.make_new_valueinfo_name" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a name that can be used for a new value_info.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.model"> +<em class="property">property </em><code class="sig-name descname">model</code><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.model" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.rename_tensor"> +<code class="sig-name descname">rename_tensor</code><span class="sig-paren">(</span><em class="sig-param">old_name</em>, <em class="sig-param">new_name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.rename_tensor" title="Permalink to this definition">¶</a></dt> +<dd><p>Rename a tensor from old_name to new_name.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.save"> +<code class="sig-name descname">save</code><span class="sig-paren">(</span><em class="sig-param">filename</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.save" title="Permalink to this definition">¶</a></dt> +<dd><p>Save the wrapper ONNX ModelProto into a file with given name.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.set_attribute"> +<code class="sig-name descname">set_attribute</code><span class="sig-paren">(</span><em class="sig-param">node</em>, <em class="sig-param">attribute_name</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.set_attribute" title="Permalink to this definition">¶</a></dt> +<dd><p>Sets a custom node attribute of given name with given value</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.set_initializer"> +<code class="sig-name descname">set_initializer</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em>, <em class="sig-param">tensor_value</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.set_initializer" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the initializer value for tensor with given name.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.set_metadata_prop"> +<code class="sig-name descname">set_metadata_prop</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.set_metadata_prop" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.set_tensor_datatype"> +<code class="sig-name descname">set_tensor_datatype</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em>, <em class="sig-param">datatype</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.set_tensor_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Sets the FINN DataType of tensor with given name.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.set_tensor_shape"> +<code class="sig-name descname">set_tensor_shape</code><span class="sig-paren">(</span><em class="sig-param">tensor_name</em>, <em class="sig-param">tensor_shape</em>, <em class="sig-param">dtype=1</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.set_tensor_shape" title="Permalink to this definition">¶</a></dt> +<dd><p>Assign shape in ValueInfoProto for tensor with given name.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.core.modelwrapper.ModelWrapper.transform"> +<code class="sig-name descname">transform</code><span class="sig-paren">(</span><em class="sig-param">transformation</em>, <em class="sig-param">make_deepcopy=True</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.modelwrapper.ModelWrapper.transform" title="Permalink to this definition">¶</a></dt> +<dd><p>Applies given Transformation repeatedly until no more changes can be made +and returns a transformed ModelWrapper instance. +If make_deepcopy is specified, operates on a new (deep)copy of model.</p> +</dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-core-onnx-exec-module"> -<h2>src.finn.core.onnx_exec module<a class="headerlink" href="#src-finn-core-onnx-exec-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.core.onnx_exec"> +<span id="src-finn-core-onnx-exec-module"></span><h2>src.finn.core.onnx_exec module<a class="headerlink" href="#module-src.finn.core.onnx_exec" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.core.onnx_exec.compare_execution"> +<code class="sig-prename descclassname">src.finn.core.onnx_exec.</code><code class="sig-name descname">compare_execution</code><span class="sig-paren">(</span><em class="sig-param">model_a</em>, <em class="sig-param">model_b</em>, <em class="sig-param">input_dict</em>, <em class="sig-param">compare_fxn=<function <lambda>></em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.onnx_exec.compare_execution" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute two ONNX models and compare their outputs using given function. +compare_fxn should take in two tensors and return a Boolean</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.core.onnx_exec.execute_node"> +<code class="sig-prename descclassname">src.finn.core.onnx_exec.</code><code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">node</em>, <em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.onnx_exec.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Call onnxruntime to execute a single node. Input/output provided via context.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.core.onnx_exec.execute_onnx"> +<code class="sig-prename descclassname">src.finn.core.onnx_exec.</code><code class="sig-name descname">execute_onnx</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">input_dict</em>, <em class="sig-param">return_full_exec_context=False</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.onnx_exec.execute_onnx" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute given ONNX ModelWrapper with given named inputs. +If return_full_exec_context is False, a dict of named outputs is returned +as indicated by the model.graph.output. +If return return_full_exec_context is True, the full set of tensors used by +the execution (including inputs, weights, activations and final outputs) +will be returned as a dict.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.core.onnx_exec.execute_onnx_and_make_model"> +<code class="sig-prename descclassname">src.finn.core.onnx_exec.</code><code class="sig-name descname">execute_onnx_and_make_model</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">input_dict</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.core.onnx_exec.execute_onnx_and_make_model" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute given ONNX ModelWrapper with given named inputs and return a new +ModelWrapper where an initializer is provided for each tensor as taken from +the execution. This new model is useful for debugging, since it contains +all the intermediate activation values.</p> +</dd></dl> + </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.core"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.core" title="Permalink to this headline">¶</a></h2> </div> </div> diff --git a/docs/finn/_build/html/src.finn.custom_op.fpgadataflow.html b/docs/finn/_build/html/src.finn.custom_op.fpgadataflow.html index 2178d49805f4a06e8cd3d9e830176a79d66c5fd1..8cc164d7b72dd39649e77b858663f326384f08ec 100644 --- a/docs/finn/_build/html/src.finn.custom_op.fpgadataflow.html +++ b/docs/finn/_build/html/src.finn.custom_op.fpgadataflow.html @@ -35,23 +35,723 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-custom-op-fpgadataflow-convolutioninputgenerator-module"> -<h2>src.finn.custom_op.fpgadataflow.convolutioninputgenerator module<a class="headerlink" href="#src-finn-custom-op-fpgadataflow-convolutioninputgenerator-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.fpgadataflow.convolutioninputgenerator"> +<span id="src-finn-custom-op-fpgadataflow-convolutioninputgenerator-module"></span><h2>src.finn.custom_op.fpgadataflow.convolutioninputgenerator module<a class="headerlink" href="#module-src.finn.custom_op.fpgadataflow.convolutioninputgenerator" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.fpgadataflow.convolutioninputgenerator.</code><code class="sig-name descname">ConvolutionInputGenerator</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.custom_op.fpgadataflow.HLSCustomOp</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.blackboxfunction"> +<code class="sig-name descname">blackboxfunction</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.blackboxfunction" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.bram_estimation"> +<code class="sig-name descname">bram_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.bram_estimation" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.dataoutstrm"> +<code class="sig-name descname">dataoutstrm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.dataoutstrm" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.defines"> +<code class="sig-name descname">defines</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.defines" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.docompute"> +<code class="sig-name descname">docompute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.docompute" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.execute_node"> +<code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute this CustomOp instance, given the execution context and +ONNX graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_input_datatype"> +<code class="sig-name descname">get_input_datatype</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_input_datatype" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_nodeattr_types"> +<code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_number_output_values"> +<code class="sig-name descname">get_number_output_values</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_number_output_values" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_output_datatype"> +<code class="sig-name descname">get_output_datatype</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_output_datatype" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_stream_width"> +<code class="sig-name descname">get_stream_width</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.get_stream_width" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.global_includes"> +<code class="sig-name descname">global_includes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.global_includes" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.infer_node_datatype"> +<code class="sig-name descname">infer_node_datatype</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.infer_node_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the DataType annotations corresponding to the outputs of this +node.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.lut_estimation"> +<code class="sig-name descname">lut_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.lut_estimation" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.make_shape_compatible_op"> +<code class="sig-name descname">make_shape_compatible_op</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.make_shape_compatible_op" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a standard ONNX op which is compatible with this CustomOp +for performing shape inference.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.pragmas"> +<code class="sig-name descname">pragmas</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.pragmas" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.read_npy_data"> +<code class="sig-name descname">read_npy_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.read_npy_data" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.save_as_npy"> +<code class="sig-name descname">save_as_npy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.save_as_npy" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.strm_decl"> +<code class="sig-name descname">strm_decl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.strm_decl" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.verify_node"> +<code class="sig-name descname">verify_node</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.convolutioninputgenerator.ConvolutionInputGenerator.verify_node" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-custom-op-fpgadataflow-streamingfclayer-batch-module"> -<h2>src.finn.custom_op.fpgadataflow.streamingfclayer_batch module<a class="headerlink" href="#src-finn-custom-op-fpgadataflow-streamingfclayer-batch-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.fpgadataflow.streamingfclayer_batch"> +<span id="src-finn-custom-op-fpgadataflow-streamingfclayer-batch-module"></span><h2>src.finn.custom_op.fpgadataflow.streamingfclayer_batch module<a class="headerlink" href="#module-src.finn.custom_op.fpgadataflow.streamingfclayer_batch" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.fpgadataflow.streamingfclayer_batch.</code><code class="sig-name descname">StreamingFCLayer_Batch</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.custom_op.fpgadataflow.HLSCustomOp</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.blackboxfunction"> +<code class="sig-name descname">blackboxfunction</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.blackboxfunction" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.bram_estimation"> +<code class="sig-name descname">bram_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.bram_estimation" title="Permalink to this definition">¶</a></dt> +<dd><p>the calculations are based on: +- FINN-R: An End-to-End Deep-Learning Framework for Fast +Exploration of Quantized Neural Networks +- M. Blott, T. B. Preusser, N. J. Fraser, G. Gambardella, K. O’Brien, +Y. Umuroglu, M. Leeser and K. Vissers +- 12. Sep 2018</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.calc_tmem"> +<code class="sig-name descname">calc_tmem</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.calc_tmem" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.calc_wmem"> +<code class="sig-name descname">calc_wmem</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.calc_wmem" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.dataoutstrm"> +<code class="sig-name descname">dataoutstrm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.dataoutstrm" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.defines"> +<code class="sig-name descname">defines</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.defines" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.docompute"> +<code class="sig-name descname">docompute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.docompute" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.execute_node"> +<code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute this CustomOp instance, given the execution context and +ONNX graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.generate_params"> +<code class="sig-name descname">generate_params</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">path</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.generate_params" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_folded_input_shape"> +<code class="sig-name descname">get_folded_input_shape</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_folded_input_shape" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_folded_output_shape"> +<code class="sig-name descname">get_folded_output_shape</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_folded_output_shape" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_hls_compatible_threshold_tensor"> +<code class="sig-name descname">get_hls_compatible_threshold_tensor</code><span class="sig-paren">(</span><em class="sig-param">orig_thres_matrix</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_hls_compatible_threshold_tensor" title="Permalink to this definition">¶</a></dt> +<dd><p>Convert the original numpy weight matrix orig_weight_matrix into +a form suitable for passing to the hlslib call: +* ensure MH % PE == 0 +* for bipolar weights&inputs, ensure thresholds are positive +* interleave rows between PEs +* reshape into (PE, TMEM, n_thres_steps) and return</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_hls_compatible_weight_tensor"> +<code class="sig-name descname">get_hls_compatible_weight_tensor</code><span class="sig-paren">(</span><em class="sig-param">orig_weight_matrix</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_hls_compatible_weight_tensor" title="Permalink to this definition">¶</a></dt> +<dd><p>Convert the original numpy weight matrix orig_weight_matrix into +a form suitable for passing to the hlslib call: +* ensure MH % PE == 0 and MW % SIMD == 0 +* for bipolar {-1,+1} weights, convert to binary {0, 1} +* interleave rows between PEs +* reshape into (1, PE, WMEM, SIMD) and return</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_input_datatype"> +<code class="sig-name descname">get_input_datatype</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_input_datatype" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_instream_width"> +<code class="sig-name descname">get_instream_width</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_instream_width" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_nodeattr_types"> +<code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_number_output_values"> +<code class="sig-name descname">get_number_output_values</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_number_output_values" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_output_datatype"> +<code class="sig-name descname">get_output_datatype</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_output_datatype" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_outstream_width"> +<code class="sig-name descname">get_outstream_width</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_outstream_width" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_template_param_values"> +<code class="sig-name descname">get_template_param_values</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_template_param_values" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_weight_datatype"> +<code class="sig-name descname">get_weight_datatype</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.get_weight_datatype" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.global_includes"> +<code class="sig-name descname">global_includes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.global_includes" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.infer_node_datatype"> +<code class="sig-name descname">infer_node_datatype</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.infer_node_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the DataType annotations corresponding to the outputs of this +node.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.lut_estimation"> +<code class="sig-name descname">lut_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.lut_estimation" title="Permalink to this definition">¶</a></dt> +<dd><p>the calculations are based on: +- FINN-R: An End-to-End Deep-Learning Framework for Fast +Exploration of Quantized Neural Networks +- M. Blott, T. B. Preusser, N. J. Fraser, G. Gambardella, K. O’Brien, +Y. Umuroglu, M. Leeser and K. Vissers +- 12. Sep 2018</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.make_shape_compatible_op"> +<code class="sig-name descname">make_shape_compatible_op</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.make_shape_compatible_op" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a standard ONNX op which is compatible with this CustomOp +for performing shape inference.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.pragmas"> +<code class="sig-name descname">pragmas</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.pragmas" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.read_npy_data"> +<code class="sig-name descname">read_npy_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.read_npy_data" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.save_as_npy"> +<code class="sig-name descname">save_as_npy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.save_as_npy" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.strm_decl"> +<code class="sig-name descname">strm_decl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.strm_decl" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.verify_node"> +<code class="sig-name descname">verify_node</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingfclayer_batch.StreamingFCLayer_Batch.verify_node" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-custom-op-fpgadataflow-streamingmaxpool-batch-module"> -<h2>src.finn.custom_op.fpgadataflow.streamingmaxpool_batch module<a class="headerlink" href="#src-finn-custom-op-fpgadataflow-streamingmaxpool-batch-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.fpgadataflow.streamingmaxpool_batch"> +<span id="src-finn-custom-op-fpgadataflow-streamingmaxpool-batch-module"></span><h2>src.finn.custom_op.fpgadataflow.streamingmaxpool_batch module<a class="headerlink" href="#module-src.finn.custom_op.fpgadataflow.streamingmaxpool_batch" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.</code><code class="sig-name descname">StreamingMaxPool_Batch</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.custom_op.fpgadataflow.HLSCustomOp</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.blackboxfunction"> +<code class="sig-name descname">blackboxfunction</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.blackboxfunction" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.bram_estimation"> +<code class="sig-name descname">bram_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.bram_estimation" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.dataoutstrm"> +<code class="sig-name descname">dataoutstrm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.dataoutstrm" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.defines"> +<code class="sig-name descname">defines</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.defines" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.docompute"> +<code class="sig-name descname">docompute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.docompute" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.get_nodeattr_types"> +<code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.get_number_output_values"> +<code class="sig-name descname">get_number_output_values</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.get_number_output_values" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.global_includes"> +<code class="sig-name descname">global_includes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.global_includes" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.infer_node_datatype"> +<code class="sig-name descname">infer_node_datatype</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.infer_node_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the DataType annotations corresponding to the outputs of this +node.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.lut_estimation"> +<code class="sig-name descname">lut_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.lut_estimation" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.make_shape_compatible_op"> +<code class="sig-name descname">make_shape_compatible_op</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.make_shape_compatible_op" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a standard ONNX op which is compatible with this CustomOp +for performing shape inference.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.pragmas"> +<code class="sig-name descname">pragmas</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.pragmas" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.read_npy_data"> +<code class="sig-name descname">read_npy_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.read_npy_data" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.save_as_npy"> +<code class="sig-name descname">save_as_npy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.save_as_npy" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.strm_decl"> +<code class="sig-name descname">strm_decl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.strm_decl" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.verify_node"> +<code class="sig-name descname">verify_node</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.streamingmaxpool_batch.StreamingMaxPool_Batch.verify_node" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-custom-op-fpgadataflow-templates-module"> -<h2>src.finn.custom_op.fpgadataflow.templates module<a class="headerlink" href="#src-finn-custom-op-fpgadataflow-templates-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.fpgadataflow.templates"> +<span id="src-finn-custom-op-fpgadataflow-templates-module"></span><h2>src.finn.custom_op.fpgadataflow.templates module<a class="headerlink" href="#module-src.finn.custom_op.fpgadataflow.templates" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-custom-op-fpgadataflow-tlastmarker-module"> -<h2>src.finn.custom_op.fpgadataflow.tlastmarker module<a class="headerlink" href="#src-finn-custom-op-fpgadataflow-tlastmarker-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.fpgadataflow.tlastmarker"> +<span id="src-finn-custom-op-fpgadataflow-tlastmarker-module"></span><h2>src.finn.custom_op.fpgadataflow.tlastmarker module<a class="headerlink" href="#module-src.finn.custom_op.fpgadataflow.tlastmarker" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.fpgadataflow.tlastmarker.</code><code class="sig-name descname">TLastMarker</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.custom_op.fpgadataflow.HLSCustomOp</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.blackboxfunction"> +<code class="sig-name descname">blackboxfunction</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.blackboxfunction" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.dataoutstrm"> +<code class="sig-name descname">dataoutstrm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.dataoutstrm" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.defines"> +<code class="sig-name descname">defines</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.defines" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.docompute"> +<code class="sig-name descname">docompute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.docompute" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.execute_node"> +<code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute this CustomOp instance, given the execution context and +ONNX graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_folded_input_shape"> +<code class="sig-name descname">get_folded_input_shape</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_folded_input_shape" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_folded_output_shape"> +<code class="sig-name descname">get_folded_output_shape</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_folded_output_shape" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_instream_width"> +<code class="sig-name descname">get_instream_width</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_instream_width" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_nodeattr_types"> +<code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_number_output_values"> +<code class="sig-name descname">get_number_output_values</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_number_output_values" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_outstream_width"> +<code class="sig-name descname">get_outstream_width</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.get_outstream_width" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.global_includes"> +<code class="sig-name descname">global_includes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.global_includes" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.infer_node_datatype"> +<code class="sig-name descname">infer_node_datatype</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.infer_node_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the DataType annotations corresponding to the outputs of this +node.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.make_shape_compatible_op"> +<code class="sig-name descname">make_shape_compatible_op</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.make_shape_compatible_op" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a standard ONNX op which is compatible with this CustomOp +for performing shape inference.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.pragmas"> +<code class="sig-name descname">pragmas</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.pragmas" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.read_npy_data"> +<code class="sig-name descname">read_npy_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.read_npy_data" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.save_as_npy"> +<code class="sig-name descname">save_as_npy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.save_as_npy" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.strm_decl"> +<code class="sig-name descname">strm_decl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.strm_decl" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.verify_node"> +<code class="sig-name descname">verify_node</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.tlastmarker.TLastMarker.verify_node" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +</dd></dl> + </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.fpgadataflow"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.custom_op.fpgadataflow" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.fpgadataflow.</code><code class="sig-name descname">HLSCustomOp</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.custom_op.CustomOp</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.blackboxfunction"> +<em class="property">abstract </em><code class="sig-name descname">blackboxfunction</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.blackboxfunction" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.bram_estimation"> +<code class="sig-name descname">bram_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.bram_estimation" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.code_generation_ipgen"> +<code class="sig-name descname">code_generation_ipgen</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">fpgapart</em>, <em class="sig-param">clk</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.code_generation_ipgen" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.code_generation_npysim"> +<code class="sig-name descname">code_generation_npysim</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.code_generation_npysim" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.compile_singlenode_code"> +<code class="sig-name descname">compile_singlenode_code</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.compile_singlenode_code" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.dataoutstrm"> +<em class="property">abstract </em><code class="sig-name descname">dataoutstrm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.dataoutstrm" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.defines"> +<em class="property">abstract </em><code class="sig-name descname">defines</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.defines" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.docompute"> +<em class="property">abstract </em><code class="sig-name descname">docompute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.docompute" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.dynamic_input_to_npy"> +<code class="sig-name descname">dynamic_input_to_npy</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">count</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.dynamic_input_to_npy" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.exec_precompiled_singlenode_model"> +<code class="sig-name descname">exec_precompiled_singlenode_model</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.exec_precompiled_singlenode_model" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.execute_node"> +<code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute this CustomOp instance, given the execution context and +ONNX graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.generate_params"> +<code class="sig-name descname">generate_params</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">path</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.generate_params" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.get_folded_input_shape"> +<code class="sig-name descname">get_folded_input_shape</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_folded_input_shape" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.get_folded_output_shape"> +<code class="sig-name descname">get_folded_output_shape</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_folded_output_shape" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.get_instream_width"> +<code class="sig-name descname">get_instream_width</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_instream_width" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.get_nodeattr_types"> +<code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.get_number_output_values"> +<em class="property">abstract </em><code class="sig-name descname">get_number_output_values</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_number_output_values" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.get_outstream_width"> +<code class="sig-name descname">get_outstream_width</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.get_outstream_width" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.global_includes"> +<em class="property">abstract </em><code class="sig-name descname">global_includes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.global_includes" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.ipgen_singlenode_code"> +<code class="sig-name descname">ipgen_singlenode_code</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.ipgen_singlenode_code" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.lut_estimation"> +<code class="sig-name descname">lut_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.lut_estimation" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.node_res_estimation"> +<code class="sig-name descname">node_res_estimation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.node_res_estimation" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.npy_to_dynamic_output"> +<code class="sig-name descname">npy_to_dynamic_output</code><span class="sig-paren">(</span><em class="sig-param">context</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.npy_to_dynamic_output" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.pragmas"> +<em class="property">abstract </em><code class="sig-name descname">pragmas</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.pragmas" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.read_npy_data"> +<em class="property">abstract </em><code class="sig-name descname">read_npy_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.read_npy_data" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.reset_rtlsim"> +<code class="sig-name descname">reset_rtlsim</code><span class="sig-paren">(</span><em class="sig-param">sim</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.reset_rtlsim" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.rtlsim"> +<code class="sig-name descname">rtlsim</code><span class="sig-paren">(</span><em class="sig-param">sim</em>, <em class="sig-param">inp</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.rtlsim" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.save_as_npy"> +<em class="property">abstract </em><code class="sig-name descname">save_as_npy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.save_as_npy" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.strm_decl"> +<em class="property">abstract </em><code class="sig-name descname">strm_decl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.strm_decl" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.fpgadataflow.HLSCustomOp.toggle_clk"> +<code class="sig-name descname">toggle_clk</code><span class="sig-paren">(</span><em class="sig-param">sim</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.fpgadataflow.HLSCustomOp.toggle_clk" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> </div> diff --git a/docs/finn/_build/html/src.finn.custom_op.html b/docs/finn/_build/html/src.finn.custom_op.html index 696e8adad210ff0e05720ceae452aebee08c776e..e25274619b30e56cdef10b6d0e6da382be9ef653 100644 --- a/docs/finn/_build/html/src.finn.custom_op.html +++ b/docs/finn/_build/html/src.finn.custom_op.html @@ -38,12 +38,12 @@ <ul> <li class="toctree-l1"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html">src.finn.custom_op.fpgadataflow package</a><ul> <li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-convolutioninputgenerator-module">src.finn.custom_op.fpgadataflow.convolutioninputgenerator module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-streamingfclayer-batch-module">src.finn.custom_op.fpgadataflow.streamingfclayer_batch module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-streamingmaxpool-batch-module">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-templates-module">src.finn.custom_op.fpgadataflow.templates module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-tlastmarker-module">src.finn.custom_op.fpgadataflow.tlastmarker module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.convolutioninputgenerator">src.finn.custom_op.fpgadataflow.convolutioninputgenerator module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingfclayer_batch">src.finn.custom_op.fpgadataflow.streamingfclayer_batch module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingmaxpool_batch">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.templates">src.finn.custom_op.fpgadataflow.templates module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.tlastmarker">src.finn.custom_op.fpgadataflow.tlastmarker module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow">Module contents</a></li> </ul> </li> </ul> @@ -52,20 +52,244 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-custom-op-multithreshold-module"> -<h2>src.finn.custom_op.multithreshold module<a class="headerlink" href="#src-finn-custom-op-multithreshold-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.multithreshold"> +<span id="src-finn-custom-op-multithreshold-module"></span><h2>src.finn.custom_op.multithreshold module<a class="headerlink" href="#module-src.finn.custom_op.multithreshold" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.multithreshold.MultiThreshold"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.multithreshold.</code><code class="sig-name descname">MultiThreshold</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.multithreshold.MultiThreshold" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.custom_op.CustomOp</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.multithreshold.MultiThreshold.execute_node"> +<code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.multithreshold.MultiThreshold.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute this CustomOp instance, given the execution context and +ONNX graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.multithreshold.MultiThreshold.get_nodeattr_types"> +<code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.multithreshold.MultiThreshold.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.multithreshold.MultiThreshold.infer_node_datatype"> +<code class="sig-name descname">infer_node_datatype</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.multithreshold.MultiThreshold.infer_node_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the DataType annotations corresponding to the outputs of this +node.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.multithreshold.MultiThreshold.make_shape_compatible_op"> +<code class="sig-name descname">make_shape_compatible_op</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.multithreshold.MultiThreshold.make_shape_compatible_op" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a standard ONNX op which is compatible with this CustomOp +for performing shape inference.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.multithreshold.MultiThreshold.verify_node"> +<code class="sig-name descname">verify_node</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.multithreshold.MultiThreshold.verify_node" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +</dd></dl> + +<dl class="function"> +<dt id="src.finn.custom_op.multithreshold.compare"> +<code class="sig-prename descclassname">src.finn.custom_op.multithreshold.</code><code class="sig-name descname">compare</code><span class="sig-paren">(</span><em class="sig-param">x</em>, <em class="sig-param">y</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.multithreshold.compare" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="function"> +<dt id="src.finn.custom_op.multithreshold.multithreshold"> +<code class="sig-prename descclassname">src.finn.custom_op.multithreshold.</code><code class="sig-name descname">multithreshold</code><span class="sig-paren">(</span><em class="sig-param">v</em>, <em class="sig-param">thresholds</em>, <em class="sig-param">out_scale=None</em>, <em class="sig-param">out_bias=None</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.multithreshold.multithreshold" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + </div> -<div class="section" id="src-finn-custom-op-registry-module"> -<h2>src.finn.custom_op.registry module<a class="headerlink" href="#src-finn-custom-op-registry-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.registry"> +<span id="src-finn-custom-op-registry-module"></span><h2>src.finn.custom_op.registry module<a class="headerlink" href="#module-src.finn.custom_op.registry" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.custom_op.registry.getCustomOp"> +<code class="sig-prename descclassname">src.finn.custom_op.registry.</code><code class="sig-name descname">getCustomOp</code><span class="sig-paren">(</span><em class="sig-param">node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.registry.getCustomOp" title="Permalink to this definition">¶</a></dt> +<dd><p>Return a FINN CustomOp instance for the given ONNX node, if it exists.</p> +</dd></dl> + </div> -<div class="section" id="src-finn-custom-op-streamingdataflowpartition-module"> -<h2>src.finn.custom_op.streamingdataflowpartition module<a class="headerlink" href="#src-finn-custom-op-streamingdataflowpartition-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.streamingdataflowpartition"> +<span id="src-finn-custom-op-streamingdataflowpartition-module"></span><h2>src.finn.custom_op.streamingdataflowpartition module<a class="headerlink" href="#module-src.finn.custom_op.streamingdataflowpartition" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.streamingdataflowpartition.</code><code class="sig-name descname">StreamingDataflowPartition</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.custom_op.CustomOp</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.execute_node"> +<code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute this CustomOp instance, given the execution context and +ONNX graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.get_nodeattr_types"> +<code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.infer_node_datatype"> +<code class="sig-name descname">infer_node_datatype</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.infer_node_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the DataType annotations corresponding to the outputs of this +node.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.make_shape_compatible_op"> +<code class="sig-name descname">make_shape_compatible_op</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.make_shape_compatible_op" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a standard ONNX op which is compatible with this CustomOp +for performing shape inference.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.verify_node"> +<code class="sig-name descname">verify_node</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.streamingdataflowpartition.StreamingDataflowPartition.verify_node" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-custom-op-xnorpopcount-module"> -<h2>src.finn.custom_op.xnorpopcount module<a class="headerlink" href="#src-finn-custom-op-xnorpopcount-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op.xnorpopcount"> +<span id="src-finn-custom-op-xnorpopcount-module"></span><h2>src.finn.custom_op.xnorpopcount module<a class="headerlink" href="#module-src.finn.custom_op.xnorpopcount" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.xnorpopcount.XnorPopcountMatMul"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.xnorpopcount.</code><code class="sig-name descname">XnorPopcountMatMul</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.custom_op.CustomOp</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.execute_node"> +<code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute this CustomOp instance, given the execution context and +ONNX graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.get_nodeattr_types"> +<code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.infer_node_datatype"> +<code class="sig-name descname">infer_node_datatype</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.infer_node_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the DataType annotations corresponding to the outputs of this +node.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.make_shape_compatible_op"> +<code class="sig-name descname">make_shape_compatible_op</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.make_shape_compatible_op" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a standard ONNX op which is compatible with this CustomOp +for performing shape inference.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.verify_node"> +<code class="sig-name descname">verify_node</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.xnorpopcount.XnorPopcountMatMul.verify_node" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +</dd></dl> + +<dl class="function"> +<dt id="src.finn.custom_op.xnorpopcount.xnorpopcountmatmul"> +<code class="sig-prename descclassname">src.finn.custom_op.xnorpopcount.</code><code class="sig-name descname">xnorpopcountmatmul</code><span class="sig-paren">(</span><em class="sig-param">inp0</em>, <em class="sig-param">inp1</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.xnorpopcount.xnorpopcountmatmul" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.custom_op"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.custom_op" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.custom_op.CustomOp"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.custom_op.</code><code class="sig-name descname">CustomOp</code><span class="sig-paren">(</span><em class="sig-param">onnx_node</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.CustomOp" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">abc.ABC</span></code></p> +<dl class="method"> +<dt id="src.finn.custom_op.CustomOp.execute_node"> +<em class="property">abstract </em><code class="sig-name descname">execute_node</code><span class="sig-paren">(</span><em class="sig-param">context</em>, <em class="sig-param">graph</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.CustomOp.execute_node" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute this CustomOp instance, given the execution context and +ONNX graph.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.CustomOp.get_nodeattr"> +<code class="sig-name descname">get_nodeattr</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.CustomOp.get_nodeattr" title="Permalink to this definition">¶</a></dt> +<dd><p>Get a node attribute by name. Data is stored inside the ONNX node’s +AttributeProto container. Attribute must be part of get_nodeattr_types. +Default value is returned if attribute is not set.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.CustomOp.get_nodeattr_types"> +<em class="property">abstract </em><code class="sig-name descname">get_nodeattr_types</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.CustomOp.get_nodeattr_types" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.CustomOp.infer_node_datatype"> +<em class="property">abstract </em><code class="sig-name descname">infer_node_datatype</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.CustomOp.infer_node_datatype" title="Permalink to this definition">¶</a></dt> +<dd><p>Set the DataType annotations corresponding to the outputs of this +node.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.CustomOp.make_shape_compatible_op"> +<em class="property">abstract </em><code class="sig-name descname">make_shape_compatible_op</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.CustomOp.make_shape_compatible_op" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a standard ONNX op which is compatible with this CustomOp +for performing shape inference.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.CustomOp.set_nodeattr"> +<code class="sig-name descname">set_nodeattr</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.CustomOp.set_nodeattr" title="Permalink to this definition">¶</a></dt> +<dd><p>Set a node attribute by name. Data is stored inside the ONNX node’s +AttributeProto container. Attribute must be part of get_nodeattr_types.</p> +</dd></dl> + +<dl class="method"> +<dt id="src.finn.custom_op.CustomOp.verify_node"> +<em class="property">abstract </em><code class="sig-name descname">verify_node</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.custom_op.CustomOp.verify_node" title="Permalink to this definition">¶</a></dt> +<dd><p>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</p> +</dd></dl> + +</dd></dl> + </div> </div> diff --git a/docs/finn/_build/html/src.finn.html b/docs/finn/_build/html/src.finn.html index e321de7c2c96180026553b5566b83ff21c2a37b3..b9f583576959b4b9d40a63c4496ec3ee843e54fe 100644 --- a/docs/finn/_build/html/src.finn.html +++ b/docs/finn/_build/html/src.finn.html @@ -40,109 +40,115 @@ <li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.html#subpackages">Subpackages</a><ul> <li class="toctree-l3"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html">src.finn.analysis.fpgadataflow package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#src-finn-analysis-fpgadataflow-hls-synth-res-estimation-module">src.finn.analysis.fpgadataflow.hls_synth_res_estimation module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#src-finn-analysis-fpgadataflow-res-estimation-module">src.finn.analysis.fpgadataflow.res_estimation module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.hls_synth_res_estimation">src.finn.analysis.fpgadataflow.hls_synth_res_estimation module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.res_estimation">src.finn.analysis.fpgadataflow.res_estimation module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.html#src-finn-analysis-topology-module">src.finn.analysis.topology module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.html#src-finn-analysis-verify-custom-nodes-module">src.finn.analysis.verify_custom_nodes module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.html#module-src.finn.analysis.topology">src.finn.analysis.topology module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.html#module-src.finn.analysis.verify_custom_nodes">src.finn.analysis.verify_custom_nodes module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.analysis.html#module-src.finn.analysis">Module contents</a><ul> +<li class="toctree-l3"><a class="reference internal" href="src.finn.analysis.html#how-to-write-an-analysis-pass-for-finn">How to write an analysis pass for FINN</a></li> +</ul> +</li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="src.finn.core.html">src.finn.core package</a><ul> <li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#src-finn-core-datatype-module">src.finn.core.datatype module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#src-finn-core-execute-custom-node-module">src.finn.core.execute_custom_node module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#src-finn-core-modelwrapper-module">src.finn.core.modelwrapper module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#src-finn-core-onnx-exec-module">src.finn.core.onnx_exec module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#module-src.finn.core.datatype">src.finn.core.datatype module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#module-src.finn.core.execute_custom_node">src.finn.core.execute_custom_node module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#module-src.finn.core.modelwrapper">src.finn.core.modelwrapper module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#module-src.finn.core.onnx_exec">src.finn.core.onnx_exec module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.core.html#module-src.finn.core">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="src.finn.custom_op.html">src.finn.custom_op package</a><ul> <li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#subpackages">Subpackages</a><ul> <li class="toctree-l3"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html">src.finn.custom_op.fpgadataflow package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-convolutioninputgenerator-module">src.finn.custom_op.fpgadataflow.convolutioninputgenerator module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-streamingfclayer-batch-module">src.finn.custom_op.fpgadataflow.streamingfclayer_batch module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-streamingmaxpool-batch-module">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-templates-module">src.finn.custom_op.fpgadataflow.templates module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-tlastmarker-module">src.finn.custom_op.fpgadataflow.tlastmarker module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.convolutioninputgenerator">src.finn.custom_op.fpgadataflow.convolutioninputgenerator module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingfclayer_batch">src.finn.custom_op.fpgadataflow.streamingfclayer_batch module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingmaxpool_batch">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.templates">src.finn.custom_op.fpgadataflow.templates module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.tlastmarker">src.finn.custom_op.fpgadataflow.tlastmarker module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#src-finn-custom-op-multithreshold-module">src.finn.custom_op.multithreshold module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#src-finn-custom-op-registry-module">src.finn.custom_op.registry module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#src-finn-custom-op-streamingdataflowpartition-module">src.finn.custom_op.streamingdataflowpartition module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#src-finn-custom-op-xnorpopcount-module">src.finn.custom_op.xnorpopcount module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op.multithreshold">src.finn.custom_op.multithreshold module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op.registry">src.finn.custom_op.registry module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op.streamingdataflowpartition">src.finn.custom_op.streamingdataflowpartition module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op.xnorpopcount">src.finn.custom_op.xnorpopcount module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="src.finn.transformation.html">src.finn.transformation package</a><ul> <li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#subpackages">Subpackages</a><ul> <li class="toctree-l3"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html">src.finn.transformation.fpgadataflow package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-cleanup-module">src.finn.transformation.fpgadataflow.cleanup module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-ipgen-module">src.finn.transformation.fpgadataflow.codegen_ipgen module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-ipstitch-module">src.finn.transformation.fpgadataflow.codegen_ipstitch module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-npysim-module">src.finn.transformation.fpgadataflow.codegen_npysim module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-compile-module">src.finn.transformation.fpgadataflow.compile module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-convert-to-hls-layers-module">src.finn.transformation.fpgadataflow.convert_to_hls_layers module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-create-dataflow-partition-module">src.finn.transformation.fpgadataflow.create_dataflow_partition module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-hlssynth-ipgen-module">src.finn.transformation.fpgadataflow.hlssynth_ipgen module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-insert-tlastmarker-module">src.finn.transformation.fpgadataflow.insert_tlastmarker module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-deployment-module">src.finn.transformation.fpgadataflow.make_deployment module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-pynq-driver-module">src.finn.transformation.fpgadataflow.make_pynq_driver module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-pynq-proj-module">src.finn.transformation.fpgadataflow.make_pynq_proj module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-set-sim-mode-module">src.finn.transformation.fpgadataflow.set_sim_mode module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-synth-pynq-proj-module">src.finn.transformation.fpgadataflow.synth_pynq_proj module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-templates-module">src.finn.transformation.fpgadataflow.templates module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.cleanup">src.finn.transformation.fpgadataflow.cleanup module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipgen">src.finn.transformation.fpgadataflow.codegen_ipgen module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipstitch">src.finn.transformation.fpgadataflow.codegen_ipstitch module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_npysim">src.finn.transformation.fpgadataflow.codegen_npysim module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.compile">src.finn.transformation.fpgadataflow.compile module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.convert_to_hls_layers">src.finn.transformation.fpgadataflow.convert_to_hls_layers module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.create_dataflow_partition">src.finn.transformation.fpgadataflow.create_dataflow_partition module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.hlssynth_ipgen">src.finn.transformation.fpgadataflow.hlssynth_ipgen module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.insert_tlastmarker">src.finn.transformation.fpgadataflow.insert_tlastmarker module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_deployment">src.finn.transformation.fpgadataflow.make_deployment module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_driver">src.finn.transformation.fpgadataflow.make_pynq_driver module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_proj">src.finn.transformation.fpgadataflow.make_pynq_proj module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.set_sim_mode">src.finn.transformation.fpgadataflow.set_sim_mode module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.synth_pynq_proj">src.finn.transformation.fpgadataflow.synth_pynq_proj module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.templates">src.finn.transformation.fpgadataflow.templates module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="src.finn.transformation.streamline.html">src.finn.transformation.streamline package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-absorb-module">src.finn.transformation.streamline.absorb module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-collapse-repeated-module">src.finn.transformation.streamline.collapse_repeated module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-reorder-module">src.finn.transformation.streamline.reorder module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-round-thresholds-module">src.finn.transformation.streamline.round_thresholds module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-sign-to-thres-module">src.finn.transformation.streamline.sign_to_thres module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.absorb">src.finn.transformation.streamline.absorb module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.collapse_repeated">src.finn.transformation.streamline.collapse_repeated module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.reorder">src.finn.transformation.streamline.reorder module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.round_thresholds">src.finn.transformation.streamline.round_thresholds module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.sign_to_thres">src.finn.transformation.streamline.sign_to_thres module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-batchnorm-to-affine-module">src.finn.transformation.batchnorm_to_affine module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-bipolar-to-xnor-module">src.finn.transformation.bipolar_to_xnor module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-fold-constants-module">src.finn.transformation.fold_constants module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-general-module">src.finn.transformation.general module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-infer-datatypes-module">src.finn.transformation.infer_datatypes module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-infer-shapes-module">src.finn.transformation.infer_shapes module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.batchnorm_to_affine">src.finn.transformation.batchnorm_to_affine module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.bipolar_to_xnor">src.finn.transformation.bipolar_to_xnor module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.fold_constants">src.finn.transformation.fold_constants module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.general">src.finn.transformation.general module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.infer_datatypes">src.finn.transformation.infer_datatypes module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.infer_shapes">src.finn.transformation.infer_shapes module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation">Module contents</a><ul> +<li class="toctree-l3"><a class="reference internal" href="src.finn.transformation.html#guide-to-writing-finn-transformations">Guide to writing FINN transformations</a></li> +</ul> +</li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="src.finn.util.html">src.finn.util package</a><ul> <li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#src-finn-util-basic-module">src.finn.util.basic module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#src-finn-util-data-packing-module">src.finn.util.data_packing module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#src-finn-util-fpgadataflow-module">src.finn.util.fpgadataflow module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#src-finn-util-onnx-module">src.finn.util.onnx module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#src-finn-util-test-module">src.finn.util.test module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.basic">src.finn.util.basic module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.data_packing">src.finn.util.data_packing module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.fpgadataflow">src.finn.util.fpgadataflow module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.onnx">src.finn.util.onnx module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.test">src.finn.util.test module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.util.html#module-src.finn.util">Module contents</a></li> </ul> </li> </ul> </div> </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn" title="Permalink to this headline">¶</a></h2> </div> </div> diff --git a/docs/finn/_build/html/src.finn.transformation.fpgadataflow.html b/docs/finn/_build/html/src.finn.transformation.fpgadataflow.html index de3f3d6fd1406ac82aa9e9c9bcfd61be2a202dd2..ddc7ad2bb596a915ee91e665f111bde7ddce97bf 100644 --- a/docs/finn/_build/html/src.finn.transformation.fpgadataflow.html +++ b/docs/finn/_build/html/src.finn.transformation.fpgadataflow.html @@ -35,53 +35,253 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-transformation-fpgadataflow-cleanup-module"> -<h2>src.finn.transformation.fpgadataflow.cleanup module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-cleanup-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.cleanup"> +<span id="src-finn-transformation-fpgadataflow-cleanup-module"></span><h2>src.finn.transformation.fpgadataflow.cleanup module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.cleanup" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.cleanup.CleanUp"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.cleanup.</code><code class="sig-name descname">CleanUp</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.cleanup.CleanUp" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Remove any generated files for fpgadataflow nodes.</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.cleanup.CleanUp.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.cleanup.CleanUp.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-codegen-ipgen-module"> -<h2>src.finn.transformation.fpgadataflow.codegen_ipgen module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-codegen-ipgen-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.codegen_ipgen"> +<span id="src-finn-transformation-fpgadataflow-codegen-ipgen-module"></span><h2>src.finn.transformation.fpgadataflow.codegen_ipgen module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.codegen_ipgen" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.codegen_ipgen.CodeGen_ipgen"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.codegen_ipgen.</code><code class="sig-name descname">CodeGen_ipgen</code><span class="sig-paren">(</span><em class="sig-param">fpgapart</em>, <em class="sig-param">clk</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.codegen_ipgen.CodeGen_ipgen" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Code generation for all nodes in model</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.codegen_ipgen.CodeGen_ipgen.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.codegen_ipgen.CodeGen_ipgen.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-codegen-ipstitch-module"> -<h2>src.finn.transformation.fpgadataflow.codegen_ipstitch module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-codegen-ipstitch-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.codegen_ipstitch"> +<span id="src-finn-transformation-fpgadataflow-codegen-ipstitch-module"></span><h2>src.finn.transformation.fpgadataflow.codegen_ipstitch module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.codegen_ipstitch" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.codegen_ipstitch.CodeGen_ipstitch"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.codegen_ipstitch.</code><code class="sig-name descname">CodeGen_ipstitch</code><span class="sig-paren">(</span><em class="sig-param">fpgapart</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.codegen_ipstitch.CodeGen_ipstitch" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Create a Vivado IP Block Design project from all the generated IPs of a +graph. All nodes in the graph must have the fpgadataflow backend attribute, +and the CodeGen_ipgen transformation must have been previously run on +the graph. The resulting block design is also packaged as IP.</p> +<p>Outcome if successful: sets the vivado_stitch_proj attribute in the ONNX +ModelProto’s metadata_props field, with the created project dir as the +value. A make_project.tcl script is also placed under the same folder, +which is called to instantiate the per-layer IPs and stitch them together. +The packaged block design IP can be found under the ip subdirectory.</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.codegen_ipstitch.CodeGen_ipstitch.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.codegen_ipstitch.CodeGen_ipstitch.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-codegen-npysim-module"> -<h2>src.finn.transformation.fpgadataflow.codegen_npysim module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-codegen-npysim-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.codegen_npysim"> +<span id="src-finn-transformation-fpgadataflow-codegen-npysim-module"></span><h2>src.finn.transformation.fpgadataflow.codegen_npysim module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.codegen_npysim" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.codegen_npysim.CodeGen_npysim"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.codegen_npysim.</code><code class="sig-name descname">CodeGen_npysim</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.codegen_npysim.CodeGen_npysim" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Code generation for all nodes in model</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.codegen_npysim.CodeGen_npysim.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.codegen_npysim.CodeGen_npysim.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-compile-module"> -<h2>src.finn.transformation.fpgadataflow.compile module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-compile-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.compile"> +<span id="src-finn-transformation-fpgadataflow-compile-module"></span><h2>src.finn.transformation.fpgadataflow.compile module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.compile" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.compile.Compile"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.compile.</code><code class="sig-name descname">Compile</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.compile.Compile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Compile for all nodes in model</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.compile.Compile.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.compile.Compile.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-convert-to-hls-layers-module"> -<h2>src.finn.transformation.fpgadataflow.convert_to_hls_layers module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-convert-to-hls-layers-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.convert_to_hls_layers"> +<span id="src-finn-transformation-fpgadataflow-convert-to-hls-layers-module"></span><h2>src.finn.transformation.fpgadataflow.convert_to_hls_layers module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.convert_to_hls_layers" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.convert_to_hls_layers.InferBinaryStreamingFCLayer"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.convert_to_hls_layers.</code><code class="sig-name descname">InferBinaryStreamingFCLayer</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.convert_to_hls_layers.InferBinaryStreamingFCLayer" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Convert pairs of binary XnorPopcountMatMul layers to +StreamingFCLayer_Batch layers. Any immediately following MultiThreshold +layers will also be absorbed into the MVTU.</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.convert_to_hls_layers.InferBinaryStreamingFCLayer.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.convert_to_hls_layers.InferBinaryStreamingFCLayer.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-create-dataflow-partition-module"> -<h2>src.finn.transformation.fpgadataflow.create_dataflow_partition module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-create-dataflow-partition-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.create_dataflow_partition"> +<span id="src-finn-transformation-fpgadataflow-create-dataflow-partition-module"></span><h2>src.finn.transformation.fpgadataflow.create_dataflow_partition module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.create_dataflow_partition" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.create_dataflow_partition.CreateDataflowPartition"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.create_dataflow_partition.</code><code class="sig-name descname">CreateDataflowPartition</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.create_dataflow_partition.CreateDataflowPartition" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Split a graph into two graphs; one which contains non-FINN-dataflow nodes +and a StreamingDataflowPartition node, and another which only contains +FINN dataflow nodes. The StreamingDataflowPartition has a model attribute +that indicates the filename for the second graph that only contains +dataflow nodes. No action is taken if there are no dataflow nodes.</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.create_dataflow_partition.CreateDataflowPartition.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.create_dataflow_partition.CreateDataflowPartition.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-hlssynth-ipgen-module"> -<h2>src.finn.transformation.fpgadataflow.hlssynth_ipgen module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-hlssynth-ipgen-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.hlssynth_ipgen"> +<span id="src-finn-transformation-fpgadataflow-hlssynth-ipgen-module"></span><h2>src.finn.transformation.fpgadataflow.hlssynth_ipgen module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.hlssynth_ipgen" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.hlssynth_ipgen.HLSSynth_IPGen"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.hlssynth_ipgen.</code><code class="sig-name descname">HLSSynth_IPGen</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.hlssynth_ipgen.HLSSynth_IPGen" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Compile for all nodes in model</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.hlssynth_ipgen.HLSSynth_IPGen.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.hlssynth_ipgen.HLSSynth_IPGen.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-insert-tlastmarker-module"> -<h2>src.finn.transformation.fpgadataflow.insert_tlastmarker module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-insert-tlastmarker-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.insert_tlastmarker"> +<span id="src-finn-transformation-fpgadataflow-insert-tlastmarker-module"></span><h2>src.finn.transformation.fpgadataflow.insert_tlastmarker module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.insert_tlastmarker" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.insert_tlastmarker.InsertTLastMarker"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.insert_tlastmarker.</code><code class="sig-name descname">InsertTLastMarker</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.insert_tlastmarker.InsertTLastMarker" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Ensure that the graph is terminated with a TLastMarker node, inserting +one if necessary.</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.insert_tlastmarker.InsertTLastMarker.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.insert_tlastmarker.InsertTLastMarker.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-make-deployment-module"> -<h2>src.finn.transformation.fpgadataflow.make_deployment module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-make-deployment-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.make_deployment"> +<span id="src-finn-transformation-fpgadataflow-make-deployment-module"></span><h2>src.finn.transformation.fpgadataflow.make_deployment module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.make_deployment" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.make_deployment.DeployToPYNQ"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.make_deployment.</code><code class="sig-name descname">DeployToPYNQ</code><span class="sig-paren">(</span><em class="sig-param">ip</em>, <em class="sig-param">username</em>, <em class="sig-param">password</em>, <em class="sig-param">target_dir</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.make_deployment.DeployToPYNQ" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Collects all necessary files for deployment and copies them to the PYNQ board. +Expects information about PYNQ board to make scp possible: +* ip address of board +* username and password for board +* target directory where the files are stored on the board</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.make_deployment.DeployToPYNQ.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.make_deployment.DeployToPYNQ.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-make-pynq-driver-module"> -<h2>src.finn.transformation.fpgadataflow.make_pynq_driver module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-make-pynq-driver-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.make_pynq_driver"> +<span id="src-finn-transformation-fpgadataflow-make-pynq-driver-module"></span><h2>src.finn.transformation.fpgadataflow.make_pynq_driver module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.make_pynq_driver" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.make_pynq_driver.MakePYNQDriver"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.make_pynq_driver.</code><code class="sig-name descname">MakePYNQDriver</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.make_pynq_driver.MakePYNQDriver" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Create PYNQ Python code to correctly interface the generated +accelerator, including data packing/unpacking. The MakePYNQProject +transformation must have been already applied.</p> +<p>Outcome if successful: sets the pynq_driver_dir attribute in the ONNX +ModelProto’s metadata_props field, with the created driver dir as the +value.</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.make_pynq_driver.MakePYNQDriver.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.make_pynq_driver.MakePYNQDriver.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-make-pynq-proj-module"> -<h2>src.finn.transformation.fpgadataflow.make_pynq_proj module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-make-pynq-proj-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.make_pynq_proj"> +<span id="src-finn-transformation-fpgadataflow-make-pynq-proj-module"></span><h2>src.finn.transformation.fpgadataflow.make_pynq_proj module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.make_pynq_proj" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.make_pynq_proj.MakePYNQProject"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.make_pynq_proj.</code><code class="sig-name descname">MakePYNQProject</code><span class="sig-paren">(</span><em class="sig-param">platform</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.make_pynq_proj.MakePYNQProject" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Create a Vivado PYNQ overlay project (including the shell infrastructure) +from the already-stitched IP block for this graph. +All nodes in the graph must have the fpgadataflow backend attribute, +and the CodeGen_ipstitch transformation must have been previously run on +the graph.</p> +<p>Outcome if successful: sets the vivado_pynq_proj attribute in the ONNX +ModelProto’s metadata_props field, with the created project dir as the +value.</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.make_pynq_proj.MakePYNQProject.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.make_pynq_proj.MakePYNQProject.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-set-sim-mode-module"> -<h2>src.finn.transformation.fpgadataflow.set_sim_mode module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-set-sim-mode-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.set_sim_mode"> +<span id="src-finn-transformation-fpgadataflow-set-sim-mode-module"></span><h2>src.finn.transformation.fpgadataflow.set_sim_mode module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.set_sim_mode" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.set_sim_mode.SetSimMode"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.set_sim_mode.</code><code class="sig-name descname">SetSimMode</code><span class="sig-paren">(</span><em class="sig-param">mode</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.set_sim_mode.SetSimMode" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Set attribute sim_mode in all fpgadataflow nodes</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.set_sim_mode.SetSimMode.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.set_sim_mode.SetSimMode.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-synth-pynq-proj-module"> -<h2>src.finn.transformation.fpgadataflow.synth_pynq_proj module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-synth-pynq-proj-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.synth_pynq_proj"> +<span id="src-finn-transformation-fpgadataflow-synth-pynq-proj-module"></span><h2>src.finn.transformation.fpgadataflow.synth_pynq_proj module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.synth_pynq_proj" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fpgadataflow.synth_pynq_proj.SynthPYNQProject"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fpgadataflow.synth_pynq_proj.</code><code class="sig-name descname">SynthPYNQProject</code><a class="headerlink" href="#src.finn.transformation.fpgadataflow.synth_pynq_proj.SynthPYNQProject" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Run synthesis for the PYNQ project for this graph. The MakePYNQProject +transformation must be applied prior to this transformation.</p> +<dl class="method"> +<dt id="src.finn.transformation.fpgadataflow.synth_pynq_proj.SynthPYNQProject.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fpgadataflow.synth_pynq_proj.SynthPYNQProject.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fpgadataflow-templates-module"> -<h2>src.finn.transformation.fpgadataflow.templates module<a class="headerlink" href="#src-finn-transformation-fpgadataflow-templates-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow.templates"> +<span id="src-finn-transformation-fpgadataflow-templates-module"></span><h2>src.finn.transformation.fpgadataflow.templates module<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow.templates" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fpgadataflow"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.transformation.fpgadataflow" title="Permalink to this headline">¶</a></h2> </div> </div> diff --git a/docs/finn/_build/html/src.finn.transformation.html b/docs/finn/_build/html/src.finn.transformation.html index 6e79f620ae972045de5da8d35020de44e88bc4e1..c59cf567071a1025e60a72b2c23beeea1c3c4373 100644 --- a/docs/finn/_build/html/src.finn.transformation.html +++ b/docs/finn/_build/html/src.finn.transformation.html @@ -38,32 +38,32 @@ <ul> <li class="toctree-l1"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html">src.finn.transformation.fpgadataflow package</a><ul> <li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-cleanup-module">src.finn.transformation.fpgadataflow.cleanup module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-ipgen-module">src.finn.transformation.fpgadataflow.codegen_ipgen module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-ipstitch-module">src.finn.transformation.fpgadataflow.codegen_ipstitch module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-npysim-module">src.finn.transformation.fpgadataflow.codegen_npysim module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-compile-module">src.finn.transformation.fpgadataflow.compile module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-convert-to-hls-layers-module">src.finn.transformation.fpgadataflow.convert_to_hls_layers module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-create-dataflow-partition-module">src.finn.transformation.fpgadataflow.create_dataflow_partition module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-hlssynth-ipgen-module">src.finn.transformation.fpgadataflow.hlssynth_ipgen module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-insert-tlastmarker-module">src.finn.transformation.fpgadataflow.insert_tlastmarker module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-deployment-module">src.finn.transformation.fpgadataflow.make_deployment module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-pynq-driver-module">src.finn.transformation.fpgadataflow.make_pynq_driver module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-pynq-proj-module">src.finn.transformation.fpgadataflow.make_pynq_proj module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-set-sim-mode-module">src.finn.transformation.fpgadataflow.set_sim_mode module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-synth-pynq-proj-module">src.finn.transformation.fpgadataflow.synth_pynq_proj module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-templates-module">src.finn.transformation.fpgadataflow.templates module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.cleanup">src.finn.transformation.fpgadataflow.cleanup module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipgen">src.finn.transformation.fpgadataflow.codegen_ipgen module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipstitch">src.finn.transformation.fpgadataflow.codegen_ipstitch module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_npysim">src.finn.transformation.fpgadataflow.codegen_npysim module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.compile">src.finn.transformation.fpgadataflow.compile module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.convert_to_hls_layers">src.finn.transformation.fpgadataflow.convert_to_hls_layers module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.create_dataflow_partition">src.finn.transformation.fpgadataflow.create_dataflow_partition module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.hlssynth_ipgen">src.finn.transformation.fpgadataflow.hlssynth_ipgen module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.insert_tlastmarker">src.finn.transformation.fpgadataflow.insert_tlastmarker module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_deployment">src.finn.transformation.fpgadataflow.make_deployment module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_driver">src.finn.transformation.fpgadataflow.make_pynq_driver module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_proj">src.finn.transformation.fpgadataflow.make_pynq_proj module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.set_sim_mode">src.finn.transformation.fpgadataflow.set_sim_mode module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.synth_pynq_proj">src.finn.transformation.fpgadataflow.synth_pynq_proj module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.templates">src.finn.transformation.fpgadataflow.templates module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="src.finn.transformation.streamline.html">src.finn.transformation.streamline package</a><ul> <li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-absorb-module">src.finn.transformation.streamline.absorb module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-collapse-repeated-module">src.finn.transformation.streamline.collapse_repeated module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-reorder-module">src.finn.transformation.streamline.reorder module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-round-thresholds-module">src.finn.transformation.streamline.round_thresholds module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-sign-to-thres-module">src.finn.transformation.streamline.sign_to_thres module</a></li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.absorb">src.finn.transformation.streamline.absorb module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.collapse_repeated">src.finn.transformation.streamline.collapse_repeated module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.reorder">src.finn.transformation.streamline.reorder module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.round_thresholds">src.finn.transformation.streamline.round_thresholds module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.sign_to_thres">src.finn.transformation.streamline.sign_to_thres module</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline">Module contents</a></li> </ul> </li> </ul> @@ -72,26 +72,169 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-transformation-batchnorm-to-affine-module"> -<h2>src.finn.transformation.batchnorm_to_affine module<a class="headerlink" href="#src-finn-transformation-batchnorm-to-affine-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.batchnorm_to_affine"> +<span id="src-finn-transformation-batchnorm-to-affine-module"></span><h2>src.finn.transformation.batchnorm_to_affine module<a class="headerlink" href="#module-src.finn.transformation.batchnorm_to_affine" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.batchnorm_to_affine.BatchNormToAffine"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.batchnorm_to_affine.</code><code class="sig-name descname">BatchNormToAffine</code><a class="headerlink" href="#src.finn.transformation.batchnorm_to_affine.BatchNormToAffine" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Replaces any test-time BatchNorm layers with Mul-Add layers.</p> +<dl class="method"> +<dt id="src.finn.transformation.batchnorm_to_affine.BatchNormToAffine.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.batchnorm_to_affine.BatchNormToAffine.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-bipolar-to-xnor-module"> -<h2>src.finn.transformation.bipolar_to_xnor module<a class="headerlink" href="#src-finn-transformation-bipolar-to-xnor-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.bipolar_to_xnor"> +<span id="src-finn-transformation-bipolar-to-xnor-module"></span><h2>src.finn.transformation.bipolar_to_xnor module<a class="headerlink" href="#module-src.finn.transformation.bipolar_to_xnor" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.bipolar_to_xnor.ConvertBipolarMatMulToXnorPopcount"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.bipolar_to_xnor.</code><code class="sig-name descname">ConvertBipolarMatMulToXnorPopcount</code><a class="headerlink" href="#src.finn.transformation.bipolar_to_xnor.ConvertBipolarMatMulToXnorPopcount" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Convert MatMul nodes with all-bipolar inputs to XnorPopcountMatMul +and associated result correction.</p> +<dl class="method"> +<dt id="src.finn.transformation.bipolar_to_xnor.ConvertBipolarMatMulToXnorPopcount.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.bipolar_to_xnor.ConvertBipolarMatMulToXnorPopcount.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-fold-constants-module"> -<h2>src.finn.transformation.fold_constants module<a class="headerlink" href="#src-finn-transformation-fold-constants-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.fold_constants"> +<span id="src-finn-transformation-fold-constants-module"></span><h2>src.finn.transformation.fold_constants module<a class="headerlink" href="#module-src.finn.transformation.fold_constants" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.fold_constants.FoldConstants"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.fold_constants.</code><code class="sig-name descname">FoldConstants</code><a class="headerlink" href="#src.finn.transformation.fold_constants.FoldConstants" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Replace the output of a node with const-only inputs with a precomputed +result.</p> +<dl class="method"> +<dt id="src.finn.transformation.fold_constants.FoldConstants.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.fold_constants.FoldConstants.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-src.finn.transformation.general"> +<span id="src-finn-transformation-general-module"></span><h2>src.finn.transformation.general module<a class="headerlink" href="#module-src.finn.transformation.general" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.general.ConvertSubToAdd"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.general.</code><code class="sig-name descname">ConvertSubToAdd</code><a class="headerlink" href="#src.finn.transformation.general.ConvertSubToAdd" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Convert sub nodes to add nodes of appropriate sign.</p> +<dl class="method"> +<dt id="src.finn.transformation.general.ConvertSubToAdd.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.general.ConvertSubToAdd.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.general.GiveRandomTensorNames"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.general.</code><code class="sig-name descname">GiveRandomTensorNames</code><a class="headerlink" href="#src.finn.transformation.general.GiveRandomTensorNames" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Give random tensor names to all tensors.</p> +<dl class="method"> +<dt id="src.finn.transformation.general.GiveRandomTensorNames.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.general.GiveRandomTensorNames.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.general.GiveReadableTensorNames"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.general.</code><code class="sig-name descname">GiveReadableTensorNames</code><a class="headerlink" href="#src.finn.transformation.general.GiveReadableTensorNames" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Give more human-readable names to all internal tensors. It’s recommended +to apply give_unique_node_names prior to this transform.</p> +<dl class="method"> +<dt id="src.finn.transformation.general.GiveReadableTensorNames.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.general.GiveReadableTensorNames.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.general.GiveUniqueNodeNames"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.general.</code><code class="sig-name descname">GiveUniqueNodeNames</code><a class="headerlink" href="#src.finn.transformation.general.GiveUniqueNodeNames" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Give unique names to each node in the graph using enumeration.</p> +<dl class="method"> +<dt id="src.finn.transformation.general.GiveUniqueNodeNames.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.general.GiveUniqueNodeNames.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-general-module"> -<h2>src.finn.transformation.general module<a class="headerlink" href="#src-finn-transformation-general-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.infer_datatypes"> +<span id="src-finn-transformation-infer-datatypes-module"></span><h2>src.finn.transformation.infer_datatypes module<a class="headerlink" href="#module-src.finn.transformation.infer_datatypes" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.infer_datatypes.InferDataTypes"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.infer_datatypes.</code><code class="sig-name descname">InferDataTypes</code><a class="headerlink" href="#src.finn.transformation.infer_datatypes.InferDataTypes" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Infer FINN DataType info for all intermediate/output tensors based on +inputs and node type.</p> +<dl class="method"> +<dt id="src.finn.transformation.infer_datatypes.InferDataTypes.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.infer_datatypes.InferDataTypes.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-infer-datatypes-module"> -<h2>src.finn.transformation.infer_datatypes module<a class="headerlink" href="#src-finn-transformation-infer-datatypes-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.infer_shapes"> +<span id="src-finn-transformation-infer-shapes-module"></span><h2>src.finn.transformation.infer_shapes module<a class="headerlink" href="#module-src.finn.transformation.infer_shapes" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.infer_shapes.InferShapes"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.infer_shapes.</code><code class="sig-name descname">InferShapes</code><a class="headerlink" href="#src.finn.transformation.infer_shapes.InferShapes" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Ensure every tensor in the model has a specified shape (ValueInfo).</p> +<dl class="method"> +<dt id="src.finn.transformation.infer_shapes.InferShapes.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.infer_shapes.InferShapes.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-infer-shapes-module"> -<h2>src.finn.transformation.infer_shapes module<a class="headerlink" href="#src-finn-transformation-infer-shapes-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.transformation" title="Permalink to this headline">¶</a></h2> +<div class="section" id="guide-to-writing-finn-transformations"> +<h3>Guide to writing FINN transformations<a class="headerlink" href="#guide-to-writing-finn-transformations" title="Permalink to this headline">¶</a></h3> +<ul class="simple"> +<li><p>Your transformation must inherit the Transformation abstract base class.</p></li> +<li><p>Your transformation’s apply function should take in a ModelWrapper, and return +a tuple with (transformed_model: ModelWrapper, model_was_changed: Bool)</p></li> +<li><p>The transformations are meant to be applied using the .transform function +in ModelWrapper. This makes a deep copy of the input model by default, so +you don’t have to.</p></li> +<li><p>model_was_changed indicates whether your transformation made any changes to +the model. If you know your transformation needs to be called only once and +repeated calls have no further effect, you can return False even if the model +was changed.</p></li> +<li><p>You MUST return model_was_changed=False at some point when your transformation +is called multiple times, otherwise apply_repeated() will loop infinitely.</p></li> +<li><p>If you cannot guarantee that the transformation will reach a fixed point, +you must declare this, return model_was_changed = False and let the user +manually re-apply the transform.</p></li> +</ul> +<dl class="class"> +<dt id="src.finn.transformation.Transformation"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.</code><code class="sig-name descname">Transformation</code><a class="headerlink" href="#src.finn.transformation.Transformation" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">abc.ABC</span></code></p> +<dl class="method"> +<dt id="src.finn.transformation.Transformation.apply"> +<em class="property">abstract </em><code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.Transformation.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> diff --git a/docs/finn/_build/html/src.finn.transformation.streamline.html b/docs/finn/_build/html/src.finn.transformation.streamline.html index 8a68cad55d9af5e8b529acf5a219f8341bd11536..c10e10cf9058bd09f390d2a8aae0b5af5d802f0e 100644 --- a/docs/finn/_build/html/src.finn.transformation.streamline.html +++ b/docs/finn/_build/html/src.finn.transformation.streamline.html @@ -35,23 +35,179 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-transformation-streamline-absorb-module"> -<h2>src.finn.transformation.streamline.absorb module<a class="headerlink" href="#src-finn-transformation-streamline-absorb-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.streamline.absorb"> +<span id="src-finn-transformation-streamline-absorb-module"></span><h2>src.finn.transformation.streamline.absorb module<a class="headerlink" href="#module-src.finn.transformation.streamline.absorb" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.streamline.absorb.Absorb1BitMulIntoMatMul"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.absorb.</code><code class="sig-name descname">Absorb1BitMulIntoMatMul</code><a class="headerlink" href="#src.finn.transformation.streamline.absorb.Absorb1BitMulIntoMatMul" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Absorb bipolar or binary multiplications into the preciding matrix +multiply.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.absorb.Absorb1BitMulIntoMatMul.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.absorb.Absorb1BitMulIntoMatMul.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.streamline.absorb.AbsorbAddIntoMultiThreshold"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.absorb.</code><code class="sig-name descname">AbsorbAddIntoMultiThreshold</code><a class="headerlink" href="#src.finn.transformation.streamline.absorb.AbsorbAddIntoMultiThreshold" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Absorb preceding Add ops into MultiThreshold by updating the threshold +values. Only scalar/1D add vectors can be absorbed.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.absorb.AbsorbAddIntoMultiThreshold.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.absorb.AbsorbAddIntoMultiThreshold.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.streamline.absorb.AbsorbMulIntoMultiThreshold"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.absorb.</code><code class="sig-name descname">AbsorbMulIntoMultiThreshold</code><a class="headerlink" href="#src.finn.transformation.streamline.absorb.AbsorbMulIntoMultiThreshold" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Absorb preceding Mul ops into MultiThreshold by updating the threshold +values. Only <em>positive</em> scalar/1D mul vectors can be absorbed.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.absorb.AbsorbMulIntoMultiThreshold.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.absorb.AbsorbMulIntoMultiThreshold.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.streamline.absorb.FactorOutMulSignMagnitude"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.absorb.</code><code class="sig-name descname">FactorOutMulSignMagnitude</code><a class="headerlink" href="#src.finn.transformation.streamline.absorb.FactorOutMulSignMagnitude" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Split multiply-by-constant nodes into two multiply-by-constant nodes, +where the first node is a bipolar vector (of signs) and the second is a +vector of magnitudes.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.absorb.FactorOutMulSignMagnitude.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.absorb.FactorOutMulSignMagnitude.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-streamline-collapse-repeated-module"> -<h2>src.finn.transformation.streamline.collapse_repeated module<a class="headerlink" href="#src-finn-transformation-streamline-collapse-repeated-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.streamline.collapse_repeated"> +<span id="src-finn-transformation-streamline-collapse-repeated-module"></span><h2>src.finn.transformation.streamline.collapse_repeated module<a class="headerlink" href="#module-src.finn.transformation.streamline.collapse_repeated" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedAdd"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.collapse_repeated.</code><code class="sig-name descname">CollapseRepeatedAdd</code><a class="headerlink" href="#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedAdd" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp" title="src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp"><code class="xref py py-class docutils literal notranslate"><span class="pre">src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp</span></code></a></p> +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedMul"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.collapse_repeated.</code><code class="sig-name descname">CollapseRepeatedMul</code><a class="headerlink" href="#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedMul" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp" title="src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp"><code class="xref py py-class docutils literal notranslate"><span class="pre">src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp</span></code></a></p> +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.collapse_repeated.</code><code class="sig-name descname">CollapseRepeatedOp</code><span class="sig-paren">(</span><em class="sig-param">op_name</em>, <em class="sig-param">make_collapsed_param_fxn</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Collapse repeated consecutive operations with constant parameters into +a single operation. make_collapsed_param_fxn must take two tensors and +return a tensor which gives the equivalent result using a single op.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.collapse_repeated.CollapseRepeatedOp.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-streamline-reorder-module"> -<h2>src.finn.transformation.streamline.reorder module<a class="headerlink" href="#src-finn-transformation-streamline-reorder-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.streamline.reorder"> +<span id="src-finn-transformation-streamline-reorder-module"></span><h2>src.finn.transformation.streamline.reorder module<a class="headerlink" href="#module-src.finn.transformation.streamline.reorder" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.streamline.reorder.MoveAddPastMul"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.reorder.</code><code class="sig-name descname">MoveAddPastMul</code><a class="headerlink" href="#src.finn.transformation.streamline.reorder.MoveAddPastMul" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Move add operations past multiply operations. The aim is to have them +next to each other such that they can be collapsed into a single add.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.reorder.MoveAddPastMul.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.reorder.MoveAddPastMul.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.streamline.reorder.MoveScalarAddPastMatMul"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.reorder.</code><code class="sig-name descname">MoveScalarAddPastMatMul</code><a class="headerlink" href="#src.finn.transformation.streamline.reorder.MoveScalarAddPastMatMul" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Move scalar add operations past matmul operations. We want to have adds +next to each other such that they can be collapsed into a single add.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.reorder.MoveScalarAddPastMatMul.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.reorder.MoveScalarAddPastMatMul.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="src.finn.transformation.streamline.reorder.MoveScalarMulPastMatMul"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.reorder.</code><code class="sig-name descname">MoveScalarMulPastMatMul</code><a class="headerlink" href="#src.finn.transformation.streamline.reorder.MoveScalarMulPastMatMul" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Move scalar mul operations past matmul operations. We want to have muls +next to each other such that they can be collapsed into a single mul.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.reorder.MoveScalarMulPastMatMul.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.reorder.MoveScalarMulPastMatMul.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-streamline-round-thresholds-module"> -<h2>src.finn.transformation.streamline.round_thresholds module<a class="headerlink" href="#src-finn-transformation-streamline-round-thresholds-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.streamline.round_thresholds"> +<span id="src-finn-transformation-streamline-round-thresholds-module"></span><h2>src.finn.transformation.streamline.round_thresholds module<a class="headerlink" href="#module-src.finn.transformation.streamline.round_thresholds" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.streamline.round_thresholds.RoundAndClipThresholds"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.round_thresholds.</code><code class="sig-name descname">RoundAndClipThresholds</code><a class="headerlink" href="#src.finn.transformation.streamline.round_thresholds.RoundAndClipThresholds" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>For MultiThreshold nodes operating on integer inputs, round up +thresholds values to the nearest integer. Additionally, if the input +is unsigned, sets negative thresholds to zero.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.round_thresholds.RoundAndClipThresholds.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.round_thresholds.RoundAndClipThresholds.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="src-finn-transformation-streamline-sign-to-thres-module"> -<h2>src.finn.transformation.streamline.sign_to_thres module<a class="headerlink" href="#src-finn-transformation-streamline-sign-to-thres-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.streamline.sign_to_thres"> +<span id="src-finn-transformation-streamline-sign-to-thres-module"></span><h2>src.finn.transformation.streamline.sign_to_thres module<a class="headerlink" href="#module-src.finn.transformation.streamline.sign_to_thres" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.streamline.sign_to_thres.ConvertSignToThres"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.sign_to_thres.</code><code class="sig-name descname">ConvertSignToThres</code><a class="headerlink" href="#src.finn.transformation.streamline.sign_to_thres.ConvertSignToThres" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Convert Sign node instances to MultiThreshold with threshold at 0.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.sign_to_thres.ConvertSignToThres.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.sign_to_thres.ConvertSignToThres.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.transformation.streamline"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.transformation.streamline" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.transformation.streamline.Streamline"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.transformation.streamline.</code><code class="sig-name descname">Streamline</code><a class="headerlink" href="#src.finn.transformation.streamline.Streamline" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">finn.transformation.Transformation</span></code></p> +<p>Apply the streamlining transform, see arXiv:1709.04060.</p> +<dl class="method"> +<dt id="src.finn.transformation.streamline.Streamline.apply"> +<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.transformation.streamline.Streamline.apply" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + </div> </div> diff --git a/docs/finn/_build/html/src.finn.util.html b/docs/finn/_build/html/src.finn.util.html index ba23c0888dce05591a2256b78f09460d8da18eeb..1bb5f9360753bb5ccf5cfa94614b0f8bf4bce976 100644 --- a/docs/finn/_build/html/src.finn.util.html +++ b/docs/finn/_build/html/src.finn.util.html @@ -35,23 +35,270 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="src-finn-util-basic-module"> -<h2>src.finn.util.basic module<a class="headerlink" href="#src-finn-util-basic-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.util.basic"> +<span id="src-finn-util-basic-module"></span><h2>src.finn.util.basic module<a class="headerlink" href="#module-src.finn.util.basic" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.util.basic.CppBuilder"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">CppBuilder</code><a class="headerlink" href="#src.finn.util.basic.CppBuilder" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> +<dl class="method"> +<dt id="src.finn.util.basic.CppBuilder.append_includes"> +<code class="sig-name descname">append_includes</code><span class="sig-paren">(</span><em class="sig-param">library_path</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.CppBuilder.append_includes" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.util.basic.CppBuilder.append_sources"> +<code class="sig-name descname">append_sources</code><span class="sig-paren">(</span><em class="sig-param">cpp_file</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.CppBuilder.append_sources" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.util.basic.CppBuilder.build"> +<code class="sig-name descname">build</code><span class="sig-paren">(</span><em class="sig-param">code_gen_dir</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.CppBuilder.build" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.util.basic.CppBuilder.set_executable_path"> +<code class="sig-name descname">set_executable_path</code><span class="sig-paren">(</span><em class="sig-param">path</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.CppBuilder.set_executable_path" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.calculate_signed_dot_prod_range"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">calculate_signed_dot_prod_range</code><span class="sig-paren">(</span><em class="sig-param">dt_a</em>, <em class="sig-param">dt_b</em>, <em class="sig-param">len</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.calculate_signed_dot_prod_range" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns the (min,max) values a dot product between two signed vectors of +types dt_a and dt_b of len elements can take.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.gen_finn_dt_tensor"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">gen_finn_dt_tensor</code><span class="sig-paren">(</span><em class="sig-param">finn_dt</em>, <em class="sig-param">tensor_shape</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.gen_finn_dt_tensor" title="Permalink to this definition">¶</a></dt> +<dd><p>Generates random tensor in given shape and with given FINN DataType</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.get_by_name"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">get_by_name</code><span class="sig-paren">(</span><em class="sig-param">container</em>, <em class="sig-param">name</em>, <em class="sig-param">name_field='name'</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.get_by_name" title="Permalink to this definition">¶</a></dt> +<dd><p>Return item from container by .name field if it exists, None otherwise</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.get_finn_root"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">get_finn_root</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.get_finn_root" title="Permalink to this definition">¶</a></dt> +<dd><p>Return the root directory that FINN is cloned into.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.interleave_matrix_outer_dim_from_partitions"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">interleave_matrix_outer_dim_from_partitions</code><span class="sig-paren">(</span><em class="sig-param">matrix</em>, <em class="sig-param">n_partitions</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.interleave_matrix_outer_dim_from_partitions" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.make_build_dir"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">make_build_dir</code><span class="sig-paren">(</span><em class="sig-param">prefix=''</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.make_build_dir" title="Permalink to this definition">¶</a></dt> +<dd><p>Creates a temporary folder with given prefix to be used as a build dir. +Use this function instead of tempfile.mkdtemp to ensure any generated files +will survive on the host after the FINN Docker container exits.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.pad_tensor_to_multiple_of"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">pad_tensor_to_multiple_of</code><span class="sig-paren">(</span><em class="sig-param">ndarray</em>, <em class="sig-param">pad_to_dims</em>, <em class="sig-param">val=0</em>, <em class="sig-param">distr_pad=False</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.pad_tensor_to_multiple_of" title="Permalink to this definition">¶</a></dt> +<dd><p>Pad each dimension of given NumPy ndarray using val, so that each +dimension is a multiple of the respective value in pad_to_dims. -1 means +do not pad that particular dimension. If distr_pad is False, all padding +will be inserted after the existing values; otherwise it will be split +evenly between before and after the existing values, with one extra value +inserted after if the padding amount is not divisible by two.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.random_string"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">random_string</code><span class="sig-paren">(</span><em class="sig-param">stringLength=6</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.random_string" title="Permalink to this definition">¶</a></dt> +<dd><p>Randomly generate a string of letters and digits.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.remove_by_name"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">remove_by_name</code><span class="sig-paren">(</span><em class="sig-param">container</em>, <em class="sig-param">name</em>, <em class="sig-param">name_field='name'</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.remove_by_name" title="Permalink to this definition">¶</a></dt> +<dd><p>Remove item from container by .name field if it exists</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.basic.roundup_to_integer_multiple"> +<code class="sig-prename descclassname">src.finn.util.basic.</code><code class="sig-name descname">roundup_to_integer_multiple</code><span class="sig-paren">(</span><em class="sig-param">x</em>, <em class="sig-param">factor</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.basic.roundup_to_integer_multiple" title="Permalink to this definition">¶</a></dt> +<dd><p>Round up integer x to the nearest integer multiple of integer factor. +Returns x if factor is set to -1. Both x and factor must otherwise be +positive.</p> +</dd></dl> + </div> -<div class="section" id="src-finn-util-data-packing-module"> -<h2>src.finn.util.data_packing module<a class="headerlink" href="#src-finn-util-data-packing-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.util.data_packing"> +<span id="src-finn-util-data-packing-module"></span><h2>src.finn.util.data_packing module<a class="headerlink" href="#module-src.finn.util.data_packing" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.util.data_packing.array2hexstring"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">array2hexstring</code><span class="sig-paren">(</span><em class="sig-param">array</em>, <em class="sig-param">dtype</em>, <em class="sig-param">pad_to_nbits</em>, <em class="sig-param">prefix='0x'</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.array2hexstring" title="Permalink to this definition">¶</a></dt> +<dd><p>Pack given one-dimensional NumPy array with FINN DataType dtype into a hex +string. +Any BIPOLAR values will be converted to a single bit with a 0 representing +-1. +pad_to_nbits is used to prepend leading zeros to ensure packed strings of +fixed width. The minimum value for pad_to_nbits is 4, since a single hex +digit is four bits.</p> +<p>Examples: +array2hexstring([1, 1, 1, 0], DataType.BINARY, 4) = “e†+array2hexstring([1, 1, 1, 0], DataType.BINARY, 8) = “0eâ€</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.finnpy_to_packed_bytearray"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">finnpy_to_packed_bytearray</code><span class="sig-paren">(</span><em class="sig-param">ndarray</em>, <em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.finnpy_to_packed_bytearray" title="Permalink to this definition">¶</a></dt> +<dd><p>Given a numpy ndarray with FINN DataType dtype, pack the innermost +dimension and return the packed representation as an ndarray of uint8. +The packed innermost dimension will be padded to the nearest multiple +of 8 bits. The returned ndarray has the same number of dimensions as the +input.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.hexstring2npbytearray"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">hexstring2npbytearray</code><span class="sig-paren">(</span><em class="sig-param">hexstring</em>, <em class="sig-param">remove_prefix='0x'</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.hexstring2npbytearray" title="Permalink to this definition">¶</a></dt> +<dd><p>Convert a hex string into a NumPy array of dtype uint8. Examples:</p> +<p>hexstring2npbytearray(“0f01â€) = array([15, 1], dtype=uint8)</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.npbytearray2hexstring"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">npbytearray2hexstring</code><span class="sig-paren">(</span><em class="sig-param">npbytearray</em>, <em class="sig-param">prefix='0x'</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.npbytearray2hexstring" title="Permalink to this definition">¶</a></dt> +<dd><p>Convert a NumPy array of uint8 dtype into a hex string. Examples:</p> +<p>npbytearray2hexstring(array([15, 1], dtype=uint8)) = “0x0f01â€</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.npy_to_rtlsim_input"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">npy_to_rtlsim_input</code><span class="sig-paren">(</span><em class="sig-param">input_file</em>, <em class="sig-param">input_dtype</em>, <em class="sig-param">pad_to_nbits</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.npy_to_rtlsim_input" title="Permalink to this definition">¶</a></dt> +<dd><p>Convert the multidimensional NumPy array of integers (stored as floats) +from input_file into a flattened sequence of Python arbitrary-precision +integers, packing the innermost dimension. See +finn.util.basic.pack_innermost_dim_as_hex_string() for more info on how the +packing works.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.numpy_to_hls_code"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">numpy_to_hls_code</code><span class="sig-paren">(</span><em class="sig-param">ndarray</em>, <em class="sig-param">dtype</em>, <em class="sig-param">hls_var_name</em>, <em class="sig-param">pack_innermost_dim=True</em>, <em class="sig-param">no_decl=False</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.numpy_to_hls_code" title="Permalink to this definition">¶</a></dt> +<dd><p>Return C++ code representation of a numpy ndarray with FINN DataType +dtype, using hls_var_name as the resulting C++ variable name. If +pack_innermost_dim is specified, the innermost dimension of the ndarray +will be packed into a hex string using array2hexstring. If no_decl is +set to True, no variable name and type will be generated as part of the +emitted string.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.pack_innermost_dim_as_hex_string"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">pack_innermost_dim_as_hex_string</code><span class="sig-paren">(</span><em class="sig-param">ndarray</em>, <em class="sig-param">dtype</em>, <em class="sig-param">pad_to_nbits</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.pack_innermost_dim_as_hex_string" title="Permalink to this definition">¶</a></dt> +<dd><p>Pack the innermost dimension of the given numpy ndarray into hex +strings using array2hexstring. Examples:</p> +<p>A = [[1, 1, 1, 0], [0, 1, 1, 0]] +eA = [“0eâ€, “06â€] +pack_innermost_dim_as_hex_string(A, DataType.BINARY, 8) == eA +B = [[[3, 3], [3, 3]], [[1, 3], [3, 1]]] +eB = [[ “0fâ€, “0fâ€], [“07â€, “0dâ€]] +pack_innermost_dim_as_hex_string(B, DataType.UINT2, 8) == eB</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.packed_bytearray_to_finnpy"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">packed_bytearray_to_finnpy</code><span class="sig-paren">(</span><em class="sig-param">packed_bytearray</em>, <em class="sig-param">dtype</em>, <em class="sig-param">output_shape=None</em>, <em class="sig-param">reverse_inner=False</em>, <em class="sig-param">reverse_endian=False</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.packed_bytearray_to_finnpy" title="Permalink to this definition">¶</a></dt> +<dd><p>Given a packed numpy uint8 ndarray, unpack it into a FINN array of +given DataType. output_shape can be specified to remove padding from the +packed dimension, or set to None to be inferred from the input.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.rtlsim_output_to_npy"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">rtlsim_output_to_npy</code><span class="sig-paren">(</span><em class="sig-param">output</em>, <em class="sig-param">path</em>, <em class="sig-param">dtype</em>, <em class="sig-param">shape</em>, <em class="sig-param">packedBits</em>, <em class="sig-param">targetBits</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.rtlsim_output_to_npy" title="Permalink to this definition">¶</a></dt> +<dd><p>Convert a flattened sequence of Python arbitrary-precision integers +output into a NumPy array, saved as npy file at path. Each arbitrary-precision +integer is assumed to be a packed array of targetBits-bit elements, which +will be unpacked as the innermost dimension of the NumPy array.</p> +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.data_packing.unpack_innermost_dim_from_hex_string"> +<code class="sig-prename descclassname">src.finn.util.data_packing.</code><code class="sig-name descname">unpack_innermost_dim_from_hex_string</code><span class="sig-paren">(</span><em class="sig-param">ndarray</em>, <em class="sig-param">dtype</em>, <em class="sig-param">out_shape</em>, <em class="sig-param">reverse_inner=False</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.data_packing.unpack_innermost_dim_from_hex_string" title="Permalink to this definition">¶</a></dt> +<dd><p>Convert a NumPy array of hex strings into a FINN NumPy array by unpacking +the hex strings into the specified data type. out_shape can be specified +such that any padding in the packing dimension is removed. If reverse_inner +is set, the innermost unpacked dimension will be reversed.</p> +</dd></dl> + </div> -<div class="section" id="src-finn-util-fpgadataflow-module"> -<h2>src.finn.util.fpgadataflow module<a class="headerlink" href="#src-finn-util-fpgadataflow-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.util.fpgadataflow"> +<span id="src-finn-util-fpgadataflow-module"></span><h2>src.finn.util.fpgadataflow module<a class="headerlink" href="#module-src.finn.util.fpgadataflow" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="src.finn.util.fpgadataflow.IPGenBuilder"> +<em class="property">class </em><code class="sig-prename descclassname">src.finn.util.fpgadataflow.</code><code class="sig-name descname">IPGenBuilder</code><a class="headerlink" href="#src.finn.util.fpgadataflow.IPGenBuilder" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> +<dl class="method"> +<dt id="src.finn.util.fpgadataflow.IPGenBuilder.append_tcl"> +<code class="sig-name descname">append_tcl</code><span class="sig-paren">(</span><em class="sig-param">tcl_script</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.fpgadataflow.IPGenBuilder.append_tcl" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.util.fpgadataflow.IPGenBuilder.build"> +<code class="sig-name descname">build</code><span class="sig-paren">(</span><em class="sig-param">code_gen_dir</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.fpgadataflow.IPGenBuilder.build" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="src.finn.util.fpgadataflow.IPGenBuilder.set_ipgen_path"> +<code class="sig-name descname">set_ipgen_path</code><span class="sig-paren">(</span><em class="sig-param">path</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.fpgadataflow.IPGenBuilder.set_ipgen_path" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="function"> +<dt id="src.finn.util.fpgadataflow.pyverilate_stitched_ip"> +<code class="sig-prename descclassname">src.finn.util.fpgadataflow.</code><code class="sig-name descname">pyverilate_stitched_ip</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.fpgadataflow.pyverilate_stitched_ip" title="Permalink to this definition">¶</a></dt> +<dd><p>Given a model with stitched IP, return a PyVerilator sim object.</p> +</dd></dl> + </div> -<div class="section" id="src-finn-util-onnx-module"> -<h2>src.finn.util.onnx module<a class="headerlink" href="#src-finn-util-onnx-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.util.onnx"> +<span id="src-finn-util-onnx-module"></span><h2>src.finn.util.onnx module<a class="headerlink" href="#module-src.finn.util.onnx" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.util.onnx.valueinfo_to_tensor"> +<code class="sig-prename descclassname">src.finn.util.onnx.</code><code class="sig-name descname">valueinfo_to_tensor</code><span class="sig-paren">(</span><em class="sig-param">vi</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.onnx.valueinfo_to_tensor" title="Permalink to this definition">¶</a></dt> +<dd><p>Creates an all-zeroes numpy tensor from a ValueInfoProto.</p> +</dd></dl> + </div> -<div class="section" id="src-finn-util-test-module"> -<h2>src.finn.util.test module<a class="headerlink" href="#src-finn-util-test-module" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.util.test"> +<span id="src-finn-util-test-module"></span><h2>src.finn.util.test module<a class="headerlink" href="#module-src.finn.util.test" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="src.finn.util.test.get_test_model_def_fxn"> +<code class="sig-prename descclassname">src.finn.util.test.</code><code class="sig-name descname">get_test_model_def_fxn</code><span class="sig-paren">(</span><em class="sig-param">netname</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.test.get_test_model_def_fxn" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="function"> +<dt id="src.finn.util.test.get_test_model_trained"> +<code class="sig-prename descclassname">src.finn.util.test.</code><code class="sig-name descname">get_test_model_trained</code><span class="sig-paren">(</span><em class="sig-param">netname</em>, <em class="sig-param">wbits</em>, <em class="sig-param">abits</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.test.get_test_model_trained" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="function"> +<dt id="src.finn.util.test.get_test_model_untrained"> +<code class="sig-prename descclassname">src.finn.util.test.</code><code class="sig-name descname">get_test_model_untrained</code><span class="sig-paren">(</span><em class="sig-param">netname</em>, <em class="sig-param">wbits</em>, <em class="sig-param">abits</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.test.get_test_model_untrained" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="function"> +<dt id="src.finn.util.test.get_trained_checkpoint"> +<code class="sig-prename descclassname">src.finn.util.test.</code><code class="sig-name descname">get_trained_checkpoint</code><span class="sig-paren">(</span><em class="sig-param">netname</em>, <em class="sig-param">wbits</em>, <em class="sig-param">abits</em><span class="sig-paren">)</span><a class="headerlink" href="#src.finn.util.test.get_trained_checkpoint" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src.finn.util"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.finn.util" title="Permalink to this headline">¶</a></h2> </div> </div> diff --git a/docs/finn/_build/html/src.html b/docs/finn/_build/html/src.html index 419017f78e539379c33fa121fdfb2966a2a94f8c..e27a39891794d8be74209b622c6151f168933f67 100644 --- a/docs/finn/_build/html/src.html +++ b/docs/finn/_build/html/src.html @@ -42,114 +42,120 @@ <li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.html#subpackages">Subpackages</a><ul> <li class="toctree-l5"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html">src.finn.analysis.fpgadataflow package</a><ul> <li class="toctree-l6"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#src-finn-analysis-fpgadataflow-hls-synth-res-estimation-module">src.finn.analysis.fpgadataflow.hls_synth_res_estimation module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#src-finn-analysis-fpgadataflow-res-estimation-module">src.finn.analysis.fpgadataflow.res_estimation module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.hls_synth_res_estimation">src.finn.analysis.fpgadataflow.hls_synth_res_estimation module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow.res_estimation">src.finn.analysis.fpgadataflow.res_estimation module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.analysis.fpgadataflow.html#module-src.finn.analysis.fpgadataflow">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.html#src-finn-analysis-topology-module">src.finn.analysis.topology module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.html#src-finn-analysis-verify-custom-nodes-module">src.finn.analysis.verify_custom_nodes module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.html#module-src.finn.analysis.topology">src.finn.analysis.topology module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.html#module-src.finn.analysis.verify_custom_nodes">src.finn.analysis.verify_custom_nodes module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.analysis.html#module-src.finn.analysis">Module contents</a><ul> +<li class="toctree-l5"><a class="reference internal" href="src.finn.analysis.html#how-to-write-an-analysis-pass-for-finn">How to write an analysis pass for FINN</a></li> +</ul> +</li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="src.finn.core.html">src.finn.core package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#src-finn-core-datatype-module">src.finn.core.datatype module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#src-finn-core-execute-custom-node-module">src.finn.core.execute_custom_node module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#src-finn-core-modelwrapper-module">src.finn.core.modelwrapper module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#src-finn-core-onnx-exec-module">src.finn.core.onnx_exec module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#module-src.finn.core.datatype">src.finn.core.datatype module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#module-src.finn.core.execute_custom_node">src.finn.core.execute_custom_node module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#module-src.finn.core.modelwrapper">src.finn.core.modelwrapper module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#module-src.finn.core.onnx_exec">src.finn.core.onnx_exec module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.core.html#module-src.finn.core">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="src.finn.custom_op.html">src.finn.custom_op package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#subpackages">Subpackages</a><ul> <li class="toctree-l5"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html">src.finn.custom_op.fpgadataflow package</a><ul> <li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-convolutioninputgenerator-module">src.finn.custom_op.fpgadataflow.convolutioninputgenerator module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-streamingfclayer-batch-module">src.finn.custom_op.fpgadataflow.streamingfclayer_batch module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-streamingmaxpool-batch-module">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-templates-module">src.finn.custom_op.fpgadataflow.templates module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#src-finn-custom-op-fpgadataflow-tlastmarker-module">src.finn.custom_op.fpgadataflow.tlastmarker module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.convolutioninputgenerator">src.finn.custom_op.fpgadataflow.convolutioninputgenerator module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingfclayer_batch">src.finn.custom_op.fpgadataflow.streamingfclayer_batch module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.streamingmaxpool_batch">src.finn.custom_op.fpgadataflow.streamingmaxpool_batch module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.templates">src.finn.custom_op.fpgadataflow.templates module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow.tlastmarker">src.finn.custom_op.fpgadataflow.tlastmarker module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.custom_op.fpgadataflow.html#module-src.finn.custom_op.fpgadataflow">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#src-finn-custom-op-multithreshold-module">src.finn.custom_op.multithreshold module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#src-finn-custom-op-registry-module">src.finn.custom_op.registry module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#src-finn-custom-op-streamingdataflowpartition-module">src.finn.custom_op.streamingdataflowpartition module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#src-finn-custom-op-xnorpopcount-module">src.finn.custom_op.xnorpopcount module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op.multithreshold">src.finn.custom_op.multithreshold module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op.registry">src.finn.custom_op.registry module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op.streamingdataflowpartition">src.finn.custom_op.streamingdataflowpartition module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op.xnorpopcount">src.finn.custom_op.xnorpopcount module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.custom_op.html#module-src.finn.custom_op">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="src.finn.transformation.html">src.finn.transformation package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#subpackages">Subpackages</a><ul> <li class="toctree-l5"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html">src.finn.transformation.fpgadataflow package</a><ul> <li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#submodules">Submodules</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-cleanup-module">src.finn.transformation.fpgadataflow.cleanup module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-ipgen-module">src.finn.transformation.fpgadataflow.codegen_ipgen module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-ipstitch-module">src.finn.transformation.fpgadataflow.codegen_ipstitch module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-codegen-npysim-module">src.finn.transformation.fpgadataflow.codegen_npysim module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-compile-module">src.finn.transformation.fpgadataflow.compile module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-convert-to-hls-layers-module">src.finn.transformation.fpgadataflow.convert_to_hls_layers module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-create-dataflow-partition-module">src.finn.transformation.fpgadataflow.create_dataflow_partition module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-hlssynth-ipgen-module">src.finn.transformation.fpgadataflow.hlssynth_ipgen module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-insert-tlastmarker-module">src.finn.transformation.fpgadataflow.insert_tlastmarker module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-deployment-module">src.finn.transformation.fpgadataflow.make_deployment module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-pynq-driver-module">src.finn.transformation.fpgadataflow.make_pynq_driver module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-make-pynq-proj-module">src.finn.transformation.fpgadataflow.make_pynq_proj module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-set-sim-mode-module">src.finn.transformation.fpgadataflow.set_sim_mode module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-synth-pynq-proj-module">src.finn.transformation.fpgadataflow.synth_pynq_proj module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#src-finn-transformation-fpgadataflow-templates-module">src.finn.transformation.fpgadataflow.templates module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-contents">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.cleanup">src.finn.transformation.fpgadataflow.cleanup module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipgen">src.finn.transformation.fpgadataflow.codegen_ipgen module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_ipstitch">src.finn.transformation.fpgadataflow.codegen_ipstitch module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.codegen_npysim">src.finn.transformation.fpgadataflow.codegen_npysim module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.compile">src.finn.transformation.fpgadataflow.compile module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.convert_to_hls_layers">src.finn.transformation.fpgadataflow.convert_to_hls_layers module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.create_dataflow_partition">src.finn.transformation.fpgadataflow.create_dataflow_partition module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.hlssynth_ipgen">src.finn.transformation.fpgadataflow.hlssynth_ipgen module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.insert_tlastmarker">src.finn.transformation.fpgadataflow.insert_tlastmarker module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_deployment">src.finn.transformation.fpgadataflow.make_deployment module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_driver">src.finn.transformation.fpgadataflow.make_pynq_driver module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.make_pynq_proj">src.finn.transformation.fpgadataflow.make_pynq_proj module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.set_sim_mode">src.finn.transformation.fpgadataflow.set_sim_mode module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.synth_pynq_proj">src.finn.transformation.fpgadataflow.synth_pynq_proj module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow.templates">src.finn.transformation.fpgadataflow.templates module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.fpgadataflow.html#module-src.finn.transformation.fpgadataflow">Module contents</a></li> </ul> </li> <li class="toctree-l5"><a class="reference internal" href="src.finn.transformation.streamline.html">src.finn.transformation.streamline package</a><ul> <li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#submodules">Submodules</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-absorb-module">src.finn.transformation.streamline.absorb module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-collapse-repeated-module">src.finn.transformation.streamline.collapse_repeated module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-reorder-module">src.finn.transformation.streamline.reorder module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-round-thresholds-module">src.finn.transformation.streamline.round_thresholds module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#src-finn-transformation-streamline-sign-to-thres-module">src.finn.transformation.streamline.sign_to_thres module</a></li> -<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#module-contents">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.absorb">src.finn.transformation.streamline.absorb module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.collapse_repeated">src.finn.transformation.streamline.collapse_repeated module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.reorder">src.finn.transformation.streamline.reorder module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.round_thresholds">src.finn.transformation.streamline.round_thresholds module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline.sign_to_thres">src.finn.transformation.streamline.sign_to_thres module</a></li> +<li class="toctree-l6"><a class="reference internal" href="src.finn.transformation.streamline.html#module-src.finn.transformation.streamline">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-batchnorm-to-affine-module">src.finn.transformation.batchnorm_to_affine module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-bipolar-to-xnor-module">src.finn.transformation.bipolar_to_xnor module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-fold-constants-module">src.finn.transformation.fold_constants module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-general-module">src.finn.transformation.general module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-infer-datatypes-module">src.finn.transformation.infer_datatypes module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#src-finn-transformation-infer-shapes-module">src.finn.transformation.infer_shapes module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.batchnorm_to_affine">src.finn.transformation.batchnorm_to_affine module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.bipolar_to_xnor">src.finn.transformation.bipolar_to_xnor module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.fold_constants">src.finn.transformation.fold_constants module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.general">src.finn.transformation.general module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.infer_datatypes">src.finn.transformation.infer_datatypes module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation.infer_shapes">src.finn.transformation.infer_shapes module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.transformation.html#module-src.finn.transformation">Module contents</a><ul> +<li class="toctree-l5"><a class="reference internal" href="src.finn.transformation.html#guide-to-writing-finn-transformations">Guide to writing FINN transformations</a></li> +</ul> +</li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="src.finn.util.html">src.finn.util package</a><ul> <li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#src-finn-util-basic-module">src.finn.util.basic module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#src-finn-util-data-packing-module">src.finn.util.data_packing module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#src-finn-util-fpgadataflow-module">src.finn.util.fpgadataflow module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#src-finn-util-onnx-module">src.finn.util.onnx module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#src-finn-util-test-module">src.finn.util.test module</a></li> -<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#module-contents">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.basic">src.finn.util.basic module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.data_packing">src.finn.util.data_packing module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.fpgadataflow">src.finn.util.fpgadataflow module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.onnx">src.finn.util.onnx module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#module-src.finn.util.test">src.finn.util.test module</a></li> +<li class="toctree-l4"><a class="reference internal" href="src.finn.util.html#module-src.finn.util">Module contents</a></li> </ul> </li> </ul> </li> -<li class="toctree-l2"><a class="reference internal" href="src.finn.html#module-contents">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="src.finn.html#module-src.finn">Module contents</a></li> </ul> </li> </ul> </div> </div> -<div class="section" id="module-contents"> -<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-src"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src" title="Permalink to this headline">¶</a></h2> </div> </div> diff --git a/docs/finn/conf.py b/docs/finn/conf.py index 36f13a1cb1d2d01d74432ad4d93a266a903fdde0..860f66d739249aafb1897cc337c33a51d5c5c8f2 100644 --- a/docs/finn/conf.py +++ b/docs/finn/conf.py @@ -29,6 +29,7 @@ author = 'Y. Umuroglu, J. Petri-Koenig' # ones. extensions = [ ] +extensions.append('sphinx.ext.autodoc') # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates']