diff --git a/advanced/accelerator.html b/advanced/accelerator.html index 202539633f..8f9f92552b 100644 --- a/advanced/accelerator.html +++ b/advanced/accelerator.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/advanced/extension.html b/advanced/extension.html index f012212d44..1e48ee5d88 100644 --- a/advanced/extension.html +++ b/advanced/extension.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/advanced/fifo_depth.html b/advanced/fifo_depth.html index 6e05bca351..9c45a65b4e 100644 --- a/advanced/fifo_depth.html +++ b/advanced/fifo_depth.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/api/configuration.html b/api/configuration.html index d8c59e63cc..00ce8dbd42 100644 --- a/api/configuration.html +++ b/api/configuration.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/api/hls-model.html b/api/hls-model.html index a678df0ef8..6a9979a16d 100644 --- a/api/hls-model.html +++ b/api/hls-model.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/api/profiling.html b/api/profiling.html index 91d23f2ba5..a0190ad3ad 100644 --- a/api/profiling.html +++ b/api/profiling.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.fpga.html b/autodoc/hls4ml.backends.fpga.html index 0e6d396f05..16aa28a8c9 100644 --- a/autodoc/hls4ml.backends.fpga.html +++ b/autodoc/hls4ml.backends.fpga.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.fpga.passes.html b/autodoc/hls4ml.backends.fpga.passes.html index 34c50902bc..7c1ccccfd1 100644 --- a/autodoc/hls4ml.backends.fpga.passes.html +++ b/autodoc/hls4ml.backends.fpga.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.html b/autodoc/hls4ml.backends.html index cb64a4c954..805ead7d2d 100644 --- a/autodoc/hls4ml.backends.html +++ b/autodoc/hls4ml.backends.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.quartus.html b/autodoc/hls4ml.backends.quartus.html index a60b8daf37..407c5c5ad6 100644 --- a/autodoc/hls4ml.backends.quartus.html +++ b/autodoc/hls4ml.backends.quartus.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.quartus.passes.html b/autodoc/hls4ml.backends.quartus.passes.html index 78513b4047..53de453ef8 100644 --- a/autodoc/hls4ml.backends.quartus.passes.html +++ b/autodoc/hls4ml.backends.quartus.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.symbolic.html b/autodoc/hls4ml.backends.symbolic.html index 1c3a63dc8b..ab0fb6b486 100644 --- a/autodoc/hls4ml.backends.symbolic.html +++ b/autodoc/hls4ml.backends.symbolic.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.symbolic.passes.html b/autodoc/hls4ml.backends.symbolic.passes.html index 81defe094d..9cd742fad5 100644 --- a/autodoc/hls4ml.backends.symbolic.passes.html +++ b/autodoc/hls4ml.backends.symbolic.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.vitis.html b/autodoc/hls4ml.backends.vitis.html index 29f35e6650..80663088a9 100644 --- a/autodoc/hls4ml.backends.vitis.html +++ b/autodoc/hls4ml.backends.vitis.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.vitis.passes.html b/autodoc/hls4ml.backends.vitis.passes.html index ddad8a4878..d04a22442c 100644 --- a/autodoc/hls4ml.backends.vitis.passes.html +++ b/autodoc/hls4ml.backends.vitis.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.vivado.html b/autodoc/hls4ml.backends.vivado.html index 039ef7cbcb..1a714d59ac 100644 --- a/autodoc/hls4ml.backends.vivado.html +++ b/autodoc/hls4ml.backends.vivado.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.vivado.passes.html b/autodoc/hls4ml.backends.vivado.passes.html index b01ce265f3..4ed9ede593 100644 --- a/autodoc/hls4ml.backends.vivado.passes.html +++ b/autodoc/hls4ml.backends.vivado.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.vivado_accelerator.html b/autodoc/hls4ml.backends.vivado_accelerator.html index afb438f458..73381dedcc 100644 --- a/autodoc/hls4ml.backends.vivado_accelerator.html +++ b/autodoc/hls4ml.backends.vivado_accelerator.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.backends.vivado_accelerator.passes.html b/autodoc/hls4ml.backends.vivado_accelerator.passes.html index 3e10fdfd82..bc4065a902 100644 --- a/autodoc/hls4ml.backends.vivado_accelerator.passes.html +++ b/autodoc/hls4ml.backends.vivado_accelerator.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.converters.html b/autodoc/hls4ml.converters.html index 4b7d0ad87f..879e2ff1a4 100644 --- a/autodoc/hls4ml.converters.html +++ b/autodoc/hls4ml.converters.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.converters.keras.html b/autodoc/hls4ml.converters.keras.html index fd4b02a620..652f27cf0b 100644 --- a/autodoc/hls4ml.converters.keras.html +++ b/autodoc/hls4ml.converters.keras.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.converters.onnx.html b/autodoc/hls4ml.converters.onnx.html index 08f44a4e66..17f79a33a1 100644 --- a/autodoc/hls4ml.converters.onnx.html +++ b/autodoc/hls4ml.converters.onnx.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.converters.pytorch.html b/autodoc/hls4ml.converters.pytorch.html index 3ad537c57d..70e140a2e7 100644 --- a/autodoc/hls4ml.converters.pytorch.html +++ b/autodoc/hls4ml.converters.pytorch.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.html b/autodoc/hls4ml.html index 408e1c89ab..64244c78c5 100644 --- a/autodoc/hls4ml.html +++ b/autodoc/hls4ml.html @@ -38,7 +38,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.model.flow.html b/autodoc/hls4ml.model.flow.html index 4f952932cd..3b531f25c9 100644 --- a/autodoc/hls4ml.model.flow.html +++ b/autodoc/hls4ml.model.flow.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.model.html b/autodoc/hls4ml.model.html index 27e674dd10..fbe9a07ad1 100644 --- a/autodoc/hls4ml.model.html +++ b/autodoc/hls4ml.model.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.model.optimizer.html b/autodoc/hls4ml.model.optimizer.html index 31c4625ef9..451a36953d 100644 --- a/autodoc/hls4ml.model.optimizer.html +++ b/autodoc/hls4ml.model.optimizer.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.model.optimizer.passes.html b/autodoc/hls4ml.model.optimizer.passes.html index 445dea2e32..5d115f3277 100644 --- a/autodoc/hls4ml.model.optimizer.passes.html +++ b/autodoc/hls4ml.model.optimizer.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.report.html b/autodoc/hls4ml.report.html index 68cdeb1177..fc0ee93aa1 100644 --- a/autodoc/hls4ml.report.html +++ b/autodoc/hls4ml.report.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.utils.html b/autodoc/hls4ml.utils.html index 1b84126565..7dc34eef51 100644 --- a/autodoc/hls4ml.utils.html +++ b/autodoc/hls4ml.utils.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/autodoc/hls4ml.writer.html b/autodoc/hls4ml.writer.html index e7b6c3a945..6fca63e11c 100644 --- a/autodoc/hls4ml.writer.html +++ b/autodoc/hls4ml.writer.html @@ -39,7 +39,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/command.html b/command.html index cbc6cde473..dd03233914 100644 --- a/command.html +++ b/command.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/concepts.html b/concepts.html index 6f20c311f8..1f5ea804fa 100644 --- a/concepts.html +++ b/concepts.html @@ -41,7 +41,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/details.html b/details.html index 9a996cec27..9ac651c9f0 100644 --- a/details.html +++ b/details.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/flows.html b/flows.html index 42d7b6e83f..8d9907fefa 100644 --- a/flows.html +++ b/flows.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/genindex.html b/genindex.html index 383d567ed8..cee9292f00 100644 --- a/genindex.html +++ b/genindex.html @@ -37,7 +37,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/index.html b/index.html index 55112a8dfa..13f31f910d 100644 --- a/index.html +++ b/index.html @@ -39,7 +39,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/objects.inv b/objects.inv index 962e02b4fa..fbcbfed890 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html index 1a5cd99d48..e82dba817a 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/reference.html b/reference.html index 2ccdaedc71..dfd0e36574 100644 --- a/reference.html +++ b/reference.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/release_notes.html b/release_notes.html index 624e623e2b..de17175864 100644 --- a/release_notes.html +++ b/release_notes.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/search.html b/search.html index ae9e656d41..ffc953d559 100644 --- a/search.html +++ b/search.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/searchindex.js b/searchindex.js index e995641bbd..00ec4c6f49 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["advanced/accelerator", "advanced/extension", "advanced/fifo_depth", "api/configuration", "api/hls-model", "api/profiling", "autodoc/hls4ml", "autodoc/hls4ml.backends", "autodoc/hls4ml.backends.fpga", "autodoc/hls4ml.backends.fpga.passes", "autodoc/hls4ml.backends.quartus", "autodoc/hls4ml.backends.quartus.passes", "autodoc/hls4ml.backends.symbolic", "autodoc/hls4ml.backends.symbolic.passes", "autodoc/hls4ml.backends.vitis", "autodoc/hls4ml.backends.vitis.passes", "autodoc/hls4ml.backends.vivado", "autodoc/hls4ml.backends.vivado.passes", "autodoc/hls4ml.backends.vivado_accelerator", "autodoc/hls4ml.backends.vivado_accelerator.passes", "autodoc/hls4ml.converters", "autodoc/hls4ml.converters.keras", "autodoc/hls4ml.converters.onnx", "autodoc/hls4ml.converters.pytorch", "autodoc/hls4ml.model", "autodoc/hls4ml.model.flow", "autodoc/hls4ml.model.optimizer", "autodoc/hls4ml.model.optimizer.passes", "autodoc/hls4ml.report", "autodoc/hls4ml.utils", "autodoc/hls4ml.writer", "command", "concepts", "details", "flows", "index", "reference", "release_notes", "setup", "status"], "filenames": ["advanced/accelerator.rst", "advanced/extension.rst", "advanced/fifo_depth.rst", "api/configuration.rst", "api/hls-model.rst", "api/profiling.rst", "autodoc/hls4ml.rst", "autodoc/hls4ml.backends.rst", "autodoc/hls4ml.backends.fpga.rst", "autodoc/hls4ml.backends.fpga.passes.rst", "autodoc/hls4ml.backends.quartus.rst", "autodoc/hls4ml.backends.quartus.passes.rst", "autodoc/hls4ml.backends.symbolic.rst", "autodoc/hls4ml.backends.symbolic.passes.rst", "autodoc/hls4ml.backends.vitis.rst", "autodoc/hls4ml.backends.vitis.passes.rst", "autodoc/hls4ml.backends.vivado.rst", "autodoc/hls4ml.backends.vivado.passes.rst", "autodoc/hls4ml.backends.vivado_accelerator.rst", "autodoc/hls4ml.backends.vivado_accelerator.passes.rst", "autodoc/hls4ml.converters.rst", "autodoc/hls4ml.converters.keras.rst", "autodoc/hls4ml.converters.onnx.rst", "autodoc/hls4ml.converters.pytorch.rst", "autodoc/hls4ml.model.rst", "autodoc/hls4ml.model.flow.rst", "autodoc/hls4ml.model.optimizer.rst", "autodoc/hls4ml.model.optimizer.passes.rst", "autodoc/hls4ml.report.rst", "autodoc/hls4ml.utils.rst", "autodoc/hls4ml.writer.rst", "command.rst", "concepts.rst", "details.rst", "flows.rst", "index.rst", "reference.rst", "release_notes.rst", "setup.rst", "status.rst"], "titles": ["VivadoAccelerator Backend", "Extension API", "FIFO Buffer Depth Optimization", "Configuration", "HLS Model Class", "Profiling", "hls4ml package", "hls4ml.backends package", "hls4ml.backends.fpga package", "hls4ml.backends.fpga.passes package", "hls4ml.backends.quartus package", "hls4ml.backends.quartus.passes package", "hls4ml.backends.symbolic package", "hls4ml.backends.symbolic.passes package", "hls4ml.backends.vitis package", "hls4ml.backends.vitis.passes package", "hls4ml.backends.vivado package", "hls4ml.backends.vivado.passes package", "hls4ml.backends.vivado_accelerator package", "hls4ml.backends.vivado_accelerator.passes package", "hls4ml.converters package", "hls4ml.converters.keras package", "hls4ml.converters.onnx package", "hls4ml.converters.pytorch package", "hls4ml.model package", "hls4ml.model.flow package", "hls4ml.model.optimizer package", "hls4ml.model.optimizer.passes package", "hls4ml.report package", "hls4ml.utils package", "hls4ml.writer package", "Command Line Interface (deprecated)", "Concepts", "Software Details", "Optimizer Passes and Flows", "Welcome to hls4ml\u2019s documentation!", "Citation, Acknowledgments, and Contributors", "Release Notes", "Setup and Quick Start", "Status and Features"], "terms": {"The": [0, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 38, 39], "hls4ml": [0, 1, 2, 3, 4, 5, 33, 34, 36, 37, 39], "leverag": 0, "pynq": [0, 18, 37], "softwar": [0, 36], "stack": [0, 18], "easili": 0, "deploi": 0, "model": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 29, 30, 31, 32, 33, 34, 35, 37, 38], "support": [0, 1, 3, 4, 20, 29, 31, 33, 36, 37, 38, 39], "devic": [0, 10, 20], "current": [0, 3, 24, 31, 33, 35, 36], "follow": [0, 20, 24, 31, 32, 36, 37, 38], "board": [0, 18, 20, 37], "z2": [0, 18, 37], "part": [0, 1, 2, 3, 7, 10, 12, 16, 18, 20, 24, 29, 32, 37], "xc7z020clg400": [0, 2], "1": [0, 1, 2, 5, 8, 10, 24, 27, 29, 32, 38, 39], "zcu102": [0, 37], "xczu9eg": 0, "ffvb1156": 0, "2": [0, 5, 10, 12, 16, 18, 20, 24, 29, 36, 38, 39], "e": [0, 3, 5, 7, 12, 16, 20, 24, 27, 31, 34, 36, 37], "alveo": [0, 18, 37], "u50": 0, "xcu50": 0, "fsvh2104": 0, "u250": 0, "xcu250": 0, "figd2104": 0, "2l": 0, "u200": 0, "xcu200": 0, "fsgd2104": 0, "u280": 0, "xcu280": 0, "fsvh2892": 0, "principl": [0, 3], "can": [0, 1, 2, 3, 4, 5, 8, 18, 20, 24, 25, 26, 29, 31, 32, 33, 34, 35, 37, 38, 39], "extend": [0, 1, 5, 7, 8, 37], "ani": [0, 1, 3, 7, 20, 26, 30, 31, 34, 36, 37, 38], "For": [0, 1, 2, 3, 9, 11, 24, 29, 31, 32, 33, 34, 35, 36, 37, 38], "zynq": 0, "base": [0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 29, 30, 34, 38], "ar": [0, 1, 3, 4, 5, 7, 8, 9, 20, 24, 26, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39], "two": [0, 1, 3, 5, 8, 20, 24, 29], "compon": [0, 1], "an": [0, 2, 3, 4, 7, 9, 18, 20, 24, 25, 26, 27, 29, 31, 32, 33, 34, 36, 37, 38], "arm": 0, "process": [0, 8, 24, 29, 32, 34], "system": [0, 24], "ps": 0, "fpga": [0, 2, 3, 5, 6, 7, 10, 20, 29, 31, 32, 34, 35, 36, 37, 38], "programm": 0, "logic": [0, 37], "pl": 0, "variou": [0, 35, 38], "intefac": 0, "between": [0, 3, 9, 17, 24, 32, 33, 37], "In": [0, 1, 2, 3, 5, 20, 33, 34, 38], "project": [0, 3, 4, 7, 8, 10, 18, 20, 24, 28, 29, 30, 31, 32, 36, 37, 38], "circuit": 0, "present": [0, 20], "hardwar": [0, 18, 32], "librari": [0, 3, 8, 20, 24, 34, 37, 38], "call": [0, 1, 5, 7, 20, 24, 25, 26, 30, 31, 32, 37], "access": [0, 37], "through": [0, 1, 2, 3, 4, 20, 33, 34, 35, 37], "python": [0, 5, 8, 18, 20, 30, 31, 35, 37, 38], "api": [0, 4, 20, 31, 37, 38], "we": [0, 1, 2, 3, 4, 8, 31, 32, 33, 35, 36, 37, 38, 39], "creat": [0, 3, 7, 10, 12, 16, 18, 20, 24, 25, 26, 29, 30, 31, 32, 34, 35, 37, 38], "custom": [0, 1, 7, 27, 29, 30, 37], "which": [0, 1, 2, 3, 5, 8, 18, 20, 24, 25, 26, 27, 29, 30, 32, 33, 34, 39], "send": [0, 33], "receiv": 0, "data": [0, 3, 5, 17, 18, 20, 24, 27, 29, 32, 33, 34, 36, 37], "via": [0, 24, 38], "axi": [0, 1, 18, 30], "stream": [0, 3, 9, 17, 18, 24, 32, 33, 37], "target": [0, 3, 7, 10, 12, 16, 18, 20, 34, 37], "program": [0, 31, 32, 36], "us": [0, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16, 17, 18, 20, 24, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38], "bitfil": [0, 18], "gener": [0, 2, 3, 4, 8, 9, 17, 18, 20, 24, 26, 29, 30, 31, 32, 33, 34, 37, 38], "thi": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 16, 20, 24, 25, 26, 27, 29, 31, 32, 33, 34, 36, 38, 39], "taken": [0, 32], "from": [0, 1, 2, 3, 4, 5, 8, 20, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39], "7": [0, 24], "tutori": [0, 38], "specif": [0, 3, 7, 8, 24, 26, 27, 29, 32, 34, 36], "ll": 0, "first": [0, 2, 5, 18, 20, 24, 32, 33, 36, 37, 38], "kera": [0, 1, 2, 3, 4, 5, 6, 20, 24, 29, 31, 32, 33, 34, 37, 38, 39], "config": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 16, 18, 20, 22, 24, 30, 37, 38], "import": [0, 2, 3, 4, 5, 32, 36, 38], "util": [0, 2, 3, 4, 6, 32, 33, 37, 38], "config_from_keras_model": [0, 2, 3, 4, 29, 37], "granular": [0, 2, 3, 4, 5, 29, 37], "name": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 16, 17, 18, 20, 24, 25, 26, 27, 29, 30, 31, 36, 37], "hls_model": [0, 2, 4, 5, 24, 37, 38], "convert": [0, 1, 2, 4, 5, 6, 8, 24, 27, 29, 32, 34, 37, 38], "convert_from_keras_model": [0, 1, 2, 4, 20, 29], "hls_config": [0, 1, 2, 4, 20, 29, 37], "output_dir": [0, 1, 2, 4, 20, 29], "hls4ml_prj_pynq": 0, "build": [0, 2, 10, 12, 14, 16, 18, 24, 30, 32, 37, 38], "true": [0, 2, 3, 10, 12, 14, 16, 18, 20, 24, 28, 29, 30], "after": [0, 3, 4, 5, 8, 9, 24, 27, 32, 34, 37, 38], "command": [0, 4, 37, 38], "complet": [0, 3], "need": [0, 1, 5, 7, 8, 20, 29, 32, 37, 38], "packag": [0, 32, 35, 37, 38, 39], "up": [0, 31, 32, 37], "handoff": 0, "driver": [0, 18], "copi": [0, 30, 37], "mkdir": 0, "p": [0, 31, 37, 38], "cp": 0, "myproject_vivado_acceler": 0, "project_1": 0, "run": [0, 3, 5, 10, 31, 32, 34, 37, 38], "impl_1": 0, "design_1_wrapp": 0, "bit": [0, 3, 5, 18, 24, 29, 32, 37], "hls4ml_nn": 0, "src": [0, 29], "sources_1": 0, "bd": 0, "design_1": 0, "hw_handoff": 0, "hwh": 0, "axi_stream_driv": [0, 37], "py": [0, 37], "tar": [0, 30], "czvf": 0, "gz": [0, 30], "c": [0, 5, 8, 18, 24, 26, 30, 31, 37, 38], "Then": [0, 2, 3], "untar": 0, "final": [0, 1, 5, 9, 24, 32, 34, 37], "neuralnetworkoverlai": 0, "object": [0, 4, 5, 7, 8, 18, 20, 24, 25, 26, 29, 30, 37], "download": [0, 29, 38], "onto": 0, "also": [0, 1, 3, 4, 24, 32, 34, 38, 39], "must": [0, 3, 7, 18, 24, 32, 34, 38], "provid": [0, 3, 5, 7, 10, 12, 16, 20, 24, 31, 32, 34, 37, 38, 39], "shape": [0, 1, 20, 24, 29, 34, 37], "our": [0, 1, 4, 32, 35, 36, 38], "input": [0, 1, 3, 4, 5, 8, 9, 17, 18, 20, 24, 27, 29, 30, 32, 33, 34, 37], "output": [0, 1, 3, 4, 5, 7, 8, 9, 17, 18, 20, 24, 27, 29, 30, 31, 32, 33, 34, 37], "x_test": 0, "y_test": 0, "respect": [0, 1, 24, 32], "alloc": [0, 37], "buffer": [0, 33, 34], "transfer": 0, "predict": [0, 1, 3, 5, 24, 32, 37], "method": [0, 3, 5, 7, 10, 12, 16, 24, 26, 27, 33], "return": [0, 1, 4, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 34, 37, 38], "y_hw": 0, "nn": [0, 33, 37, 39], "latenc": [0, 3, 28, 32, 37], "throughput": [0, 32], "profil": [0, 4, 6, 37, 38], "nativ": 1, "larg": [1, 2, 18, 32], "number": [1, 3, 8, 18, 20, 24, 29, 31, 32, 34, 36, 37, 38], "neural": [1, 2, 3, 5, 11, 32, 33, 36, 39], "network": [1, 2, 3, 5, 11, 24, 32, 33, 36, 39], "layer": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 19, 20, 26, 27, 29, 30, 32, 33, 34, 37], "But": 1, "what": [1, 3, 33, 34, 37], "desir": [1, 24, 34], "If": [1, 3, 4, 7, 8, 20, 24, 25, 26, 29, 36, 38], "standard": 1, "enough": [1, 34, 38], "its": [1, 3, 4, 20, 24, 34], "implement": [1, 2, 3, 7, 8, 10, 12, 16, 17, 20, 24, 32, 33, 34, 35, 37, 38], "would": [1, 5, 32, 35, 37], "benefit": [1, 32, 36], "commun": [1, 32, 36], "whole": [1, 29, 31], "welcom": [1, 3], "contribut": [1, 2, 33, 37], "add": [1, 2, 7, 20, 24, 25, 26, 30, 34, 37], "set": [1, 2, 3, 4, 20, 24, 26, 27, 29, 30, 32, 34, 37, 38], "howev": [1, 20, 32, 34], "somewhat": 1, "nich": 1, "anoth": [1, 24, 34], "approach": 1, "take": [1, 24, 32, 38], "document": [1, 3, 4, 20, 29, 31, 37, 38, 39], "walk": 1, "end": [1, 20, 24, 29], "test": [1, 3, 5, 20, 24, 29, 31, 37, 38, 39], "suit": [1, 32], "To": [1, 3, 5, 27, 31, 32, 34, 38], "requir": [1, 3, 9, 18, 20, 24, 25, 32, 34, 37, 38], "your": [1, 3, 4, 5, 31, 32, 35, 38], "class": [1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 29, 30, 34], "equival": [1, 24, 37], "parser": [1, 33, 37], "hl": [1, 8, 10, 18, 20, 24, 26, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39], "templat": [1, 3, 6, 11, 34, 37], "function": [1, 4, 7, 8, 20, 24, 26, 29, 30, 32, 34, 35, 37, 38], "registr": 1, "sourc": [1, 2, 7, 24, 30, 32, 35], "code": [1, 5, 24, 30, 32, 34, 38], "concret": [1, 24], "let": [1, 3, 32, 35], "s": [1, 3, 4, 7, 8, 20, 24, 29, 31, 32, 34, 36, 37], "sai": 1, "krevers": 1, "revers": 1, "order": [1, 2, 32, 33, 34, 37, 38], "last": [1, 20, 24, 38], "dimens": [1, 20, 24], "tf": [1, 27], "hypothet": 1, "def": [1, 26], "__init__": 1, "self": [1, 26, 29], "super": 1, "defin": [1, 2, 3, 13, 18, 24, 28, 30, 32, 34, 38], "hrevers": 1, "inherit": [1, 34, 37], "initi": [1, 3, 7, 8, 9, 10, 12, 16, 17, 18, 24, 26, 27, 29, 32, 37], "inp": 1, "get_input_vari": [1, 24], "dim": [1, 3, 37], "dim_nam": [1, 24], "add_output_vari": [1, 24], "A": [1, 3, 4, 20, 24, 25, 26, 27, 28, 29, 34, 37, 39], "read": [1, 4, 28], "attribut": [1, 6, 7, 8, 9, 17, 27, 34, 37], "instanc": [1, 7, 24, 26, 29, 30], "popul": [1, 18, 34], "dictionari": [1, 3, 4, 20, 24, 28, 29, 37], "It": [1, 3, 4, 5, 20, 24, 29, 34], "list": [1, 4, 7, 8, 20, 24, 25, 26, 27, 29, 34, 38, 39], "one": [1, 3, 18, 20, 24, 32, 33], "sjape": 1, "each": [1, 2, 3, 4, 5, 8, 20, 24, 27, 29, 32, 33, 34, 38], "case": [1, 3, 5, 20, 24, 32, 34, 35, 37], "singl": [1, 24, 27, 32, 33, 34], "same": [1, 20, 24], "parse_reverse_lay": 1, "keras_lay": [1, 20, 21], "input_nam": [1, 20, 21, 24], "input_shap": [1, 2, 20, 21, 22], "data_read": [1, 20, 21], "class_nam": [1, 20, 24], "n_in": [1, 3, 8, 11], "0": [1, 3, 8, 10, 20, 24, 27, 29, 36, 38, 39], "none": [1, 3, 5, 7, 8, 9, 12, 17, 18, 20, 24, 25, 26, 27, 28, 29], "next": [1, 3, 18, 24, 34, 38], "actual": [1, 5, 24], "implementaton": 1, "written": [1, 29], "header": [1, 30], "file": [1, 5, 7, 8, 20, 24, 28, 29, 30, 31, 37, 38], "nnet_revers": 1, "h": [1, 2, 3, 24, 30, 31, 38], "ifndef": 1, "nnet_reverse_h_": 1, "includ": [1, 2, 3, 24, 26, 29, 35, 39], "nnet_common": 1, "namespac": 1, "nnet": [1, 3, 11], "struct": [1, 3, 11], "reverse_config": 1, "static": [1, 3, 11], "const": [1, 3, 11], "unsign": [1, 3, 11, 24, 37], "10": [1, 20, 36, 37], "data_t": [1, 8], "typenam": 1, "config_t": 1, "void": 1, "int": [1, 8, 20, 24, 29, 37], "i": [1, 3, 24, 27, 29], "endif": 1, "now": [1, 37], "These": [1, 5, 7, 8, 27], "determin": [1, 2, 8, 24, 32], "how": [1, 2, 3, 31, 34, 35, 38], "signatur": [1, 20], "rev_config_templ": 1, "index": [1, 8, 11, 20, 24], "n": [1, 3, 11, 29, 37, 39], "rev_function_templ": 1, "input_t": [1, 3], "rev_include_list": 1, "nnet_util": [1, 7, 30], "hreverseconfigtempl": 1, "backend": [1, 2, 3, 6, 20, 24, 25, 26, 29, 34, 37, 38, 39], "layerconfigtempl": [1, 7, 9, 11, 17], "format": [1, 3, 5, 7, 9, 11, 17, 20, 24, 27, 29, 37], "node": [1, 7, 9, 11, 13, 15, 17, 19, 20, 22, 24, 26, 27, 34, 37], "param": [1, 17, 29, 30], "_default_config_param": 1, "hreversefunctiontempl": 1, "functioncalltempl": [1, 7, 9, 11, 17], "include_head": [1, 7], "_default_function_param": 1, "tell": 1, "about": [1, 24, 29, 31, 34, 38], "exist": [1, 7, 24, 25, 26, 27, 34, 37], "new": [1, 7, 8, 24, 26, 32, 34, 35, 37, 38], "regist": [1, 7, 20, 24, 25, 26, 29, 34, 37], "k": 1, "handler": [1, 20], "pass": [1, 2, 7, 8, 10, 12, 14, 16, 18, 20, 24, 26, 29, 33, 37], "particular": [1, 2, 3, 31, 33, 34, 36, 38], "valid": [1, 5, 8, 12, 13, 14, 16, 18, 20, 24, 31, 37], "both": [1, 3, 5], "vivado": [1, 2, 3, 6, 7, 20, 29, 30, 31, 33, 34, 37, 38, 39], "quartu": [1, 6, 7, 20, 28, 34, 37, 38], "register_keras_layer_handl": [1, 20], "ir": 1, "register_lay": [1, 24], "backend_id": 1, "optim": [1, 3, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 24, 25, 32, 33, 37], "get_backend": [1, 3, 7], "register_pass": [1, 7, 26, 34], "remove_duplicate_revers": 1, "removeduplicaterevers": 1, "flow": [1, 2, 6, 7, 10, 12, 16, 18, 24, 26, 33, 37], "f": [1, 29, 31, 38], "lower": [1, 32], "given": [1, 5, 7, 9, 11, 13, 15, 17, 18, 20, 24, 26, 27, 28, 29, 32, 34, 39], "register_templ": [1, 7], "register_sourc": [1, 7], "compar": [1, 5, 24, 32, 37], "work": [1, 3, 5, 8, 20, 26, 29, 37, 38], "kmodel": 1, "sequenti": [1, 2, 3, 32, 37], "8": [1, 3, 36, 39], "relu": [1, 2, 3], "x": [1, 3, 4, 5, 24, 29, 30, 32, 37], "np": [1, 37], "random": 1, "randint": 1, "5": [1, 2, 3, 8, 10, 12, 16, 18, 20, 24], "dtype": [1, 24], "int32": 1, "kre": 1, "hmodel": 1, "str": [1, 7, 8, 18, 20, 24, 25, 26, 29, 30], "hls4mlprj_extensions_": 1, "io_typ": [1, 2, 3, 10, 12, 16, 18, 20, 33, 37], "io_parallel": [1, 3, 9, 10, 12, 16, 18, 20, 30, 37], "precis": [1, 3, 5, 8, 13, 18, 20, 24, 27, 29, 32, 36, 37], "ap_int": [1, 3], "6": [1, 3, 20, 24, 29], "reusefactor": [1, 3, 5, 20, 37], "compil": [1, 8, 10, 12, 18, 20, 24, 27, 37, 38], "hre": 1, "astyp": 1, "float32": 1, "assert_array_equ": 1, "With": [2, 32, 33], "io_stream": [2, 3, 9, 18, 20, 30, 37], "io": [2, 33, 37], "type": [2, 3, 5, 6, 7, 8, 9, 20, 25, 26, 27, 28, 29, 30, 31, 34, 37], "connect": [2, 24, 33, 34, 37, 39], "subsequ": [2, 33, 37], "out": [2, 33, 34, 37, 38, 39], "overal": [2, 33, 37], "resourc": [2, 3, 5, 10, 28, 32, 33, 37, 38], "design": [2, 8, 18, 20, 29, 32, 33], "impact": [2, 33], "bram": [2, 33, 37], "lut": [2, 13, 20, 29, 33, 37], "becaus": [2, 5, 9, 33], "have": [2, 3, 4, 9, 20, 24, 25, 31, 33, 34, 37], "complex": [2, 29, 32, 33], "architectur": [2, 3, 30, 32, 33, 37, 39], "hard": [2, 24, 33], "know": [2, 33, 35], "priori": [2, 33], "correct": [2, 9, 24, 27, 33, 34, 37], "By": [2, 20, 24, 33], "default": [2, 3, 5, 7, 8, 10, 12, 16, 18, 20, 24, 25, 26, 27, 29, 30, 33, 34, 37, 38], "chose": [2, 33], "most": [2, 3, 29, 32, 33], "conserv": [2, 33], "possibl": [2, 3, 5, 24, 29, 32, 33, 37], "result": [2, 3, 4, 5, 8, 24, 28, 29, 32, 33], "unnecessari": [2, 33], "overutil": [2, 33], "reduc": [2, 5, 32, 33, 37], "ha": [2, 3, 5, 7, 10, 12, 16, 18, 20, 25, 26, 29, 31, 32, 34, 39], "been": [2, 7, 10, 12, 16, 18, 20, 24, 25, 26, 31, 32, 37], "develop": [2, 3, 18, 35, 36, 37, 39], "509": [2, 37], "correctli": [2, 20, 24, 37], "size": [2, 3, 8, 20, 24, 29, 32, 37], "analyz": 2, "rtl": [2, 31, 37], "cosimul": [2, 37], "resiz": [2, 24], "fifo_depth_optim": [2, 7, 16, 18, 37], "simul": [2, 3, 4, 5, 24, 31, 37, 38], "100": 2, "000": 2, "estim": [2, 10], "maximum": 2, "occup": 2, "onc": [2, 9, 38], "valu": [2, 4, 5, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 24, 26, 27, 32, 34], "plu": 2, "As": [2, 5, 20, 24, 32, 38], "exampl": [2, 3, 5, 20, 24, 26, 29, 31, 33, 34, 36, 37], "show": [2, 5, 31, 38], "below": [2, 3, 5, 31, 34, 39], "inspir": 2, "github": [2, 29, 35, 36, 37, 38, 39], "gist": 2, "simpl": [2, 3, 4, 37], "tensorflow": [2, 31, 37, 38], "dens": [2, 3, 5, 24, 27, 33, 34, 37], "64": 2, "16": [2, 3, 20, 24, 29, 37], "fc1": [2, 3, 5], "activ": [2, 3, 5, 8, 24, 27, 30, 32, 37], "32": 2, "fc2": 2, "fc3": 2, "softmax": [2, 24, 37], "get_optim": [2, 26, 27], "configur": [2, 4, 5, 7, 10, 12, 16, 20, 24, 26, 27, 29, 31, 32, 34, 35, 37, 38], "profiling_fifo_depth": [2, 17], "100_000": 2, "hls4mlprj_fifo_depth_opt": 2, "reset": [2, 12, 14, 16, 18, 31], "fals": [2, 3, 8, 10, 12, 14, 16, 18, 20, 24, 28, 29, 37], "csim": [2, 4, 12, 14, 16, 18, 20, 38], "synth": [2, 10, 12, 14, 16, 18, 38], "cosim": [2, 12, 14, 16, 18, 20, 38], "more": [2, 3, 5, 9, 20, 29, 31, 32, 37, 38], "detail": [2, 31, 32, 35, 38], "see": [2, 3, 20, 24, 29, 33, 34, 35, 37, 38, 39], "borra": 2, "et": 2, "al": 2, "open": [2, 5, 28, 32, 35, 36], "ml": [2, 39], "codesign": [2, 36], "mlperf": 2, "tini": 2, "benchmark": 2, "2022": [2, 36, 38, 39], "wai": 3, "page": [3, 4, 31, 32, 35, 36, 38, 39], "usag": [3, 4, 5, 10, 28, 31, 37], "note": [3, 4, 7, 18, 20, 24, 32, 34, 38, 39], "One": [3, 20], "rememb": 3, "user": [3, 7, 13, 20, 24, 26, 29, 31, 32, 34], "respons": 3, "There": [3, 34, 38], "automat": [3, 20, 32, 38], "normal": [3, 5, 8, 24, 37], "so": [3, 8, 24, 27, 29, 32, 35, 37], "done": [3, 9, 32, 38], "train": [3, 5, 32, 37, 38], "you": [3, 4, 5, 31, 35, 36, 37, 38, 39], "might": [3, 5, 38], "want": [3, 4, 24, 38], "checkout": [3, 37], "section": [3, 4, 18, 31, 33, 34, 38, 39], "quickli": [3, 4], "advanc": [3, 4, 36], "them": [3, 4, 24, 29, 34, 37], "chang": [3, 26, 27, 29, 34, 37], "reus": [3, 11, 20, 24, 29, 32], "factor": [3, 9, 20, 24, 29, 32, 37], "Or": 3, "weight": [3, 5, 11, 17, 20, 24, 27, 30, 31, 32, 34, 37, 38], "layernam": 3, "ap_fix": [3, 20, 29], "4": [3, 5, 24, 36, 38, 39], "better": [3, 37], "understand": [3, 38], "hierachi": 3, "refer": [3, 4, 11, 18, 20, 31, 32, 37], "yml": [3, 5, 31, 37, 38], "here": [3, 4, 38], "look": [3, 20, 32, 37], "like": [3, 20, 24, 29, 31, 32, 35], "outputdir": [3, 20], "my": [3, 20, 29, 31, 38], "projectnam": [3, 20], "myproject": [3, 20, 29, 30], "kerasjson": 3, "keras_3lay": [3, 29, 38], "json": [3, 18, 20, 29, 31, 37, 38], "kerash5": [3, 20, 37], "keras_3layer_weight": 3, "h5": [3, 20, 31, 37], "save": [3, 29, 32], "without": [3, 7, 20, 24], "suppli": [3, 4], "inputdata": 3, "keras_3layer_input_featur": 3, "dat": [3, 20, 30], "outputpredict": 3, "keras_3layer_predict": 3, "xcvu13p": [3, 16, 20], "flga2577": [3, 12, 16, 20], "clockperiod": [3, 20], "iotyp": [3, 20, 37], "option": [3, 5, 7, 8, 10, 18, 20, 24, 25, 26, 28, 29, 30, 31, 32, 37, 38], "hlsconfig": [3, 20, 24], "strategi": [3, 37], "layertyp": 3, "compress": [3, 24, 32, 36], "go": [3, 38, 39], "basic": [3, 24, 38], "setup": [3, 31, 32, 37, 39], "paramet": [3, 7, 8, 9, 10, 11, 13, 15, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 30, 32, 34, 37, 38], "directori": [3, 7, 8, 20, 24, 28, 29, 30, 31, 37, 38, 39], "where": [3, 4, 20, 24, 28, 29], "appear": [3, 24], "ip": [3, 31, 32, 34, 37], "produc": [3, 5, 8, 24, 32, 33, 34], "store": [3, 9, 24, 29, 34], "path": [3, 7, 20, 29], "those": [3, 24, 31, 36], "obtain": [3, 8, 29], "just": [3, 4, 24, 31], "field": 3, "aritifici": 3, "abov": [3, 32, 34], "found": [3, 20, 26, 28, 35, 38], "npy": [3, 20], "suggest": 3, "depend": [3, 5, 8, 25, 32, 34, 37, 39], "get": [3, 4, 18, 20, 25, 31, 32], "start": [3, 5, 18, 20, 29, 31, 34], "point": [3, 5, 24, 27, 29, 32], "necessari": [3, 27, 32], "create_initial_config": [3, 7, 10, 12, 16, 18, 29], "consid": [3, 32], "xilinx": [3, 38], "virtex": 3, "ultrascal": 3, "vu13p": [3, 37], "clock": [3, 18, 20, 29], "period": [3, 18, 20], "ns": 3, "algorithm": [3, 8, 11, 32, 35, 36], "some": [3, 5, 20, 34, 37, 38], "structur": [3, 37], "intermedi": [3, 37], "arrai": [3, 4, 9, 24, 30, 33, 37], "fulli": [3, 39], "unrol": [3, 37], "typic": [3, 32], "ram": 3, "effici": [3, 32], "scalabl": 3, "mechan": [3, 24], "repres": [3, 5, 7, 20, 24, 25, 29, 32, 34], "consum": 3, "manner": 3, "fifo": [3, 24, 33, 34, 37], "instead": [3, 8, 20, 37], "inform": [3, 11, 20, 24, 29, 32, 34, 38], "parallel": [3, 8, 32, 33, 37], "pipelin": [3, 32, 37], "interv": [3, 32, 37], "either": [3, 8], "hl4ml": 3, "larger": [3, 33, 37], "than": [3, 9, 37], "should": [3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 19, 20, 24, 26, 27, 29, 32, 34, 38], "specifi": [3, 5, 7, 8, 10, 12, 16, 18, 20, 24, 27, 29, 37], "when": [3, 4, 5, 9, 20, 24, 29, 37], "precsion": 3, "bias": [3, 24], "denot": 3, "y": [3, 4], "sign": [3, 8, 24, 29, 32, 37], "binari": [3, 8, 24, 29, 36, 37], "integ": [3, 5, 24, 29, 37], "total": [3, 24, 29], "addition": [3, 36], "fix": [3, 24, 29, 32, 37], "1024": [3, 29], "chanc": 3, "further": [3, 5, 11, 37], "fine": [3, 5, 29], "describ": [3, 31, 33], "finer": 3, "under": [3, 36], "head": 3, "variabl": [3, 5, 7, 8, 9, 20, 24, 28, 29, 34, 37], "within": [3, 7, 8, 24], "onli": [3, 5, 18, 20, 24, 32, 38], "mai": [3, 5, 20, 24, 27, 33, 34], "everi": [3, 8, 26, 29], "throughout": 3, "all": [3, 4, 20, 24, 25, 26, 29, 31, 32, 33, 34, 37], "differ": [3, 4, 5, 9, 20, 24, 26, 32, 37], "14": 3, "while": [3, 5, 20, 29, 32, 34], "other": [3, 25, 26, 34, 36, 37, 38, 39], "dense1": 3, "bia": [3, 8, 27, 32, 34, 37], "12": [3, 29, 37], "g": [3, 5, 7, 20, 24, 27, 34, 37, 38], "batchnormalization1": 3, "dense2": 3, "thei": [3, 24, 34, 37], "mean": [3, 8, 20, 32], "visit": [3, 31, 38], "concept": [3, 33, 38], "chapter": [3, 38], "orient": 3, "opportun": 3, "do": [3, 4, 8, 27, 31, 32, 34, 38, 39], "choos": 3, "firmwar": [3, 35], "cpp": [3, 30], "construct": [3, 24], "snippet": 3, "layer2_t": 3, "layer2_out": 3, "n_layer_2": 3, "pragma": [3, 8, 37], "array_partit": 3, "dense_lat": 3, "config2": 3, "input_1": 3, "w2": 3, "b2": 3, "layer3_t": 3, "layer3_out": 3, "relu_config3": 3, "layer4_t": 3, "layer4_out": 3, "n_layer_4": 3, "config4": 3, "w4": 3, "b4": 3, "sigmoid": [3, 24, 37], "result_t": 3, "sigmoid_config5": 3, "layer5_out": 3, "dnn": 3, "comput": [3, 20, 27, 32, 36], "calucl": 3, "own": 3, "addit": [3, 20, 24, 30, 34, 37, 38], "machin": [3, 18, 31, 32, 35, 36], "learn": [3, 31, 32, 35, 36, 38], "insert": [3, 9, 17, 24, 27, 37], "dense_config": [3, 11], "n_input_1_1": 3, "n_out": [3, 8, 11], "reuse_factor": [3, 8, 11, 24], "n_zero": 3, "n_nonzero": 3, "320": 3, "bool": [3, 20, 24, 28, 29, 30], "store_weights_in_bram": 3, "typedef": [3, 11, 24], "accum_t": [3, 11, 37], "model_default_t": 3, "bias_t": [3, 11], "weight_t": [3, 8, 11], "ap_uint": 3, "index_t": 3, "stage": [3, 34], "even": [3, 32, 37], "keras_model": [4, 20, 24], "test_prj": 4, "sever": [4, 24, 38, 39], "similar": [4, 9], "line": [4, 29, 37, 38], "interfac": [4, 18, 30, 38], "prefer": 4, "pleas": [4, 20, 24, 35, 36, 38], "help": [4, 5, 31, 32, 36], "numpi": 4, "suppos": [4, 31], "alreadi": [4, 7, 20, 24, 25, 26, 32], "befor": [4, 5, 20, 24, 25, 32, 34, 37], "much": [4, 32, 37], "faster": 4, "veri": [4, 38], "prototyp": [4, 32], "report": [4, 6, 37, 38], "read_vivado_report": [4, 28, 38], "hls4ml_prj": 4, "version": [4, 29, 31, 36, 37, 39], "individu": [4, 36], "debug": 4, "appropri": [4, 5], "kei": [4, 7, 18, 24, 29], "predict_ouput": 4, "trace_output": 4, "keras_trac": 4, "get_ymodel_kera": [4, 24], "low": [5, 32], "loss": [5, 37], "perform": [5, 24, 27, 32, 34], "chosen": [5, 33], "inappropri": 5, "tool": [5, 24, 32, 37, 38, 39], "decid": 5, "extra": [5, 20, 26, 29, 30, 37, 38], "instal": [5, 18, 29], "pip": [5, 38], "modul": 5, "three": 5, "modelgraph": [5, 7, 8, 9, 10, 11, 13, 15, 17, 18, 19, 20, 24, 26, 27, 30, 34, 37], "pytorch": [5, 6, 20, 24, 29, 31, 32, 34, 37, 38, 39], "initialis": 5, "load": [5, 37], "allow": [5, 29, 32, 37], "numer": [5, 24], "keras_to_hl": [5, 6, 38], "matplotlib": [5, 24], "pyplot": 5, "plt": 5, "yaml": [5, 20, 30], "pseudo": 5, "load_model": 5, "load_data": 5, "real": [5, 36], "r": [5, 31], "ymlfile": 5, "plot": [5, 6, 24, 37], "four": [5, 32], "figur": [5, 24, 32], "titl": [5, 36], "distribut": [5, 24], "origin": [5, 7, 8, 24, 37], "imag": [5, 8, 29, 37], "notic": 5, "bn1": 5, "bn2": 5, "bn3": 5, "label": 5, "miss": 5, "batchnorm": [5, 24, 27, 37], "fuse": [5, 27, 37], "preced": 5, "fc": 5, "3": [5, 8, 24], "product": [5, 8, 11, 37], "similarli": 5, "correspond": [5, 24, 29, 34], "well": [5, 29, 36], "style": [5, 33, 37], "avail": [5, 25, 29, 38], "keyword": 5, "argument": [5, 20, 24, 29, 31, 37], "boxplot": [5, 24], "histogram": [5, 24], "violinplot": [5, 24], "evalu": [5, 24, 29, 32], "non": 5, "zero": [5, 37], "shown": [5, 32], "box": 5, "whisker": 5, "diagram": 5, "combin": [5, 27], "No": [5, 36, 37], "grei": 5, "indic": [5, 7, 9, 11, 13, 15, 17, 19, 24, 26, 27, 28, 34], "second": [5, 37], "median": 5, "quartil": 5, "shade": 5, "rang": [5, 20, 29], "good": [5, 33], "least": 5, "cover": 5, "make": [5, 24, 34, 37], "sure": 5, "contain": [5, 20, 24, 28, 29, 32, 37], "right": [5, 20], "suffici": 5, "avoid": [5, 9, 37], "overflow": [5, 24, 37], "left": [5, 20, 24, 37], "achiev": [5, 32], "satisfactori": 5, "safe": 5, "bare": [5, 18], "still": 5, "accuraci": 5, "establish": 5, "whether": [5, 10, 28, 29, 32], "give": [5, 24, 32, 38], "cpu": [5, 32], "float": [5, 18, 29, 32, 37], "submodul": [6, 37, 38, 39], "fpga_backend": [6, 7], "fpga_lay": [6, 7], "fpga_typ": [6, 7], "quartus_backend": [6, 7], "symbol": [6, 7, 20, 37], "symbolic_backend": [6, 7], "viti": [6, 7, 30, 33, 37, 38, 39], "vitis_backend": [6, 7], "vivado_backend": [6, 7], "vivado_acceler": [6, 7], "vivado_accelerator_backend": [6, 7], "vivado_accelerator_config": [6, 7], "convolut": [6, 8, 9, 11, 20, 24, 36, 37, 39], "core": [6, 20], "graph": [6, 7, 9, 11, 13, 15, 17, 19, 20, 22, 26, 27, 33, 34, 39], "merg": [6, 8, 20, 24, 27, 37], "pool": [6, 20, 37], "qkera": [6, 20, 24, 26, 32, 37, 38], "recurr": [6, 20, 39], "reshap": [6, 9, 20, 24, 37], "onnx": [6, 20, 29, 31, 33, 34, 37, 38, 39], "onnx_to_hl": 6, "pytorch_to_hl": 6, "quartus_report": 6, "vivado_report": 6, "example_model": [6, 38], "fixed_point_util": 6, "string_util": 6, "symbolic_util": 6, "writer": [6, 37], "quartus_writ": 6, "symbolic_writ": 6, "vitis_writ": 6, "vivado_accelerator_writ": 6, "vivado_writ": 6, "rese": 6, "newse": 6, "bn_quant": [7, 8], "bram_weight": [7, 8], "clone": [7, 8, 37, 38], "codegen": [7, 8], "embed": [7, 8, 24, 37], "final_reshap": [7, 8], "fix_softmax_table_s": [7, 8], "inplace_parallel_reshap": [7, 8], "inplace_stream_flatten": [7, 8], "remove_softmax": [7, 8], "repack_stream": [7, 8], "xnor_pool": [7, 8], "convolution_templ": [7, 10, 16], "convolution_winograd": [7, 10], "core_templ": [7, 10, 16], "merge_templ": [7, 10, 16], "pointwis": [7, 10, 16, 37], "pooling_templ": [7, 10, 16], "quantization_templ": [7, 10, 16], "recurrent_templ": [7, 10, 16], "reshaping_templ": [7, 10, 16], "resource_strategi": [7, 10, 16], "transform_typ": [7, 10, 16], "expr_templ": [7, 12], "validate_lut": [7, 12], "feature_check": [7, 14], "broadcast_stream": [7, 16], "conv_same_pad": [7, 16], "conv_stream": [7, 16], "garnet_templ": [7, 16], "kwarg": [7, 20, 24, 26, 29], "minim": [7, 10, 12, 16, 20], "convers": [7, 10, 12, 16, 18, 20, 29, 31, 32, 34, 38], "subclass": [7, 10, 12, 16, 24, 34], "create_layer_class": [7, 8], "layer_class": [7, 8, 26], "wrap": [7, 8, 24, 26, 30, 34], "get_available_flow": [7, 25], "get_custom_sourc": 7, "destin": 7, "absolut": 7, "dict": [7, 20, 24, 28, 29], "get_default_flow": [7, 10, 12, 16, 18], "opt_cl": [7, 26], "invok": 7, "tupl": [7, 20, 24], "source_fil": 7, "destination_dir": 7, "sub": [7, 34], "write": [7, 8, 20, 24, 26, 28, 30, 31, 34, 37], "rais": [7, 8, 10, 20, 24, 25, 26, 29, 37], "except": [7, 8, 10, 20, 24, 25, 26, 29], "template_cl": 7, "op": 7, "get_available_backend": 7, "register_backend": 7, "backend_cl": 7, "registri": [7, 25, 26], "instanti": 7, "constructor": [7, 29], "transform": [7, 8, 9, 11, 13, 15, 17, 19, 26, 27, 34], "appli": [7, 8, 9, 11, 13, 15, 17, 19, 24, 25, 26, 27, 29, 34, 37], "match": [7, 9, 11, 13, 15, 17, 19, 26, 27, 34, 37], "wa": [7, 9, 11, 13, 15, 17, 19, 26, 27, 37], "success": [7, 9, 11, 13, 15, 17, 19, 26, 27], "boolean": [7, 9, 11, 13, 15, 17, 19, 26, 27, 34], "alter": [7, 9, 11, 13, 15, 17, 19, 26, 27], "ad": [7, 9, 11, 13, 15, 17, 19, 20, 24, 26, 27, 35, 37], "remov": [7, 9, 11, 13, 15, 17, 19, 24, 25, 26, 27, 31, 37, 38], "attribute_nam": [7, 24], "optimizerpass": [7, 9, 11, 15, 17, 26, 27, 34], "get_nam": [7, 26], "predic": [7, 9, 11, 13, 15, 17, 26, 27], "try": [7, 9, 11, 13, 15, 17, 26, 27, 37], "fpgabackend": [8, 10, 12, 16], "link": [8, 24, 37], "runtim": [8, 37], "fail": [8, 33], "string": [8, 20, 28, 29, 37], "compute_conv1d_instruct": 8, "in_w": 8, "in_c": 8, "kernel_s": 8, "stride": [8, 20], "pad": [8, 20, 24, 37], "compute_conv2d_instruct": 8, "in_h": 8, "classmethod": [8, 24, 26], "convert_precision_str": 8, "generate_conv1d_line_buffer_fn": 8, "layer_idx": 8, "n_partit": 8, "kernel": [8, 11, 20, 30, 32], "dilat": [8, 20], "mimic": 8, "im2col": [8, 9], "1d": [8, 9, 11, 20, 27], "suboptim": 8, "trick": [8, 32], "explicitli": [8, 32, 37], "reli": 8, "loop": 8, "sinc": [8, 37], "paralet": 8, "etc": [8, 24, 28, 29], "partit": 8, "divid": 8, "pixel": [8, 33], "width": [8, 20, 24, 32], "channel": [8, 18, 20, 33], "length": [8, 20], "iter": 8, "left_pad": 8, "right_pad": 8, "rate": 8, "generate_conv2d_line_buffer_fn": 8, "2d": [8, 9, 20, 37], "height": [8, 20], "top_pad": 8, "bottom_pad": 8, "get_closest_reuse_factor": 8, "valid_rf": 8, "chosen_rf": 8, "closest": 8, "sort": [8, 34], "get_valid_reuse_factor": 8, "equal": 8, "close": 8, "smallest": 8, "get_layer_mult_s": 8, "get_valid_conv_partition_split": 8, "out_height": 8, "out_width": 8, "split": [8, 32], "conv1d": [8, 24, 34, 37], "essenti": [8, 32], "divisor": 8, "get_writer_flow": [8, 10, 12, 16, 18], "product_typ": [8, 11], "helper": [8, 24], "dure": [8, 10, 20, 24, 32], "infer": [8, 20, 27, 31, 32, 35, 36], "set_closest_reuse_factor": 8, "set_target_reuse_factor": 8, "disk": [8, 24], "write_hl": [8, 30], "batchnormalizationquantizedtanh": [8, 27], "batch": [8, 20, 37], "quantiz": [8, 24, 27, 32, 37], "ternari": [8, 27, 36, 37], "tanh": [8, 24, 37], "varianc": 8, "beta": 8, "gamma": 8, "fold": 8, "threshold": [8, 27], "flip": 8, "set_threshold": 8, "scale": [8, 27, 32, 37], "ternary_threshold": 8, "pointwiseconv1d": 8, "1x1": [8, 37], "pointwiseconv2d": 8, "conv2d": [8, 11, 24, 27, 34, 37], "acfixedprecisiondefinit": 8, "precisiondefinit": 8, "definition_cpp": 8, "acintegerprecisiondefinit": 8, "actypeconvert": 8, "fixedprecisionconvert": 8, "apfixedprecisiondefinit": 8, "apintegerprecisiondefinit": 8, "aptypeconvert": 8, "arrayvariableconvert": 8, "type_convert": 8, "prefix": 8, "definition_cl": 8, "tensor_var": 8, "bramweightvariableconvert": 8, "weight_var": 8, "compressedtypeconvert": 8, "typedefinit": 8, "typeprecisionconvert": 8, "convert_precis": 8, "precision_convert": 8, "exponenttypeconvert": 8, "type_map": 8, "precisionconvert": 8, "precision_typ": 8, "hlstypeconvert": 8, "atyp": [8, 24], "inplacestreamvariableconvert": 8, "streamvariableconvert": 8, "n_pack": [8, 24], "depth": [8, 17, 33, 34, 37], "namedtypeconvert": 8, "packedtypeconvert": 8, "quartusarrayvariableconvert": 8, "quartusarrayvariabledefinit": 8, "variabledefinit": 8, "name_suffix": 8, "as_refer": 8, "quartusinplacearrayvariableconvert": 8, "quartusinplacearrayvariabledefinit": 8, "quartusinplacestreamvariableconvert": 8, "quartusinplacestreamvariabledefinit": 8, "quartusstreamvariableconvert": 8, "quartusstreamvariabledefinit": 8, "quartusstructmembervariableconvert": 8, "structmembervariableconvert": 8, "quartusstructmembervariabledefinit": 8, "staticweightvariableconvert": 8, "staticweightvariabledefinit": 8, "struct_nam": 8, "vivadoarrayvariableconvert": 8, "vivadoarrayvariabledefinit": 8, "vivadoinplacearrayvariableconvert": 8, "vivadoinplacearrayvariabledefinit": 8, "vivadoinplacestreamvariableconvert": 8, "vivadoinplacestreamvariabledefinit": 8, "vivadostreamvariableconvert": 8, "vivadostreamvariabledefinit": 8, "batchnormalizationquantizedtanhconfigtempl": 9, "batchnormalizationquantizedtanhfunctiontempl": 9, "mergebatchnormandquantizedtanh": 9, "quantizedenseoutput": 9, "register_bn_qu": 9, "registerbramweight": 9, "whose": [9, 24], "clonefunctiontempl": 9, "cloneoutput": 9, "multipl": [9, 24, 26, 32, 33, 37], "time": [9, 32, 33, 36, 37], "register_clon": 9, "generateconvim2col": 9, "tcode": 9, "step": [9, 29, 30, 31, 38], "embeddingconfigtempl": 9, "embeddingfunctiontempl": 9, "removefinalreshap": 9, "fixsoftmaxtables": 9, "register_softmax__table_size_fix": 9, "inplaceparallelreshap": 9, "replac": [9, 20, 24], "inplac": [9, 37], "tensor": [9, 20, 24, 37], "flat": 9, "inplacestreamflatten": 9, "flatten": [9, 37], "expens": [9, 32], "repack": [9, 37], "skipsoftmax": 9, "pack": [9, 24], "repackfunctiontempl": 9, "reshapestream": 9, "register_repack_stream": 9, "xnorpool": 9, "behavior": 9, "maxpool": 9, "xnorprecisiontyp": [9, 24, 37], "propag": [9, 37], "quartusbackend": 10, "fpgasynth": 10, "log_level": 10, "cont_if_large_area": 10, "intel": [10, 33, 38, 39], "synthesi": [10, 20, 31, 32, 33, 35, 37, 38], "log": [10, 20, 29], "level": [10, 29, 30, 32, 34, 35, 39], "displai": [10, 29], "instruct": [10, 17, 38], "continu": 10, "exce": 10, "error": [10, 37], "arria10": 10, "clock_period": [10, 12, 16, 18, 20], "init_activ": 10, "init_base_lay": [10, 16], "init_conv1d": [10, 16], "init_conv2d": [10, 16], "init_dens": [10, 16], "init_emb": [10, 16], "init_gru": [10, 16], "init_lstm": [10, 16], "init_simple_rnn": 10, "init_softmax": [10, 16], "chdir": 10, "newdir": 10, "conv1dconfigtempl": [11, 17], "conv1dfunctiontempl": [11, 17], "conv2dconfigtempl": [11, 17], "conv2dfunctiontempl": [11, 17], "conv_mult_config_templ": 11, "_mult": 11, "rf_pad": 11, "rfpad": 11, "bf_pad": 11, "bfpad": 11, "reuse_factor_round": 11, "block_factor": 11, "div_roundup": 11, "block_factor_round": 11, "multiplier_factor": 11, "min": [11, 37], "multiplier_limit": 11, "multiplier_scal": 11, "x_t": 11, "y_t": 11, "conv": [11, 27, 37], "applywinogradkerneltransform": 11, "suitabl": [11, 24], "wingorad": 11, "lavin": 11, "grai": 11, "2015": 11, "fast": [11, 32, 36], "activationconfigtempl": [11, 17], "activationfunctiontempl": [11, 17], "batchnormalizationconfigtempl": [11, 17], "batchnormalizationfunctiontempl": [11, 17], "denseconfigtempl": [11, 17], "densefunctiontempl": [11, 17], "hardactivationconfigtempl": [11, 17], "prelufunctiontempl": [11, 17], "parametrizedactivationfunctiontempl": [11, 17], "softmaxconfigtempl": [11, 17], "concatenateconfigtempl": [11, 17], "dotconfigtempl": [11, 17], "mergeconfigtempl": [11, 17], "mergefunctiontempl": [11, 17], "optimizepointwiseconv": [11, 17], "pointwiseconv1dconfigtempl": [11, 17], "pointwiseconv1dfunctiontempl": [11, 17], "pointwiseconv2dconfigtempl": [11, 17], "pointwiseconv2dfunctiontempl": [11, 17], "register_pointwis": [11, 17], "poolingconfigtempl": [11, 17], "poolingfunctiontempl": [11, 17], "applyalphaconfigtempl": [11, 17], "applyalphafunctiontempl": [11, 17], "gruconfigtempl": 11, "grufunctiontempl": 11, "lstmconfigtempl": 11, "lstmfunctiontempl": 11, "simplernnconfigtempl": 11, "simplernnfunctiontempl": 11, "resizeconfigtempl": [11, 17], "resizefunctiontempl": [11, 17], "transposeconfigtempl": [11, 17], "transposefunctiontempl": [11, 17], "zeropaddingconfigtempl": [11, 17], "zeropaddingfunctiontempl": [11, 17], "applyresourcestrategi": [11, 17], "transpos": [11, 17, 20, 24, 27, 29], "dense_resourc": [11, 17], "matrix": [11, 17, 32, 37], "multipli": [11, 17, 32], "routin": [11, 17, 20], "transformtyp": [11, 17], "globaloptimizerpass": [11, 17, 26, 34], "symbolicexpressionbackend": 12, "export": [12, 14, 16, 18, 31, 37, 38], "vsynth": [12, 14, 16, 18, 38], "xcvu9p": 12, "vivado_hl": [12, 20, 38], "hls_include_path": [12, 20, 29], "hls_libs_path": [12, 20, 29], "validateuserlookupt": 13, "configurableoptimizerpass": [13, 17, 19, 26, 27, 34], "adequ": 13, "vitisbackend": 14, "vivadobackend": [14, 16, 18, 30], "validateconvimplement": 15, "validatestrategi": 15, "fifo_opt": [16, 18], "init_depconv2d": 16, "init_garnet": 16, "init_garnet_stack": 16, "init_global_pooling1d": 16, "init_global_pooling2d": 16, "init_pooling1d": 16, "init_pooling2d": 16, "init_sepconv1d": 16, "init_sepconv2d": 16, "broadcast": [17, 37], "broadcastconfigtempl": 17, "broadcastfunctiontempl": 17, "broadcaststream": 17, "register_broadcast_stream": 17, "insertzeropaddingbeforeconv1d": 17, "insert_zero_padding_before_conv1d": 17, "insertzeropaddingbeforeconv2d": 17, "insert_zero_padding_before_conv2d": 17, "generateconvstreaminginstruct": 17, "cnn": [17, 33, 36, 37, 39], "depthwiseconv1dfunctiontempl": 17, "depthwiseconv2dfunctiontempl": 17, "separableconv1dconfigtempl": 17, "separableconv1dfunctiontempl": 17, "separableconv2dconfigtempl": 17, "separableconv2dfunctiontempl": 17, "fifodepthoptim": [17, 19], "modeloptimizerpass": [17, 19, 26, 27, 34], "generate_max_depth_fil": 17, "max": [17, 37], "get_vcd_data": 17, "populate_valu": 17, "set_big_fifo": 17, "vars_to_profil": 17, "set_fifo_depth": 17, "garnetconfigtempl": 17, "get_transforms_config": 17, "garnetfunctiontempl": 17, "garnetstackconfigtempl": 17, "garnetstackfunctiontempl": 17, "recurrentconfigtempl": 17, "recurrentfunctiontempl": 17, "vivadoacceleratorbackend": 18, "axi_stream": 18, "input_typ": 18, "output_typ": 18, "platform": 18, "xilinx_u250_xdma_201830_2": 18, "acceler": [18, 36], "supported_board": [18, 20], "exploit": 18, "axi_mast": 18, "master": [18, 37], "axi_lit": 18, "lite": 18, "don": [18, 24, 37], "t": [18, 20, 24, 27, 32, 37], "exchang": 18, "amount": [18, 20], "metal": 18, "wrapper": [18, 24, 26, 30], "ap_typ": 18, "round": [18, 27], "power": [18, 20, 24, 29, 32], "make_xclbin": 18, "xclbin": 18, "deploy": 18, "host": 18, "guid": [18, 29], "vivadoacceleratorconfig": 18, "model_input": 18, "model_output": 18, "get_board": 18, "get_board_info": 18, "get_clock_period": 18, "get_corrected_typ": 18, "get_driv": 18, "get_driver_fil": 18, "get_driver_path": 18, "get_input_typ": 18, "get_interfac": 18, "get_io_bitwidth": 18, "get_krnl_rtl_src_dir": 18, "get_output_typ": 18, "get_part": 18, "get_platform": 18, "get_tcl_file_path": 18, "kerasfileread": 20, "kerasread": 20, "get_weights_data": 20, "layer_nam": [20, 24], "var_nam": [20, 24], "kerasmodelread": 20, "kerasnestedfileread": 20, "nested_path": 20, "get_model_arch": 20, "get_supported_keras_lay": 20, "pars": [20, 28, 32, 33, 34, 37], "intern": [20, 29, 33, 37], "represent": 20, "vari": [20, 32], "across": 20, "keras_handl": 20, "arg": [20, 37], "parse_default_keras_lay": 20, "parse_keras_model": 20, "model_arch": 20, "reader": [20, 22, 37], "layer_cnam": 20, "handler_func": 20, "parse_func": 20, "properti": [20, 24, 25], "callabl": 20, "onnxdataread": 20, "extract": [20, 27, 37], "relev": [20, 27], "add_input": 20, "perm": [20, 27], "ndarrai": [20, 24], "compute_pads_1d": 20, "oper": [20, 29, 34, 37], "compute_pads_2d": 20, "get_input_shap": 20, "input_idx": [20, 24], "get_onnx_attribut": 20, "get_onnx_input_nam": 20, "get_out_layer_nam": 20, "get_supported_onnx_lay": 20, "onnx_handl": 20, "unsupport": [20, 37], "register_onnx_layer_handl": 20, "replace_char_inconsit": 20, "inconsist": 20, "charact": 20, "caus": 20, "issu": [20, 37], "sanitize_layer_nam": 20, "compute_padding_1d": 20, "pad_typ": 20, "in_siz": 20, "filt_siz": 20, "side": 20, "tri": 20, "evenli": 20, "column": 20, "odd": 20, "causal": [20, 37], "insensit": 20, "window": [20, 39], "unknown": [20, 29], "compute_padding_1d_pytorch": 20, "compute_padding_2d": 20, "in_height": 20, "in_width": [20, 37], "stride_height": 20, "stride_width": 20, "filt_height": [20, 37], "filt_width": 20, "top": [20, 29, 30, 37, 39], "bottom": 20, "compute_padding_2d_pytorch": 20, "dilation_height": 20, "dilation_width": 20, "parse_data_format": 20, "data_format": 20, "channels_last": [20, 27, 29], "accord": 20, "ensur": [20, 24, 32, 34, 37], "element": [20, 24], "interpret": 20, "discard": 20, "3d": 20, "channels_first": [20, 27, 29], "convert_from_config": 20, "filesystem": 20, "project_nam": [20, 29], "input_data_tb": 20, "output_data_tb": 20, "associ": 20, "overwrit": 20, "convert_from_onnx_model": [20, 29], "convert_from_pytorch_model": [20, 29], "expect": [20, 24, 27, 34], "Not": 20, "hand": 20, "inputs_channel_last": [20, 29], "config_from_pytorch_model": [20, 29], "remain": [20, 34], "transpose_output": [20, 29], "back": 20, "convert_from_symbolic_express": 20, "expr": 20, "n_symbol": 20, "lut_funct": 20, "use_built_in_lut_funct": 20, "sympi": 20, "express": [20, 24, 32, 37], "form": [20, 24, 29], "x0": 20, "x1": 20, "x2": 20, "largest": [20, 32], "definit": [20, 24, 29, 30], "func_nam": [20, 29], "math_func": [20, 29], "func": [20, 24, 29], "table_s": [20, 29], "range_start": [20, 29], "range_end": [20, 29], "pysr": [20, 29], "math": [20, 29], "approxim": [20, 29], "sin": [20, 29], "co": [20, 26, 29, 31, 32], "lookup": [20, 29, 30], "tabl": [20, 29, 30, 37, 39], "strongli": [20, 29], "recommend": [20, 29, 33, 38], "built": [20, 37, 38, 39], "vitis_hl": 20, "inlcud": 20, "locat": [20, 34], "empti": [20, 27], "won": 20, "integr": [20, 24], "unless": 20, "doesn": [20, 27], "affect": [20, 29], "lib": [20, 29], "parse_yaml_config": 20, "config_fil": 20, "proper": 20, "serial": 20, "my_keras_model": 20, "doc": [20, 37], "parse_conv1d_lay": 21, "parse_conv2d_lay": 21, "parse_activation_lay": [21, 22], "parse_batchnorm_lay": [21, 22], "parse_dense_lay": 21, "parse_embedding_lay": 21, "parse_input_lay": 21, "parse_garnet_lay": 21, "parse_merge_lay": [21, 22], "parse_model_lay": 21, "parse_global_pooling_lay": [21, 22], "parse_pooling_lay": 21, "get_quantizer_from_config": 21, "quantizer_var": 21, "parse_qactivation_lay": 21, "parse_qbatchnorm_lay": 21, "parse_qconv2dbatchnorm_lay": 21, "parse_qconv_lay": 21, "parse_qdense_lay": 21, "parse_qdepthwiseqconv_lay": 21, "parse_qsepconv_lay": 21, "parse_rnn_lay": 21, "parse_flatten_lay": 21, "parse_permute_lay": 21, "parse_reshape_lay": [21, 22], "parse_upsampling1d_lay": 21, "parse_upsampling2d_lay": 21, "parse_zeropadding1d_lay": 21, "parse_zeropadding2d_lay": 21, "parse_conv_lay": 22, "inputs_map": 22, "parse_gemm_lay": 22, "parse_pool_lay": 22, "parse_transpose_lay": 22, "bn_fuse": [24, 26], "convert_to_channels_last": [24, 26], "expand_layer_group": [24, 26], "fuse_biasadd": [24, 26, 34], "multi_dens": [24, 26], "nop": [24, 26], "precision_merg": [24, 26], "stamp": [24, 26, 34], "transpose_opt": [24, 26], "hidden": 24, "unit": 24, "filter": [24, 32], "endpoint": 24, "expos": 24, "handl": [24, 33, 37], "unifi": 24, "view": [24, 25, 34], "map": [24, 34, 37], "conveni": 24, "certain": [24, 25, 32, 34], "attributemap": 24, "value_typ": 24, "consist": 24, "creation": [24, 32], "flag": [24, 28], "modifi": [24, 30], "expected_attribut": 24, "config_nam": 24, "pascal": 24, "attributenam": 24, "pascal_cas": [24, 29], "validate_valu": 24, "attributedict": 24, "mutablemap": 24, "behav": 24, "upon": 24, "trigger": [24, 32], "action": [24, 37], "convent": 24, "clazz": [24, 26], "choiceattribut": 24, "choic": 24, "predefin": 24, "codeattrubut": 24, "block": [24, 34], "codemap": 24, "configurableattribut": 24, "advis": [24, 29, 31], "over": [24, 37], "typeattribut": 24, "namedtyp": 24, "_t": 24, "typemap": 24, "variablemap": 24, "tensorvari": 24, "weightattribut": 24, "weightmap": 24, "weightvari": [24, 30], "get_bram_s": 24, "get_compress": 24, "get_config_valu": 24, "get_conv_implement": 24, "get_layer_config": 24, "get_layer_config_valu": 24, "get_output_dir": 24, "get_precis": 24, "var": [24, 30], "get_project_nam": 24, "get_reuse_factor": 24, "get_strategi": 24, "get_target_cycl": 24, "is_resource_strategi": 24, "layer_list": 24, "being": 24, "apply_flow": [24, 34], "reappli": [24, 27], "collect": [24, 25, 36], "skip": [24, 37], "environ": [24, 32, 37], "get_layer_output_vari": 24, "output_nam": 24, "get_lay": 24, "get_output_vari": 24, "get_weight_vari": 24, "insert_nod": 24, "make_nod": 24, "ambigu": 24, "sequenc": [24, 32, 34], "attempt": [24, 26], "made": [24, 34, 37], "doe": [24, 36], "kind": 24, "replace_nod": 24, "next_lay": 24, "register_output_vari": 24, "out_nam": 24, "remove_nod": 24, "rewir": 24, "previou": [24, 31, 32, 36], "leaf": 24, "old_nod": 24, "new_nod": 24, "trace": [24, 37], "biasadd": [24, 27], "concaten": [24, 37], "conv2dbatchnorm": 24, "depthwiseconv1d": [24, 37], "depthwiseconv2d": [24, 37], "dot": [24, 29], "gru": [24, 37], "garnet": [24, 37, 39], "ref_impl": 24, "garnetstack": [24, 37], "globalpooling1d": [24, 37], "globalpooling2d": 24, "hardactiv": 24, "tan": [24, 29], "unction": 24, "clip": 24, "slope": 24, "shift": [24, 37], "hard_sigmoid": 24, "lstm": [24, 37, 39], "necessarili": 24, "add_bia": [24, 27], "_out": 24, "type_nam": 24, "add_weight": [24, 27], "add_weights_vari": 24, "get_attr": 24, "get_input_nod": 24, "get_layer_precis": 24, "get_output_nod": 24, "get_output_use_map": 24, "get_vari": 24, "get_weight": 24, "set_attr": [24, 26], "layergroup": [24, 27], "prelu": 24, "parametrizedactiv": 24, "pooling1d": 24, "pooling2d": 24, "separableconv1d": [24, 37], "separableconv2d": [24, 37], "simplernn": 24, "symbolicexpress": 24, "ternarytanh": 24, "zeropadding1d": 24, "zeropadding2d": 24, "classproperti": 24, "activation_types_hlsmodel": 24, "activations_hlsmodel": 24, "fmt": 24, "summari": [24, 39], "activations_kera": 24, "longform": 24, "activations_torch": 24, "ap_fixed_wif": 24, "array_to_summari": 24, "plot_typ": 24, "dist_diff": 24, "visual": [24, 29], "y_model": 24, "y_sim": 24, "norm_diff": 24, "squar": 24, "root": 24, "sum": [24, 32], "vector": [24, 32], "depict": 24, "get_unoptimized_hlsmodel": 24, "calcul": [24, 32], "ouput": 24, "put": 24, "_type_": [24, 26], "facetgrid": 24, "quadrupl": 24, "pre": [24, 36, 37], "post": 24, "types_boxplot": 24, "types_histogram": 24, "types_hlsmodel": 24, "weights_hlsmodel": 24, "weights_kera": 24, "weights_torch": 24, "precisiontyp": 24, "higher": [24, 37], "dimension": [24, 37], "binaryquant": 24, "compressedtyp": 24, "index_precis": 24, "coo": 24, "compressedweightvari": 24, "exponentprecisiontyp": [24, 37], "differenti": 24, "regular": 24, "expon": 24, "po2": [24, 37], "exponenttyp": 24, "special": [24, 26, 34, 37], "mark": 24, "exponentweightvari": 24, "aka": 24, "fixedprecisiontyp": 24, "rounding_mod": [24, 27], "saturation_mod": [24, 27], "saturation_bit": 24, "arbitrari": 24, "ap_": 24, "u": [24, 36], "ac_fix": [24, 37], "decim": [24, 29], "roundingmod": 24, "mode": [24, 27], "trn": 24, "saturationmod": 24, "satur": [24, 27], "inplacetensorvari": 24, "tv": 24, "input_var": 24, "integerprecisiontyp": [24, 37], "ac_int": [24, 37], "packedtyp": 24, "n_elem": 24, "w": [24, 31], "_description_": [24, 25, 26], "qkerasbinaryquant": 24, "xnor": 24, "around": 24, "qkeraspo2quant": 24, "qkerasquant": 24, "hls_type": 24, "upstream": 24, "enum": 24, "enumer": 24, "rnd": 24, "rnd_conv": 24, "rnd_inf": 24, "rnd_min_inf": 24, "rnd_zero": 24, "trn_zero": 24, "from_str": 24, "sat": 24, "sat_sym": 24, "sat_zero": 24, "get_shap": 24, "size_cpp": 24, "ternaryquant": 24, "multidimension": [24, 37], "update_precis": 24, "new_precis": 24, "bnn": 24, "ones": 24, "find_minimum_width": 24, "find": [24, 38], "minimum": 24, "entri": 24, "dynamicflow": 25, "optimizer_func": 25, "dynam": [25, 32], "updat": [25, 37, 39], "get_backend_flow": 25, "get_flow": 25, "register_flow": [25, 34], "belong": [25, 26, 30], "append": [25, 26, 37], "update_flow": 25, "flow_nam": 25, "add_optim": 25, "remove_optim": 25, "get_config": 26, "global": 26, "layeroptimizerpass": [26, 34], "wrappedoptimizerpass": 26, "commonli": [26, 34], "itself": [26, 34], "deriv": [26, 34, 37], "condit": 26, "manual": [26, 29], "extract_optimizers_from_object": 26, "extract_optimizers_from_path": 26, "opt_path": 26, "module_path": 26, "get_available_pass": 26, "get_backend_pass": 26, "layer_optim": 26, "decor": [26, 34], "turn": [26, 37], "mylay": 26, "init_mylay": 26, "new_attribut": 26, "some_valu": 26, "model_optim": 26, "optimize_model": 26, "until": [26, 34], "longer": [26, 32, 34, 37], "occur": 26, "optimizer_pass": 26, "fusebatchnorm": 27, "channelslastconvert": 27, "expandlayergroup": 27, "expand": [27, 37], "nest": [27, 29, 37], "parent": [27, 37], "fusebiasadd": 27, "common": [27, 34], "replacemultidimensionaldensewithconv": 27, "eliminatelinearactiv": 27, "setprecisionconcat": 27, "concat": 27, "get_concat_typ": 27, "itype1": 27, "itype2": 27, "applyalpha": [27, 37], "qdens": 27, "alpha": [27, 37], "extractternarythreshold": 27, "execut": [27, 34], "That": 27, "fuseconsecutivebatchnorm": 27, "consecut": 27, "qkerasfactorizealpha": 27, "outputroundingsaturationmod": 27, "accumul": 27, "applic": [27, 32], "output_rounding_saturation_mod": 27, "ap_rnd_conv": 27, "ap_sat": 27, "precision_string_modifi": 27, "pstr": 27, "q": [27, 39], "register_qkera": 27, "makestamp": [27, 34], "removeuselesstranspos": 27, "anyth": 27, "parse_quartus_report": 28, "hls_dir": 28, "write_to_fil": 28, "separ": [28, 29, 37], "read_js_object": 28, "js_script": 28, "javascript": 28, "defind": 28, "script": [28, 30, 37], "read_quartus_report": 28, "open_brows": 28, "print": [28, 37, 38], "browser": 28, "parse_vivado_report": 28, "print_vivado_report": [28, 37], "report_dict": 28, "full_report": 28, "default_precis": 29, "default_reuse_factor": 29, "serv": 29, "inspect": 29, "tweak": [29, 34], "verbos": 29, "tune": 29, "entir": 29, "highli": [29, 32], "config_from_onnx_model": 29, "come": [29, 32], "create_config": 29, "check": [29, 37, 38, 39], "fetch_example_list": [29, 38], "fetch_example_model": [29, 38], "model_nam": 29, "repo": [29, 37], "http": [29, 35, 36, 38], "com": [29, 35, 36, 38], "fastmachinelearn": [29, 35, 36, 38], "fixedpointemul": 29, "integer_bit": 29, "decimal_bit": 29, "complement": 29, "exp_float": 29, "sig_fig": 29, "inv_float": 29, "set_msb_bit": 29, "to_float": 29, "ceil_log2": 29, "uint_to_binari": 29, "relat": [29, 37], "add_edg": 29, "dst": 29, "check_pydot": 29, "pydot": 29, "graphviz": 29, "model_to_dot": 29, "show_shap": 29, "show_layer_nam": 29, "show_precis": 29, "rankdir": 29, "tb": 29, "dpi": 29, "96": 29, "subgraph": 29, "vertic": 29, "lr": 29, "horizont": 29, "per": 29, "inch": 29, "cluster": 29, "importerror": 29, "plot_model": 29, "to_fil": 29, "png": 29, "jupyt": 29, "notebook": 29, "enabl": [29, 32, 37], "convert_to_pascal_cas": 29, "snake_cas": 29, "pascalcas": 29, "convert_to_snake_cas": 29, "lutfunct": 29, "generate_operator_complex": 29, "unary_oper": 29, "binary_oper": 29, "synthes": [29, 38], "cycl": 29, "unari": 29, "init_pysr_lut_funct": 29, "init_default": 29, "function_definit": 29, "math_lut": 29, "pysrregressor": 29, "frequent": [29, 34], "exp": 29, "register_pysr_lut_funct": 29, "julia_main": 29, "quartuswrit": 30, "get_max_reuse_factor": 30, "next_pow2": 30, "print_array_to_cpp": 30, "odir": 30, "write_activation_t": 30, "write_bridg": 30, "bridg": 30, "myproject_bridg": 30, "write_build_script": 30, "makefil": 30, "build_lib": 30, "sh": 30, "write_defin": 30, "write_nnet_util": 30, "ap": 30, "write_paramet": 30, "write_project_cpp": 30, "main": [30, 37, 38, 39], "write_project_dir": 30, "write_project_head": 30, "write_tar": 30, "archiv": 30, "write_test_bench": 30, "testbench": 30, "write_testbench_parallel": 30, "myproject_test": 30, "write_testbench_stream": 30, "write_weight": 30, "write_yml": 30, "symbolicexpressionwrit": 30, "vivadowrit": 30, "tcl": [30, 37, 38], "shell": 30, "build_prj": [30, 38], "vivado_synth": 30, "vitiswrit": 30, "adapt": 30, "write_nnet_utils_overrid": 30, "vivadoacceleratorwrit": 30, "modify_build_script": 30, "write_axi_wrapp": 30, "write_board_script": 30, "ipi": 30, "vivadoacceler": [30, 37], "write_driv": 30, "write_new_tar": 30, "write_wrapper_test": 30, "write_txt_fil": 30, "txt": 30, "write_generated_cod": 30, "nnet_code_gen": 30, "get_writ": 30, "register_writ": 30, "writer_cl": 30, "migrat": 31, "messag": 31, "posit": 31, "exit": 31, "m": [31, 32], "o": [31, 36], "pb": [31, 37], "pt": 31, "v": 31, "l": [31, 36, 37], "often": [31, 32], "csimul": 31, "impli": 31, "vivado_synthesi": 31, "full": [31, 34, 37, 38], "goal": 32, "translat": [32, 35, 38], "high": [32, 35, 36], "transpil": 32, "plug": 32, "freedom": 32, "mani": [32, 34, 38], "best": 32, "greatli": 32, "intuit": 32, "balanc": 32, "stem": 32, "energi": [32, 36], "physic": [32, 36], "cern": 32, "hadron": 32, "collid": 32, "lhc": 32, "proven": 32, "extrem": [32, 36], "analysi": 32, "detector": 32, "offlin": 32, "agglomer": 32, "problem": [32, 37], "collis": 32, "event": 32, "too": 32, "everyth": 32, "kept": 32, "significantli": [32, 37], "live": 32, "select": 32, "potenti": 32, "preserv": 32, "mind": 32, "realiz": 32, "gpu": 32, "task": 32, "remap": 32, "isn": 32, "realli": [32, 37], "cost": 32, "microsecond": 32, "invest": 32, "languag": [32, 35], "thu": 32, "rapid": 32, "multilay": [32, 39], "At": 32, "neuron": 32, "n_m": 32, "mathbf": 32, "_m": 32, "said": 32, "independ": [32, 33, 34], "n_": 32, "w_": 32, "b": 32, "g_m": 32, "compactli": 32, "_": 32, "speed": [32, 37], "accept": 32, "nontrivi": 32, "precomput": 32, "control": [32, 33, 34, 38], "aspect": 32, "princip": 32, "though": 32, "dataflow": 32, "awar": [32, 37], "decis": 32, "maxim": 32, "Of": 32, "simplifi": 32, "sizabl": 32, "speedup": 32, "arithmet": 32, "improv": [32, 37], "rel": 32, "offer": 32, "bin": 32, "therefor": 32, "had": 32, "lowest": 32, "highest": 32, "therebi": 32, "paper": [32, 36, 37], "jinst": [32, 36], "13": [32, 36, 37], "p07027": [32, 36], "2018": [32, 36, 37, 38, 39], "statu": 33, "featur": [33, 35, 36, 38], "known": 33, "mlp": [33, 39], "small": 33, "alwai": 33, "sent": 33, "state": 34, "verifi": 34, "reach": [34, 35], "undergo": 34, "seri": 34, "dub": 34, "modif": 34, "usual": 34, "uniqu": 34, "criteria": 34, "satisfi": 34, "again": 34, "folder": 34, "sens": 34, "assign": 34, "later": [34, 36], "regardless": 34, "explain": 34, "tradit": 35, "interest": 35, "experi": 35, "latest": [35, 38, 39], "plan": 35, "public": 36, "cite": 36, "fastml_hls4ml": 36, "author": 36, "fastml": 36, "team": 36, "year": 36, "2023": [36, 37], "publish": [36, 37], "zenodo": 36, "v0": 36, "doi": 36, "5281": 36, "1201549": 36, "url": 36, "articl": 36, "duart": 36, "2018ite": 36, "javier": 36, "deep": 36, "particl": 36, "eprint": 36, "1804": 36, "06913": 36, "archiveprefix": 36, "arxiv": [36, 37], "primaryclass": 36, "ins": 36, "det": 36, "reportnumb": 36, "fermilab": 36, "pub": 36, "18": [36, 37], "089": 36, "1088": 36, "1748": 36, "0221": 36, "07": [36, 37], "journal": 36, "volum": 36, "aarrestad": 36, "2021zo": 36, "thea": 36, "2101": [36, 37], "05108": [36, 37], "cs": 36, "lg": 36, "21": [36, 38, 39], "130": 36, "scd": 36, "2632": 36, "2153": 36, "ac0ea1": 36, "mach": 36, "sci": 36, "tech": 36, "045015": 36, "2021": [36, 37], "ghielmetti": 36, "2022ndm": 36, "nicol": 36, "semant": 36, "segment": 36, "autonom": 36, "vehicl": 36, "2205": 36, "07690": 36, "cv": 36, "22": 36, "435": [36, 37], "ppd": 36, "ac9cb5": 36, "loncar": 36, "2020hqp": 36, "ngadiuba": 36, "jennif": 36, "2003": 36, "06308": 36, "20": [36, 37, 38, 39], "167": 36, "aba042": 36, "015001": 36, "particip": 36, "ask": 36, "collabor": 36, "who": 36, "text": 36, "multi": [36, 37], "domain": 36, "expert": 36, "were": 36, "gratefulli": 36, "nation": 36, "scienc": 36, "foundat": 36, "nsf": 36, "har": 36, "revolut": 36, "hdr": 36, "institut": 36, "ai": 36, "driven": 36, "discoveri": 36, "a3d3": 36, "cooper": 36, "agreement": 36, "phy": 36, "2117997": 36, "depart": 36, "offic": 36, "scientif": 36, "research": 36, "reduct": 36, "edg": 36, "xdr": 36, "de": 36, "foa": 36, "0002501": 36, "earli": 36, "career": 36, "sc0021187": 36, "0000247070": 36, "european": 36, "council": 36, "erc": 36, "union": 36, "horizon": 36, "2020": [36, 37, 38, 39], "innov": 36, "grant": 36, "772369": 36, "thank": 36, "vloncar": [36, 37], "jmduart": [36, 37], "thesp": [36, 37], "jmitrev": [36, 37], "nhanvtran": 36, "bo3z": [36, 37], "benjaminkrei": 36, "nicologhielmetti": [36, 37], "jngadiub": 36, "drankincm": [36, 37], "duchstf": [36, 37], "calad0i": [36, 37], "hamzajaved780": 36, "commit": [36, 37], "ci": [36, 37], "bot": 36, "ejk43": 36, "keb": [36, 37], "janfschult": [36, 37], "adrianalan": [36, 37], "maksgraczyk": [36, 37], "yiiyama": [36, 37], "ngpaladi": 36, "d": 36, "gol": 36, "joshlern": [36, 37], "zhenbinwu": 36, "delonshen": 36, "pitmonticon": [36, 37], "jochist": [36, 37], "melko": 36, "dependabot": [36, 37], "qberthet": [36, 37], "veyron8800": 36, "jicampo": 36, "apfusco": [36, 37], "ander": [36, 37], "wind": [36, 37], "bkmgit": [36, 37], "chiruichen": [36, 37], "siorpa": [36, 37], "jonathan": [36, 37], "shoemak": [36, 37], "kovi89alip": [36, 37], "consvin": [36, 37], "pzejdl": 36, "guyzsarun": 36, "selwyn96": [36, 37], "schsu": 36, "thaarr": 36, "cgutsch": [36, 37], "katyagovorkova": [36, 37], "nemerchiedd": [36, 37], "11": [37, 38], "pypi": [37, 39], "decoupl": 37, "781": 37, "770": 37, "tf_to_hl": 37, "795": 37, "autoupd": 37, "796": 37, "qconv2dbatchnorm": 37, "802": 37, "801": 37, "discuss": 37, "inlin": 37, "slow": 37, "down": 37, "x15": 37, "x20": 37, "800": 37, "807": 37, "quantis": 37, "806": 37, "797": 37, "815": 37, "torch": 37, "fx": 37, "clean": 37, "799": 37, "816": 37, "794": 37, "gt": 37, "821": 37, "828": 37, "827": 37, "830": 37, "833": 37, "835": 37, "obsolet": 37, "unus": 37, "docker": 37, "836": 37, "842": 37, "847": 37, "804": 37, "845": 37, "852": 37, "851": 37, "bug": 37, "848": 37, "qdepthwiseconv2d": 37, "834": 37, "660": 37, "837": 37, "bump": 37, "866": 37, "869": 37, "runner": 37, "gitlab": 37, "879": 37, "880": 37, "877": 37, "acknowledg": 37, "862": 37, "861": 37, "863": 37, "882": 37, "891": 37, "886": 37, "884": 37, "895": 37, "887": 37, "915": 37, "902": 37, "fund": 37, "918": 37, "fetch": [37, 38], "919": 37, "blank": 37, "rst": 37, "923": 37, "ku115": 37, "924": 37, "925": 37, "contributor": 37, "changelog": [37, 39], "08": 37, "05": 37, "778": 37, "760": 37, "rnn": [37, 39], "780": 37, "jenkin": 37, "hell": 37, "786": 37, "785": 37, "minor": 37, "788": 37, "791": 37, "04": 37, "26": 37, "403": 37, "407": 37, "399": 37, "414": 37, "qkeras_mnist_dens": 37, "423": 37, "424": 37, "pyyaml": 37, "420": 37, "443": 37, "amp": 37, "448": 37, "384": 37, "disabl": [37, 38], "447": 37, "quantized_relu": 37, "ii": 37, "441": 37, "344": 37, "zeropad": 37, "480": 37, "framework": [37, 39], "395": 37, "499": 37, "501": 37, "cast": 37, "490": 37, "511": 37, "510": 37, "508": 37, "527": 37, "upsampling2d": 37, "520": 37, "upsampling1d": 37, "475": 37, "521": 37, "523": 37, "540": 37, "531": 37, "519": 37, "ingest": 37, "downstream": 37, "544": 37, "547": 37, "extens": 37, "528": 37, "416": 37, "bn": 37, "532": 37, "482": 37, "551": 37, "471": 37, "548": 37, "qactiv": 37, "553": 37, "overrid": 37, "directli": [37, 38], "567": 37, "559": 37, "transpose2d": 37, "concatenate2d": 37, "402": 37, "io_seri": 37, "info": 37, "334": 37, "453": 37, "487": 37, "few": [37, 38], "typo": 37, "467": 37, "_compute_n_sampl": 37, "537": 37, "552": 37, "sensit": 37, "577": 37, "pr": 37, "582": 37, "560": 37, "syntax": 37, "593": 37, "588": 37, "595": 37, "cppname": 37, "562": 37, "email": 37, "helplin": 37, "601": 37, "598": 37, "609": 37, "test_graph": 37, "611": 37, "597": 37, "enforc": 37, "605": 37, "583": 37, "557": 37, "qconv": 37, "612": 37, "625": 37, "602": 37, "edit": 37, "bramfactor": 37, "621": 37, "570": 37, "618": 37, "628": 37, "596": 37, "634": 37, "nondefault": 37, "626": 37, "639": 37, "direct": 37, "635": 37, "qu": 37, "575": 37, "softsign": 37, "585": 37, "561": 37, "contd": 37, "655": 37, "661": 37, "600": 37, "pytest": 37, "663": 37, "664": 37, "applied_flow": 37, "fill": 37, "641": 37, "setuptools_scm": 37, "479": 37, "argmax": 37, "627": 37, "sphinx": 37, "669": 37, "request": [37, 38], "citat": 37, "readm": 37, "615": 37, "fusion": 37, "481": 37, "wider": 37, "averag": 37, "681": 37, "656": 37, "branch": [37, 38], "636": 37, "delet": 37, "prj": 37, "682": 37, "adiabat": 37, "678": 37, "688": 37, "689": 37, "690": 37, "703": 37, "clang": [37, 38], "mac": 37, "704": 37, "694": 37, "contrib": 37, "706": 37, "wip": 37, "kl": 37, "606": 37, "incorrectli": 37, "lint": 37, "709": 37, "encod": 37, "min_width": 37, "610": 37, "642": 37, "isort": 37, "719": 37, "727": 37, "715": 37, "keepdim": 37, "globalpool": 37, "716": 37, "724": 37, "569": 37, "nicer": 37, "730": 37, "700": 37, "714": 37, "708": 37, "629": 37, "710": 37, "742": 37, "precommit": 37, "741": 37, "mv": 37, "743": 37, "748": 37, "mess": 37, "751": 37, "cleanup": 37, "codebas": 37, "750": 37, "center": 37, "754": 37, "gpl": 37, "licens": 37, "761": 37, "757": 37, "744": 37, "763": 37, "766": 37, "weight_siz": 37, "772": 37, "749": 37, "774": 37, "15": 37, "line_buff": 37, "violatingcp": 37, "easier": 37, "vs": 37, "302": 37, "318": 37, "323": 37, "332": 37, "307": 37, "298": 37, "03": 37, "especi": 37, "previous": 37, "redefinit": 37, "standalon": 37, "deprec": 37, "superced": 37, "bugfix": [37, 38], "warn": 37, "mix": 37, "01": 37, "30": 37, "skipoptim": 37, "subtract": 37, "fuse_consecutive_batch_norm": 37, "gor": 37, "reload": 37, "emul": 37, "use_bia": 37, "31": 37, "expans": 37, "move": [37, 39], "retriev": 37, "protobuf": 37, "enhanc": 37, "gather": 37, "02": 37, "refin": 37, "2019": 37, "easi": 38, "releas": [38, 39], "toolbox": 38, "conda": 38, "forg": 38, "repositori": [38, 39], "outdat": 38, "rapidli": 38, "evolv": 38, "experiment": [38, 39], "git": [38, 39], "extern": 38, "manag": 38, "newer": 38, "compat": 38, "On": 38, "linux": [38, 39], "gcc": 38, "recent": 38, "maco": [38, 39], "demonstr": 38, "workflow": 38, "explor": 38, "minut": 38, "ve": 38, "apart": 38, "altern": 38, "pi": 38, "recurs": [38, 39], "along": 38, "cd": 38, "And": 38, "9": 39, "dev7": 39, "g781c401a": 39, "stabl": 39, "limit": 39, "perceptron": 39, "gnn": 39, "bdt": 39, "conif": 39, "init": 39}, "objects": {"": [[6, 0, 0, "-", "hls4ml"]], "hls4ml": [[7, 0, 0, "-", "backends"], [20, 0, 0, "-", "converters"], [24, 0, 0, "-", "model"], [28, 0, 0, "-", "report"], [6, 3, 1, "", "reseed"], [29, 0, 0, "-", "utils"], [30, 0, 0, "-", "writer"]], "hls4ml.backends": [[7, 0, 0, "-", "backend"], [8, 0, 0, "-", "fpga"], [10, 0, 0, "-", "quartus"], [12, 0, 0, "-", "symbolic"], [7, 0, 0, "-", "template"], [14, 0, 0, "-", "vitis"], [16, 0, 0, "-", "vivado"], [18, 0, 0, "-", "vivado_accelerator"]], "hls4ml.backends.backend": [[7, 1, 1, "", "Backend"], [7, 3, 1, "", "get_available_backends"], [7, 3, 1, "", "get_backend"], [7, 3, 1, "", "register_backend"]], "hls4ml.backends.backend.Backend": [[7, 2, 1, "", "create_initial_config"], [7, 2, 1, "", "create_layer_class"], [7, 2, 1, "", "get_available_flows"], [7, 2, 1, "", "get_custom_source"], [7, 2, 1, "", "get_default_flow"], [7, 2, 1, "", "register_pass"], [7, 2, 1, "", "register_source"], [7, 2, 1, "", "register_template"]], "hls4ml.backends.fpga": [[8, 0, 0, "-", "fpga_backend"], [8, 0, 0, "-", "fpga_layers"], [8, 0, 0, "-", "fpga_types"], [9, 0, 0, "-", "passes"]], "hls4ml.backends.fpga.fpga_backend": [[8, 1, 1, "", "FPGABackend"]], "hls4ml.backends.fpga.fpga_backend.FPGABackend": [[8, 2, 1, "", "compile"], [8, 2, 1, "", "compute_conv1d_instructions"], [8, 2, 1, "", "compute_conv2d_instructions"], [8, 2, 1, "", "convert_precision_string"], [8, 2, 1, "", "create_layer_class"], [8, 2, 1, "", "generate_conv1d_line_buffer_fn"], [8, 2, 1, "", "generate_conv2d_line_buffer_fn"], [8, 2, 1, "", "get_closest_reuse_factor"], [8, 2, 1, "", "get_layer_mult_size"], [8, 2, 1, "", "get_valid_conv_partition_splits"], [8, 2, 1, "", "get_valid_reuse_factors"], [8, 2, 1, "", "get_writer_flow"], [8, 2, 1, "", "product_type"], [8, 2, 1, "", "set_closest_reuse_factor"], [8, 2, 1, "", "set_target_reuse_factor"], [8, 2, 1, "", "write"], [8, 2, 1, "", "write_hls"]], "hls4ml.backends.fpga.fpga_layers": [[8, 1, 1, "", "BatchNormalizationQuantizedTanh"], [8, 1, 1, "", "PointwiseConv1D"], [8, 1, 1, "", "PointwiseConv2D"]], "hls4ml.backends.fpga.fpga_layers.BatchNormalizationQuantizedTanh": [[8, 2, 1, "", "initialize"], [8, 2, 1, "", "set_thresholds"]], "hls4ml.backends.fpga.fpga_types": [[8, 1, 1, "", "ACFixedPrecisionDefinition"], [8, 1, 1, "", "ACIntegerPrecisionDefinition"], [8, 1, 1, "", "ACTypeConverter"], [8, 1, 1, "", "APFixedPrecisionDefinition"], [8, 1, 1, "", "APIntegerPrecisionDefinition"], [8, 1, 1, "", "APTypeConverter"], [8, 1, 1, "", "ArrayVariableConverter"], [8, 1, 1, "", "BramWeightVariableConverter"], [8, 1, 1, "", "CompressedTypeConverter"], [8, 1, 1, "", "ExponentTypeConverter"], [8, 1, 1, "", "FixedPrecisionConverter"], [8, 1, 1, "", "HLSTypeConverter"], [8, 1, 1, "", "InplaceStreamVariableConverter"], [8, 1, 1, "", "NamedTypeConverter"], [8, 1, 1, "", "PackedTypeConverter"], [8, 1, 1, "", "PrecisionConverter"], [8, 1, 1, "", "PrecisionDefinition"], [8, 1, 1, "", "QuartusArrayVariableConverter"], [8, 1, 1, "", "QuartusArrayVariableDefinition"], [8, 1, 1, "", "QuartusInplaceArrayVariableConverter"], [8, 1, 1, "", "QuartusInplaceArrayVariableDefinition"], [8, 1, 1, "", "QuartusInplaceStreamVariableConverter"], [8, 1, 1, "", "QuartusInplaceStreamVariableDefinition"], [8, 1, 1, "", "QuartusStreamVariableConverter"], [8, 1, 1, "", "QuartusStreamVariableDefinition"], [8, 1, 1, "", "QuartusStructMemberVariableConverter"], [8, 1, 1, "", "QuartusStructMemberVariableDefinition"], [8, 1, 1, "", "StaticWeightVariableConverter"], [8, 1, 1, "", "StaticWeightVariableDefinition"], [8, 1, 1, "", "StreamVariableConverter"], [8, 1, 1, "", "StructMemberVariableConverter"], [8, 1, 1, "", "TypeDefinition"], [8, 1, 1, "", "TypePrecisionConverter"], [8, 1, 1, "", "VariableDefinition"], [8, 1, 1, "", "VivadoArrayVariableConverter"], [8, 1, 1, "", "VivadoArrayVariableDefinition"], [8, 1, 1, "", "VivadoInplaceArrayVariableConverter"], [8, 1, 1, "", "VivadoInplaceArrayVariableDefinition"], [8, 1, 1, "", "VivadoInplaceStreamVariableConverter"], [8, 1, 1, "", "VivadoInplaceStreamVariableDefinition"], [8, 1, 1, "", "VivadoStreamVariableConverter"], [8, 1, 1, "", "VivadoStreamVariableDefinition"]], "hls4ml.backends.fpga.fpga_types.ACFixedPrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ACIntegerPrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.APFixedPrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.APIntegerPrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ArrayVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.BramWeightVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.CompressedTypeConverter": [[8, 2, 1, "", "convert_precision"], [8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ExponentTypeConverter": [[8, 2, 1, "", "convert_precision"], [8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.FixedPrecisionConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.HLSTypeConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.InplaceStreamVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.NamedTypeConverter": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.PackedTypeConverter": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.PrecisionConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.PrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusArrayVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusInplaceArrayVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusInplaceStreamVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusStreamVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusStructMemberVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.StaticWeightVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.StaticWeightVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.StreamVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.StructMemberVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.TypeDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.TypePrecisionConverter": [[8, 2, 1, "", "convert_precision"]], "hls4ml.backends.fpga.fpga_types.VariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.VivadoArrayVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.VivadoInplaceArrayVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.VivadoInplaceStreamVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.VivadoStreamVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.passes": [[9, 0, 0, "-", "bn_quant"], [9, 0, 0, "-", "bram_weights"], [9, 0, 0, "-", "clone"], [9, 0, 0, "-", "codegen"], [9, 0, 0, "-", "embedding"], [9, 0, 0, "-", "final_reshape"], [9, 0, 0, "-", "fix_softmax_table_size"], [9, 0, 0, "-", "inplace_parallel_reshape"], [9, 0, 0, "-", "inplace_stream_flatten"], [9, 0, 0, "-", "remove_softmax"], [9, 0, 0, "-", "repack_stream"], [9, 0, 0, "-", "xnor_pooling"]], "hls4ml.backends.fpga.passes.bn_quant": [[9, 1, 1, "", "BatchNormalizationQuantizedTanhConfigTemplate"], [9, 1, 1, "", "BatchNormalizationQuantizedTanhFunctionTemplate"], [9, 1, 1, "", "MergeBatchNormAndQuantizedTanh"], [9, 1, 1, "", "QuantizeDenseOutput"], [9, 3, 1, "", "register_bn_quant"]], "hls4ml.backends.fpga.passes.bn_quant.BatchNormalizationQuantizedTanhConfigTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.bn_quant.BatchNormalizationQuantizedTanhFunctionTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.bn_quant.MergeBatchNormAndQuantizedTanh": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.bn_quant.QuantizeDenseOutput": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.bram_weights": [[9, 1, 1, "", "RegisterBramWeights"]], "hls4ml.backends.fpga.passes.bram_weights.RegisterBramWeights": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.clone": [[9, 1, 1, "", "Clone"], [9, 1, 1, "", "CloneFunctionTemplate"], [9, 1, 1, "", "CloneOutput"], [9, 3, 1, "", "register_clone"]], "hls4ml.backends.fpga.passes.clone.Clone": [[9, 2, 1, "", "initialize"]], "hls4ml.backends.fpga.passes.clone.CloneFunctionTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.clone.CloneOutput": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.codegen": [[9, 1, 1, "", "GenerateConvIm2col"]], "hls4ml.backends.fpga.passes.codegen.GenerateConvIm2col": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.embedding": [[9, 1, 1, "", "EmbeddingConfigTemplate"], [9, 1, 1, "", "EmbeddingFunctionTemplate"]], "hls4ml.backends.fpga.passes.embedding.EmbeddingConfigTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.embedding.EmbeddingFunctionTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.final_reshape": [[9, 1, 1, "", "RemoveFinalReshape"]], "hls4ml.backends.fpga.passes.final_reshape.RemoveFinalReshape": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.fix_softmax_table_size": [[9, 1, 1, "", "FixSoftmaxTableSize"], [9, 3, 1, "", "register_softmax__table_size_fix"]], "hls4ml.backends.fpga.passes.fix_softmax_table_size.FixSoftmaxTableSize": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.inplace_parallel_reshape": [[9, 1, 1, "", "InplaceParallelReshape"]], "hls4ml.backends.fpga.passes.inplace_parallel_reshape.InplaceParallelReshape": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.inplace_stream_flatten": [[9, 1, 1, "", "InplaceStreamFlatten"]], "hls4ml.backends.fpga.passes.inplace_stream_flatten.InplaceStreamFlatten": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.remove_softmax": [[9, 1, 1, "", "SkipSoftmax"]], "hls4ml.backends.fpga.passes.remove_softmax.SkipSoftmax": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.repack_stream": [[9, 1, 1, "", "Repack"], [9, 1, 1, "", "RepackFunctionTemplate"], [9, 1, 1, "", "ReshapeStream"], [9, 3, 1, "", "register_repack_stream"]], "hls4ml.backends.fpga.passes.repack_stream.Repack": [[9, 2, 1, "", "initialize"]], "hls4ml.backends.fpga.passes.repack_stream.RepackFunctionTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.repack_stream.ReshapeStream": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.xnor_pooling": [[9, 1, 1, "", "XnorPooling"]], "hls4ml.backends.fpga.passes.xnor_pooling.XnorPooling": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.quartus": [[11, 0, 0, "-", "passes"], [10, 0, 0, "-", "quartus_backend"]], "hls4ml.backends.quartus.passes": [[11, 0, 0, "-", "convolution_templates"], [11, 0, 0, "-", "convolution_winograd"], [11, 0, 0, "-", "core_templates"], [11, 0, 0, "-", "merge_templates"], [11, 0, 0, "-", "pointwise"], [11, 0, 0, "-", "pooling_templates"], [11, 0, 0, "-", "quantization_templates"], [11, 0, 0, "-", "recurrent_templates"], [11, 0, 0, "-", "reshaping_templates"], [11, 0, 0, "-", "resource_strategy"], [11, 0, 0, "-", "transform_types"]], "hls4ml.backends.quartus.passes.convolution_templates": [[11, 1, 1, "", "Conv1DConfigTemplate"], [11, 1, 1, "", "Conv1DFunctionTemplate"], [11, 1, 1, "", "Conv2DConfigTemplate"], [11, 1, 1, "", "Conv2DFunctionTemplate"], [11, 4, 1, "", "conv_mult_config_template"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv1DConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv1DFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv2DConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv2DFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_winograd": [[11, 1, 1, "", "ApplyWinogradKernelTransformation"]], "hls4ml.backends.quartus.passes.convolution_winograd.ApplyWinogradKernelTransformation": [[11, 2, 1, "", "match"], [11, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.core_templates": [[11, 1, 1, "", "ActivationConfigTemplate"], [11, 1, 1, "", "ActivationFunctionTemplate"], [11, 1, 1, "", "BatchNormalizationConfigTemplate"], [11, 1, 1, "", "BatchNormalizationFunctionTemplate"], [11, 1, 1, "", "DenseConfigTemplate"], [11, 1, 1, "", "DenseFunctionTemplate"], [11, 1, 1, "", "HardActivationConfigTemplate"], [11, 1, 1, "", "PReLUFunctionTemplate"], [11, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [11, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.quartus.passes.core_templates.ActivationConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ActivationFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.BatchNormalizationConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.BatchNormalizationFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.DenseConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.DenseFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.HardActivationConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.PReLUFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ParametrizedActivationFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates": [[11, 1, 1, "", "ConcatenateConfigTemplate"], [11, 1, 1, "", "DotConfigTemplate"], [11, 1, 1, "", "MergeConfigTemplate"], [11, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.quartus.passes.merge_templates.ConcatenateConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.DotConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.MergeConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.MergeFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.pointwise": [[11, 1, 1, "", "OptimizePointwiseConv"], [11, 1, 1, "", "PointwiseConv1DConfigTemplate"], [11, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [11, 1, 1, "", "PointwiseConv2DConfigTemplate"], [11, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [11, 3, 1, "", "register_pointwise"]], "hls4ml.backends.quartus.passes.pointwise.OptimizePointwiseConv": [[11, 2, 1, "", "match"], [11, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.pooling_templates": [[11, 1, 1, "", "PoolingConfigTemplate"], [11, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.quartus.passes.pooling_templates.PoolingConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.pooling_templates.PoolingFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.quantization_templates": [[11, 1, 1, "", "ApplyAlphaConfigTemplate"], [11, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.quartus.passes.quantization_templates.ApplyAlphaConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates": [[11, 1, 1, "", "GRUConfigTemplate"], [11, 1, 1, "", "GRUFunctionTemplate"], [11, 1, 1, "", "LSTMConfigTemplate"], [11, 1, 1, "", "LSTMFunctionTemplate"], [11, 1, 1, "", "SimpleRNNConfigTemplate"], [11, 1, 1, "", "SimpleRNNFunctionTemplate"]], "hls4ml.backends.quartus.passes.recurrent_templates.GRUConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.GRUFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.LSTMConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.LSTMFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.SimpleRNNConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.SimpleRNNFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates": [[11, 1, 1, "", "ResizeConfigTemplate"], [11, 1, 1, "", "ResizeFunctionTemplate"], [11, 1, 1, "", "TransposeConfigTemplate"], [11, 1, 1, "", "TransposeFunctionTemplate"], [11, 1, 1, "", "ZeroPaddingConfigTemplate"], [11, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.quartus.passes.reshaping_templates.ResizeConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ResizeFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.TransposeConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.TransposeFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.resource_strategy": [[11, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.quartus.passes.resource_strategy.ApplyResourceStrategy": [[11, 2, 1, "", "match"], [11, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.transform_types": [[11, 1, 1, "", "TransformTypes"]], "hls4ml.backends.quartus.passes.transform_types.TransformTypes": [[11, 2, 1, "", "transform"]], "hls4ml.backends.quartus.quartus_backend": [[10, 1, 1, "", "QuartusBackend"], [10, 3, 1, "", "chdir"]], "hls4ml.backends.quartus.quartus_backend.QuartusBackend": [[10, 2, 1, "", "build"], [10, 2, 1, "", "create_initial_config"], [10, 2, 1, "", "get_default_flow"], [10, 2, 1, "", "get_writer_flow"], [10, 2, 1, "", "init_activation"], [10, 2, 1, "", "init_base_layer"], [10, 2, 1, "", "init_conv1d"], [10, 2, 1, "", "init_conv2d"], [10, 2, 1, "", "init_dense"], [10, 2, 1, "", "init_embed"], [10, 2, 1, "", "init_gru"], [10, 2, 1, "", "init_lstm"], [10, 2, 1, "", "init_simple_rnn"], [10, 2, 1, "", "init_softmax"]], "hls4ml.backends.symbolic": [[13, 0, 0, "-", "passes"], [12, 0, 0, "-", "symbolic_backend"]], "hls4ml.backends.symbolic.passes": [[13, 0, 0, "-", "validate_lut"]], "hls4ml.backends.symbolic.passes.validate_lut": [[13, 1, 1, "", "ValidateUserLookupTable"]], "hls4ml.backends.symbolic.passes.validate_lut.ValidateUserLookupTable": [[13, 2, 1, "", "match"], [13, 2, 1, "", "transform"]], "hls4ml.backends.symbolic.symbolic_backend": [[12, 1, 1, "", "SymbolicExpressionBackend"]], "hls4ml.backends.symbolic.symbolic_backend.SymbolicExpressionBackend": [[12, 2, 1, "", "build"], [12, 2, 1, "", "create_initial_config"], [12, 2, 1, "", "get_default_flow"], [12, 2, 1, "", "get_writer_flow"]], "hls4ml.backends.template": [[7, 1, 1, "", "FunctionCallTemplate"], [7, 1, 1, "", "LayerConfigTemplate"], [7, 1, 1, "", "Template"]], "hls4ml.backends.template.FunctionCallTemplate": [[7, 2, 1, "", "transform"]], "hls4ml.backends.template.Template": [[7, 2, 1, "", "format"], [7, 2, 1, "", "get_name"], [7, 2, 1, "", "match"], [7, 2, 1, "", "transform"]], "hls4ml.backends.vitis": [[15, 0, 0, "-", "passes"], [14, 0, 0, "-", "vitis_backend"]], "hls4ml.backends.vitis.passes": [[15, 0, 0, "-", "feature_check"]], "hls4ml.backends.vitis.passes.feature_check": [[15, 1, 1, "", "ValidateConvImplementation"], [15, 1, 1, "", "ValidateStrategy"]], "hls4ml.backends.vitis.passes.feature_check.ValidateConvImplementation": [[15, 2, 1, "", "match"], [15, 2, 1, "", "transform"]], "hls4ml.backends.vitis.passes.feature_check.ValidateStrategy": [[15, 2, 1, "", "match"], [15, 2, 1, "", "transform"]], "hls4ml.backends.vitis.vitis_backend": [[14, 1, 1, "", "VitisBackend"]], "hls4ml.backends.vitis.vitis_backend.VitisBackend": [[14, 2, 1, "", "build"]], "hls4ml.backends.vivado": [[17, 0, 0, "-", "passes"], [16, 0, 0, "-", "vivado_backend"]], "hls4ml.backends.vivado.passes": [[17, 0, 0, "-", "broadcast_stream"], [17, 0, 0, "-", "conv_same_pad"], [17, 0, 0, "-", "conv_stream"], [17, 0, 0, "-", "convolution_templates"], [17, 0, 0, "-", "core_templates"], [17, 0, 0, "-", "fifo_depth_optimization"], [17, 0, 0, "-", "garnet_templates"], [17, 0, 0, "-", "merge_templates"], [17, 0, 0, "-", "pointwise"], [17, 0, 0, "-", "pooling_templates"], [17, 0, 0, "-", "quantization_templates"], [17, 0, 0, "-", "recurrent_templates"], [17, 0, 0, "-", "reshaping_templates"], [17, 0, 0, "-", "resource_strategy"], [17, 0, 0, "-", "transform_types"]], "hls4ml.backends.vivado.passes.broadcast_stream": [[17, 1, 1, "", "Broadcast"], [17, 1, 1, "", "BroadcastConfigTemplate"], [17, 1, 1, "", "BroadcastFunctionTemplate"], [17, 1, 1, "", "BroadcastStream"], [17, 3, 1, "", "register_broadcast_stream"]], "hls4ml.backends.vivado.passes.broadcast_stream.Broadcast": [[17, 2, 1, "", "initialize"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastStream": [[17, 2, 1, "", "match"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_same_pad": [[17, 1, 1, "", "InsertZeroPaddingBeforeConv1D"], [17, 1, 1, "", "InsertZeroPaddingBeforeConv2D"]], "hls4ml.backends.vivado.passes.conv_same_pad.InsertZeroPaddingBeforeConv1D": [[17, 2, 1, "", "match"], [17, 5, 1, "", "name"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_same_pad.InsertZeroPaddingBeforeConv2D": [[17, 2, 1, "", "match"], [17, 5, 1, "", "name"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_stream": [[17, 1, 1, "", "GenerateConvStreamingInstructions"]], "hls4ml.backends.vivado.passes.conv_stream.GenerateConvStreamingInstructions": [[17, 2, 1, "", "match"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.convolution_templates": [[17, 1, 1, "", "Conv1DConfigTemplate"], [17, 1, 1, "", "Conv1DFunctionTemplate"], [17, 1, 1, "", "Conv2DConfigTemplate"], [17, 1, 1, "", "Conv2DFunctionTemplate"], [17, 1, 1, "", "DepthwiseConv1DFunctionTemplate"], [17, 1, 1, "", "DepthwiseConv2DFunctionTemplate"], [17, 1, 1, "", "SeparableConv1DConfigTemplate"], [17, 1, 1, "", "SeparableConv1DFunctionTemplate"], [17, 1, 1, "", "SeparableConv2DConfigTemplate"], [17, 1, 1, "", "SeparableConv2DFunctionTemplate"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv1DConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv1DFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv2DConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv2DFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv1DConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv1DFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv2DConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv2DFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates": [[17, 1, 1, "", "ActivationConfigTemplate"], [17, 1, 1, "", "ActivationFunctionTemplate"], [17, 1, 1, "", "BatchNormalizationConfigTemplate"], [17, 1, 1, "", "BatchNormalizationFunctionTemplate"], [17, 1, 1, "", "DenseConfigTemplate"], [17, 1, 1, "", "DenseFunctionTemplate"], [17, 1, 1, "", "HardActivationConfigTemplate"], [17, 1, 1, "", "PReLUFunctionTemplate"], [17, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [17, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.vivado.passes.core_templates.ActivationConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ActivationFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.BatchNormalizationConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.BatchNormalizationFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.DenseConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.DenseFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.HardActivationConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.PReLUFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ParametrizedActivationFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.fifo_depth_optimization": [[17, 1, 1, "", "FifoDepthOptimization"], [17, 3, 1, "", "generate_max_depth_file"], [17, 3, 1, "", "get_vcd_data"], [17, 3, 1, "", "populate_values"], [17, 3, 1, "", "set_big_fifos"], [17, 3, 1, "", "set_fifo_depth"]], "hls4ml.backends.vivado.passes.fifo_depth_optimization.FifoDepthOptimization": [[17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.garnet_templates": [[17, 1, 1, "", "GarNetConfigTemplate"], [17, 1, 1, "", "GarNetFunctionTemplate"], [17, 1, 1, "", "GarNetStackConfigTemplate"], [17, 1, 1, "", "GarNetStackFunctionTemplate"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetConfigTemplate": [[17, 2, 1, "", "format"], [17, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetStackConfigTemplate": [[17, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.vivado.passes.merge_templates": [[17, 1, 1, "", "ConcatenateConfigTemplate"], [17, 1, 1, "", "DotConfigTemplate"], [17, 1, 1, "", "MergeConfigTemplate"], [17, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.vivado.passes.merge_templates.ConcatenateConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.DotConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.MergeConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.MergeFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.pointwise": [[17, 1, 1, "", "OptimizePointwiseConv"], [17, 1, 1, "", "PointwiseConv1DConfigTemplate"], [17, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [17, 1, 1, "", "PointwiseConv2DConfigTemplate"], [17, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [17, 3, 1, "", "register_pointwise"]], "hls4ml.backends.vivado.passes.pointwise.OptimizePointwiseConv": [[17, 2, 1, "", "match"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.pooling_templates": [[17, 1, 1, "", "PoolingConfigTemplate"], [17, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.vivado.passes.pooling_templates.PoolingConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.pooling_templates.PoolingFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.quantization_templates": [[17, 1, 1, "", "ApplyAlphaConfigTemplate"], [17, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.vivado.passes.quantization_templates.ApplyAlphaConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.recurrent_templates": [[17, 1, 1, "", "RecurrentConfigTemplate"], [17, 1, 1, "", "RecurrentFunctionTemplate"]], "hls4ml.backends.vivado.passes.recurrent_templates.RecurrentConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.recurrent_templates.RecurrentFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates": [[17, 1, 1, "", "ResizeConfigTemplate"], [17, 1, 1, "", "ResizeFunctionTemplate"], [17, 1, 1, "", "TransposeConfigTemplate"], [17, 1, 1, "", "TransposeFunctionTemplate"], [17, 1, 1, "", "ZeroPaddingConfigTemplate"], [17, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.vivado.passes.reshaping_templates.ResizeConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ResizeFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.TransposeConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.TransposeFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.resource_strategy": [[17, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.vivado.passes.resource_strategy.ApplyResourceStrategy": [[17, 2, 1, "", "match"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.transform_types": [[17, 1, 1, "", "TransformTypes"]], "hls4ml.backends.vivado.passes.transform_types.TransformTypes": [[17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.vivado_backend": [[16, 1, 1, "", "VivadoBackend"]], "hls4ml.backends.vivado.vivado_backend.VivadoBackend": [[16, 2, 1, "", "build"], [16, 2, 1, "", "create_initial_config"], [16, 2, 1, "", "get_default_flow"], [16, 2, 1, "", "get_writer_flow"], [16, 2, 1, "", "init_base_layer"], [16, 2, 1, "", "init_conv1d"], [16, 2, 1, "", "init_conv2d"], [16, 2, 1, "", "init_dense"], [16, 2, 1, "", "init_depconv2d"], [16, 2, 1, "", "init_embed"], [16, 2, 1, "", "init_garnet"], [16, 2, 1, "", "init_garnet_stack"], [16, 2, 1, "", "init_global_pooling1d"], [16, 2, 1, "", "init_global_pooling2d"], [16, 2, 1, "", "init_gru"], [16, 2, 1, "", "init_lstm"], [16, 2, 1, "", "init_pooling1d"], [16, 2, 1, "", "init_pooling2d"], [16, 2, 1, "", "init_sepconv1d"], [16, 2, 1, "", "init_sepconv2d"], [16, 2, 1, "", "init_softmax"]], "hls4ml.backends.vivado_accelerator": [[19, 0, 0, "-", "passes"], [18, 0, 0, "-", "vivado_accelerator_backend"], [18, 0, 0, "-", "vivado_accelerator_config"]], "hls4ml.backends.vivado_accelerator.passes": [[19, 0, 0, "-", "fifo_depth_optimization"]], "hls4ml.backends.vivado_accelerator.passes.fifo_depth_optimization": [[19, 1, 1, "", "FifoDepthOptimization"]], "hls4ml.backends.vivado_accelerator.passes.fifo_depth_optimization.FifoDepthOptimization": [[19, 2, 1, "", "transform"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_backend": [[18, 1, 1, "", "VivadoAcceleratorBackend"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_backend.VivadoAcceleratorBackend": [[18, 2, 1, "", "build"], [18, 2, 1, "", "create_initial_config"], [18, 2, 1, "", "get_default_flow"], [18, 2, 1, "", "get_writer_flow"], [18, 2, 1, "", "make_xclbin"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_config": [[18, 1, 1, "", "VivadoAcceleratorConfig"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_config.VivadoAcceleratorConfig": [[18, 2, 1, "", "get_board"], [18, 2, 1, "", "get_board_info"], [18, 2, 1, "", "get_clock_period"], [18, 2, 1, "", "get_corrected_types"], [18, 2, 1, "", "get_driver"], [18, 2, 1, "", "get_driver_file"], [18, 2, 1, "", "get_driver_path"], [18, 2, 1, "", "get_input_type"], [18, 2, 1, "", "get_interface"], [18, 2, 1, "", "get_io_bitwidth"], [18, 2, 1, "", "get_krnl_rtl_src_dir"], [18, 2, 1, "", "get_output_type"], [18, 2, 1, "", "get_part"], [18, 2, 1, "", "get_platform"], [18, 2, 1, "", "get_tcl_file_path"]], "hls4ml.converters": [[20, 3, 1, "", "convert_from_config"], [20, 3, 1, "", "convert_from_keras_model"], [20, 3, 1, "", "convert_from_onnx_model"], [20, 3, 1, "", "convert_from_pytorch_model"], [20, 3, 1, "", "convert_from_symbolic_expression"], [21, 0, 0, "-", "keras"], [20, 0, 0, "-", "keras_to_hls"], [22, 0, 0, "-", "onnx"], [20, 0, 0, "-", "onnx_to_hls"], [20, 3, 1, "", "parse_yaml_config"], [23, 0, 0, "-", "pytorch"], [20, 0, 0, "-", "utils"]], "hls4ml.converters.keras": [[21, 0, 0, "-", "convolution"], [21, 0, 0, "-", "core"], [21, 0, 0, "-", "graph"], [21, 0, 0, "-", "merge"], [21, 0, 0, "-", "model"], [21, 0, 0, "-", "pooling"], [21, 0, 0, "-", "qkeras"], [21, 0, 0, "-", "recurrent"], [21, 0, 0, "-", "reshape"], [21, 0, 0, "-", "reshaping"]], "hls4ml.converters.keras.convolution": [[21, 3, 1, "", "parse_conv1d_layer"], [21, 3, 1, "", "parse_conv2d_layer"]], "hls4ml.converters.keras.core": [[21, 3, 1, "", "parse_activation_layer"], [21, 3, 1, "", "parse_batchnorm_layer"], [21, 3, 1, "", "parse_dense_layer"], [21, 3, 1, "", "parse_embedding_layer"], [21, 3, 1, "", "parse_input_layer"]], "hls4ml.converters.keras.graph": [[21, 3, 1, "", "parse_garnet_layer"]], "hls4ml.converters.keras.merge": [[21, 3, 1, "", "parse_merge_layer"]], "hls4ml.converters.keras.model": [[21, 3, 1, "", "parse_model_layer"]], "hls4ml.converters.keras.pooling": [[21, 3, 1, "", "parse_global_pooling_layer"], [21, 3, 1, "", "parse_pooling_layer"]], "hls4ml.converters.keras.qkeras": [[21, 3, 1, "", "get_quantizer_from_config"], [21, 3, 1, "", "parse_qactivation_layer"], [21, 3, 1, "", "parse_qbatchnorm_layer"], [21, 3, 1, "", "parse_qconv2dbatchnorm_layer"], [21, 3, 1, "", "parse_qconv_layer"], [21, 3, 1, "", "parse_qdense_layer"], [21, 3, 1, "", "parse_qdepthwiseqconv_layer"], [21, 3, 1, "", "parse_qsepconv_layer"]], "hls4ml.converters.keras.recurrent": [[21, 3, 1, "", "parse_rnn_layer"]], "hls4ml.converters.keras.reshape": [[21, 3, 1, "", "parse_flatten_layer"], [21, 3, 1, "", "parse_permute_layer"], [21, 3, 1, "", "parse_reshape_layer"], [21, 3, 1, "", "parse_upsampling1d_layer"], [21, 3, 1, "", "parse_upsampling2d_layer"]], "hls4ml.converters.keras.reshaping": [[21, 3, 1, "", "parse_zeropadding1d_layer"], [21, 3, 1, "", "parse_zeropadding2d_layer"]], "hls4ml.converters.keras_to_hls": [[20, 1, 1, "", "KerasFileReader"], [20, 1, 1, "", "KerasModelReader"], [20, 1, 1, "", "KerasNestedFileReader"], [20, 1, 1, "", "KerasReader"], [20, 3, 1, "", "get_model_arch"], [20, 3, 1, "", "get_supported_keras_layers"], [20, 3, 1, "", "get_weights_data"], [20, 3, 1, "", "keras_handler"], [20, 3, 1, "", "keras_to_hls"], [20, 3, 1, "", "parse_default_keras_layer"], [20, 3, 1, "", "parse_keras_model"], [20, 3, 1, "", "register_keras_layer_handler"]], "hls4ml.converters.keras_to_hls.KerasFileReader": [[20, 2, 1, "", "get_weights_data"]], "hls4ml.converters.keras_to_hls.KerasModelReader": [[20, 2, 1, "", "get_weights_data"]], "hls4ml.converters.keras_to_hls.KerasReader": [[20, 2, 1, "", "get_weights_data"]], "hls4ml.converters.onnx": [[22, 0, 0, "-", "convolution"], [22, 0, 0, "-", "core"], [22, 0, 0, "-", "merge"], [22, 0, 0, "-", "pooling"], [22, 0, 0, "-", "reshape"]], "hls4ml.converters.onnx.convolution": [[22, 3, 1, "", "parse_conv_layer"]], "hls4ml.converters.onnx.core": [[22, 3, 1, "", "parse_activation_layer"], [22, 3, 1, "", "parse_batchnorm_layer"], [22, 3, 1, "", "parse_gemm_layer"]], "hls4ml.converters.onnx.merge": [[22, 3, 1, "", "parse_merge_layer"]], "hls4ml.converters.onnx.pooling": [[22, 3, 1, "", "parse_global_pooling_layer"], [22, 3, 1, "", "parse_pool_layer"]], "hls4ml.converters.onnx.reshape": [[22, 3, 1, "", "parse_reshape_layer"], [22, 3, 1, "", "parse_transpose_layer"]], "hls4ml.converters.onnx_to_hls": [[20, 1, 1, "", "ONNXDataReader"], [20, 3, 1, "", "compute_pads_1d"], [20, 3, 1, "", "compute_pads_2d"], [20, 3, 1, "", "get_input_shape"], [20, 3, 1, "", "get_onnx_attribute"], [20, 3, 1, "", "get_onnx_input_name"], [20, 3, 1, "", "get_out_layer_name"], [20, 3, 1, "", "get_supported_onnx_layers"], [20, 3, 1, "", "onnx_handler"], [20, 3, 1, "", "onnx_to_hls"], [20, 3, 1, "", "register_onnx_layer_handler"], [20, 3, 1, "", "replace_char_inconsitency"], [20, 3, 1, "", "sanitize_layer_name"]], "hls4ml.converters.onnx_to_hls.ONNXDataReader": [[20, 2, 1, "", "add_input"], [20, 2, 1, "", "get_weights_data"]], "hls4ml.converters.utils": [[20, 3, 1, "", "compute_padding_1d"], [20, 3, 1, "", "compute_padding_1d_pytorch"], [20, 3, 1, "", "compute_padding_2d"], [20, 3, 1, "", "compute_padding_2d_pytorch"], [20, 3, 1, "", "parse_data_format"]], "hls4ml.model": [[24, 0, 0, "-", "attributes"], [25, 0, 0, "-", "flow"], [24, 0, 0, "-", "graph"], [24, 0, 0, "-", "layers"], [26, 0, 0, "-", "optimizer"], [24, 0, 0, "-", "profiling"], [24, 0, 0, "-", "types"]], "hls4ml.model.attributes": [[24, 1, 1, "", "Attribute"], [24, 1, 1, "", "AttributeDict"], [24, 1, 1, "", "AttributeMapping"], [24, 1, 1, "", "ChoiceAttribute"], [24, 1, 1, "", "CodeAttrubute"], [24, 1, 1, "", "CodeMapping"], [24, 1, 1, "", "ConfigurableAttribute"], [24, 1, 1, "", "TypeAttribute"], [24, 1, 1, "", "TypeMapping"], [24, 1, 1, "", "VariableMapping"], [24, 1, 1, "", "WeightAttribute"], [24, 1, 1, "", "WeightMapping"]], "hls4ml.model.attributes.Attribute": [[24, 6, 1, "", "config_name"], [24, 2, 1, "", "validate_value"]], "hls4ml.model.attributes.ChoiceAttribute": [[24, 2, 1, "", "validate_value"]], "hls4ml.model.flow": [[25, 0, 0, "-", "flow"]], "hls4ml.model.flow.flow": [[25, 1, 1, "", "DynamicFlow"], [25, 1, 1, "", "Flow"], [25, 3, 1, "", "get_available_flows"], [25, 3, 1, "", "get_backend_flows"], [25, 3, 1, "", "get_flow"], [25, 3, 1, "", "register_flow"], [25, 3, 1, "", "update_flow"]], "hls4ml.model.flow.flow.DynamicFlow": [[25, 6, 1, "", "optimizers"]], "hls4ml.model.flow.flow.Flow": [[25, 6, 1, "", "optimizers"]], "hls4ml.model.graph": [[24, 1, 1, "", "HLSConfig"], [24, 1, 1, "", "ModelGraph"]], "hls4ml.model.graph.HLSConfig": [[24, 2, 1, "", "get_bram_size"], [24, 2, 1, "", "get_compression"], [24, 2, 1, "", "get_config_value"], [24, 2, 1, "", "get_conv_implementation"], [24, 2, 1, "", "get_layer_config"], [24, 2, 1, "", "get_layer_config_value"], [24, 2, 1, "", "get_output_dir"], [24, 2, 1, "", "get_precision"], [24, 2, 1, "", "get_project_name"], [24, 2, 1, "", "get_reuse_factor"], [24, 2, 1, "", "get_strategy"], [24, 2, 1, "", "get_target_cycles"], [24, 2, 1, "", "is_resource_strategy"]], "hls4ml.model.graph.ModelGraph": [[24, 2, 1, "", "apply_flow"], [24, 2, 1, "", "build"], [24, 2, 1, "", "compile"], [24, 2, 1, "", "get_input_variables"], [24, 2, 1, "", "get_layer_output_variable"], [24, 2, 1, "", "get_layers"], [24, 2, 1, "", "get_output_variables"], [24, 2, 1, "", "get_weight_variables"], [24, 2, 1, "", "insert_node"], [24, 2, 1, "", "make_node"], [24, 2, 1, "", "next_layer"], [24, 2, 1, "", "predict"], [24, 2, 1, "", "register_output_variable"], [24, 2, 1, "", "remove_node"], [24, 2, 1, "", "replace_node"], [24, 2, 1, "", "trace"], [24, 2, 1, "", "write"]], "hls4ml.model.layers": [[24, 1, 1, "", "Activation"], [24, 1, 1, "", "BatchNormalization"], [24, 1, 1, "", "BiasAdd"], [24, 1, 1, "", "Concatenate"], [24, 1, 1, "", "Conv1D"], [24, 1, 1, "", "Conv2D"], [24, 1, 1, "", "Conv2DBatchnorm"], [24, 1, 1, "", "Dense"], [24, 1, 1, "", "DepthwiseConv1D"], [24, 1, 1, "", "DepthwiseConv2D"], [24, 1, 1, "", "Dot"], [24, 1, 1, "", "Embedding"], [24, 1, 1, "", "GRU"], [24, 1, 1, "", "GarNet"], [24, 1, 1, "", "GarNetStack"], [24, 1, 1, "", "GlobalPooling1D"], [24, 1, 1, "", "GlobalPooling2D"], [24, 1, 1, "", "HardActivation"], [24, 1, 1, "", "Input"], [24, 1, 1, "", "LSTM"], [24, 1, 1, "", "Layer"], [24, 1, 1, "", "LayerGroup"], [24, 1, 1, "", "Merge"], [24, 1, 1, "", "PReLU"], [24, 1, 1, "", "ParametrizedActivation"], [24, 1, 1, "", "Pooling1D"], [24, 1, 1, "", "Pooling2D"], [24, 1, 1, "", "Reshape"], [24, 1, 1, "", "Resize"], [24, 1, 1, "", "SeparableConv1D"], [24, 1, 1, "", "SeparableConv2D"], [24, 1, 1, "", "SimpleRNN"], [24, 1, 1, "", "Softmax"], [24, 1, 1, "", "SymbolicExpression"], [24, 1, 1, "", "TernaryTanh"], [24, 1, 1, "", "Transpose"], [24, 1, 1, "", "ZeroPadding1D"], [24, 1, 1, "", "ZeroPadding2D"], [24, 1, 1, "", "classproperty"], [24, 3, 1, "", "register_layer"]], "hls4ml.model.layers.Activation": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.BatchNormalization": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.BiasAdd": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Concatenate": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv2DBatchnorm": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Dense": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.DepthwiseConv1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.DepthwiseConv2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Dot": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Embedding": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.GRU": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.GarNet": [[24, 2, 1, "", "initialize"], [24, 5, 1, "", "ref_impl"]], "hls4ml.model.layers.GlobalPooling1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.GlobalPooling2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.HardActivation": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Input": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.LSTM": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Layer": [[24, 2, 1, "", "add_bias"], [24, 2, 1, "", "add_output_variable"], [24, 2, 1, "", "add_weights"], [24, 2, 1, "", "add_weights_variable"], [24, 6, 1, "", "class_name"], [24, 5, 1, "", "expected_attributes"], [24, 2, 1, "", "get_attr"], [24, 2, 1, "", "get_input_node"], [24, 2, 1, "", "get_input_variable"], [24, 2, 1, "", "get_layer_precision"], [24, 2, 1, "", "get_output_nodes"], [24, 2, 1, "", "get_output_use_map"], [24, 2, 1, "", "get_output_variable"], [24, 2, 1, "", "get_variables"], [24, 2, 1, "", "get_weights"], [24, 2, 1, "", "initialize"], [24, 2, 1, "", "set_attr"]], "hls4ml.model.layers.LayerGroup": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Merge": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.PReLU": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Pooling1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Pooling2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Reshape": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Resize": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.SeparableConv1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.SeparableConv2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.SimpleRNN": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Softmax": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.SymbolicExpression": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.TernaryTanh": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Transpose": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.ZeroPadding1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.ZeroPadding2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.optimizer": [[26, 0, 0, "-", "optimizer"], [27, 0, 0, "-", "passes"]], "hls4ml.model.optimizer.optimizer": [[26, 1, 1, "", "ConfigurableOptimizerPass"], [26, 1, 1, "", "GlobalOptimizerPass"], [26, 1, 1, "", "LayerOptimizerPass"], [26, 1, 1, "", "ModelOptimizerPass"], [26, 1, 1, "", "OptimizerPass"], [26, 1, 1, "", "WrappedOptimizerPass"], [26, 3, 1, "", "extract_optimizers_from_object"], [26, 3, 1, "", "extract_optimizers_from_path"], [26, 3, 1, "", "get_available_passes"], [26, 3, 1, "", "get_backend_passes"], [26, 3, 1, "", "get_optimizer"], [26, 3, 1, "", "layer_optimizer"], [26, 3, 1, "", "model_optimizer"], [26, 3, 1, "", "optimize_model"], [26, 3, 1, "", "optimizer_pass"], [26, 3, 1, "", "register_pass"]], "hls4ml.model.optimizer.optimizer.ConfigurableOptimizerPass": [[26, 2, 1, "", "configure"], [26, 2, 1, "", "get_config"]], "hls4ml.model.optimizer.optimizer.GlobalOptimizerPass": [[26, 2, 1, "", "match"]], "hls4ml.model.optimizer.optimizer.ModelOptimizerPass": [[26, 2, 1, "", "transform"]], "hls4ml.model.optimizer.optimizer.OptimizerPass": [[26, 2, 1, "", "get_name"], [26, 2, 1, "", "match"], [26, 5, 1, "", "name"], [26, 2, 1, "", "transform"]], "hls4ml.model.optimizer.optimizer.WrappedOptimizerPass": [[26, 2, 1, "", "get_name"], [26, 2, 1, "", "match"], [26, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes": [[27, 0, 0, "-", "bn_fuse"], [27, 0, 0, "-", "convert_to_channels_last"], [27, 0, 0, "-", "expand_layer_group"], [27, 0, 0, "-", "fuse_biasadd"], [27, 0, 0, "-", "multi_dense"], [27, 0, 0, "-", "nop"], [27, 0, 0, "-", "precision_merge"], [27, 0, 0, "-", "qkeras"], [27, 0, 0, "-", "stamp"], [27, 0, 0, "-", "transpose_opt"]], "hls4ml.model.optimizer.passes.bn_fuse": [[27, 1, 1, "", "FuseBatchNormalization"]], "hls4ml.model.optimizer.passes.bn_fuse.FuseBatchNormalization": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.convert_to_channels_last": [[27, 1, 1, "", "ChannelsLastConverter"]], "hls4ml.model.optimizer.passes.convert_to_channels_last.ChannelsLastConverter": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.expand_layer_group": [[27, 1, 1, "", "ExpandLayerGroup"]], "hls4ml.model.optimizer.passes.expand_layer_group.ExpandLayerGroup": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.fuse_biasadd": [[27, 1, 1, "", "FuseBiasAdd"]], "hls4ml.model.optimizer.passes.fuse_biasadd.FuseBiasAdd": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.multi_dense": [[27, 1, 1, "", "ReplaceMultidimensionalDenseWithConv"]], "hls4ml.model.optimizer.passes.multi_dense.ReplaceMultidimensionalDenseWithConv": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.nop": [[27, 1, 1, "", "EliminateLinearActivation"]], "hls4ml.model.optimizer.passes.nop.EliminateLinearActivation": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.precision_merge": [[27, 1, 1, "", "SetPrecisionConcat"], [27, 3, 1, "", "get_concat_type"]], "hls4ml.model.optimizer.passes.precision_merge.SetPrecisionConcat": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras": [[27, 1, 1, "", "ApplyAlpha"], [27, 1, 1, "", "ExtractTernaryThreshold"], [27, 1, 1, "", "FuseConsecutiveBatchNormalization"], [27, 1, 1, "", "OutputRoundingSaturationMode"], [27, 1, 1, "", "QKerasFactorizeAlpha"], [27, 3, 1, "", "register_qkeras"]], "hls4ml.model.optimizer.passes.qkeras.ApplyAlpha": [[27, 2, 1, "", "add_bias"], [27, 2, 1, "", "add_weights"], [27, 2, 1, "", "initialize"]], "hls4ml.model.optimizer.passes.qkeras.ExtractTernaryThreshold": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.FuseConsecutiveBatchNormalization": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.OutputRoundingSaturationMode": [[27, 2, 1, "", "match"], [27, 2, 1, "", "precision_string_modify"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.QKerasFactorizeAlpha": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.stamp": [[27, 1, 1, "", "MakeStamp"]], "hls4ml.model.optimizer.passes.stamp.MakeStamp": [[27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.transpose_opt": [[27, 1, 1, "", "RemoveUselessTranspose"]], "hls4ml.model.optimizer.passes.transpose_opt.RemoveUselessTranspose": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.profiling": [[24, 3, 1, "", "activation_types_hlsmodel"], [24, 3, 1, "", "activations_hlsmodel"], [24, 3, 1, "", "activations_keras"], [24, 3, 1, "", "activations_torch"], [24, 3, 1, "", "ap_fixed_WIFS"], [24, 3, 1, "", "array_to_summary"], [24, 3, 1, "", "boxplot"], [24, 3, 1, "", "compare"], [24, 3, 1, "", "get_unoptimized_hlsmodel"], [24, 3, 1, "", "get_ymodel_keras"], [24, 3, 1, "", "histogram"], [24, 3, 1, "", "numerical"], [24, 3, 1, "", "types_boxplot"], [24, 3, 1, "", "types_histogram"], [24, 3, 1, "", "types_hlsmodel"], [24, 3, 1, "", "weights_hlsmodel"], [24, 3, 1, "", "weights_keras"], [24, 3, 1, "", "weights_torch"]], "hls4ml.model.types": [[24, 1, 1, "", "BinaryQuantizer"], [24, 1, 1, "", "CompressedType"], [24, 1, 1, "", "CompressedWeightVariable"], [24, 1, 1, "", "ExponentPrecisionType"], [24, 1, 1, "", "ExponentType"], [24, 1, 1, "", "ExponentWeightVariable"], [24, 1, 1, "", "FixedPrecisionType"], [24, 1, 1, "", "InplaceTensorVariable"], [24, 1, 1, "", "IntegerPrecisionType"], [24, 1, 1, "", "NamedType"], [24, 1, 1, "", "PackedType"], [24, 1, 1, "", "PrecisionType"], [24, 1, 1, "", "QKerasBinaryQuantizer"], [24, 1, 1, "", "QKerasPO2Quantizer"], [24, 1, 1, "", "QKerasQuantizer"], [24, 1, 1, "", "Quantizer"], [24, 1, 1, "", "RoundingMode"], [24, 1, 1, "", "SaturationMode"], [24, 1, 1, "", "Source"], [24, 1, 1, "", "TensorVariable"], [24, 1, 1, "", "TernaryQuantizer"], [24, 1, 1, "", "Variable"], [24, 1, 1, "", "WeightVariable"], [24, 1, 1, "", "XnorPrecisionType"], [24, 3, 1, "", "find_minimum_width"]], "hls4ml.model.types.CompressedWeightVariable": [[24, 2, 1, "", "next"]], "hls4ml.model.types.ExponentWeightVariable": [[24, 2, 1, "", "next"]], "hls4ml.model.types.FixedPrecisionType": [[24, 6, 1, "", "rounding_mode"], [24, 6, 1, "", "saturation_mode"]], "hls4ml.model.types.RoundingMode": [[24, 5, 1, "", "RND"], [24, 5, 1, "", "RND_CONV"], [24, 5, 1, "", "RND_INF"], [24, 5, 1, "", "RND_MIN_INF"], [24, 5, 1, "", "RND_ZERO"], [24, 5, 1, "", "TRN"], [24, 5, 1, "", "TRN_ZERO"], [24, 2, 1, "", "from_string"]], "hls4ml.model.types.SaturationMode": [[24, 5, 1, "", "SAT"], [24, 5, 1, "", "SAT_SYM"], [24, 5, 1, "", "SAT_ZERO"], [24, 5, 1, "", "WRAP"], [24, 2, 1, "", "from_string"]], "hls4ml.model.types.TensorVariable": [[24, 2, 1, "", "get_shape"], [24, 2, 1, "", "size"], [24, 2, 1, "", "size_cpp"]], "hls4ml.model.types.WeightVariable": [[24, 2, 1, "", "next"], [24, 2, 1, "", "update_precision"]], "hls4ml.report": [[28, 0, 0, "-", "quartus_report"], [28, 0, 0, "-", "vivado_report"]], "hls4ml.report.quartus_report": [[28, 3, 1, "", "parse_quartus_report"], [28, 3, 1, "", "read_js_object"], [28, 3, 1, "", "read_quartus_report"]], "hls4ml.report.vivado_report": [[28, 3, 1, "", "parse_vivado_report"], [28, 3, 1, "", "print_vivado_report"], [28, 3, 1, "", "read_vivado_report"]], "hls4ml.utils": [[29, 0, 0, "-", "config"], [29, 0, 0, "-", "example_models"], [29, 0, 0, "-", "fixed_point_utils"], [29, 0, 0, "-", "plot"], [29, 0, 0, "-", "string_utils"], [29, 0, 0, "-", "symbolic_utils"]], "hls4ml.utils.config": [[29, 3, 1, "", "config_from_keras_model"], [29, 3, 1, "", "config_from_onnx_model"], [29, 3, 1, "", "config_from_pytorch_model"], [29, 3, 1, "", "create_config"]], "hls4ml.utils.example_models": [[29, 3, 1, "", "fetch_example_list"], [29, 3, 1, "", "fetch_example_model"]], "hls4ml.utils.fixed_point_utils": [[29, 1, 1, "", "FixedPointEmulator"], [29, 3, 1, "", "ceil_log2"], [29, 3, 1, "", "uint_to_binary"]], "hls4ml.utils.fixed_point_utils.FixedPointEmulator": [[29, 2, 1, "", "exp_float"], [29, 2, 1, "", "inv_float"], [29, 2, 1, "", "set_msb_bits"], [29, 2, 1, "", "to_float"]], "hls4ml.utils.plot": [[29, 3, 1, "", "add_edge"], [29, 3, 1, "", "check_pydot"], [29, 3, 1, "", "model_to_dot"], [29, 3, 1, "", "plot_model"]], "hls4ml.utils.string_utils": [[29, 3, 1, "", "convert_to_pascal_case"], [29, 3, 1, "", "convert_to_snake_case"]], "hls4ml.utils.symbolic_utils": [[29, 1, 1, "", "LUTFunction"], [29, 3, 1, "", "generate_operator_complexity"], [29, 3, 1, "", "init_pysr_lut_functions"], [29, 3, 1, "", "register_pysr_lut_function"]], "hls4ml.writer": [[30, 0, 0, "-", "quartus_writer"], [30, 0, 0, "-", "symbolic_writer"], [30, 0, 0, "-", "vitis_writer"], [30, 0, 0, "-", "vivado_accelerator_writer"], [30, 0, 0, "-", "vivado_writer"], [30, 0, 0, "-", "writers"]], "hls4ml.writer.quartus_writer": [[30, 1, 1, "", "QuartusWriter"]], "hls4ml.writer.quartus_writer.QuartusWriter": [[30, 2, 1, "", "get_max_reuse_factor"], [30, 2, 1, "", "next_pow2"], [30, 2, 1, "", "print_array_to_cpp"], [30, 2, 1, "", "write_activation_tables"], [30, 2, 1, "", "write_bridge"], [30, 2, 1, "", "write_build_script"], [30, 2, 1, "", "write_defines"], [30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_nnet_utils"], [30, 2, 1, "", "write_parameters"], [30, 2, 1, "", "write_project_cpp"], [30, 2, 1, "", "write_project_dir"], [30, 2, 1, "", "write_project_header"], [30, 2, 1, "", "write_tar"], [30, 2, 1, "", "write_test_bench"], [30, 2, 1, "", "write_testbench_parallel"], [30, 2, 1, "", "write_testbench_stream"], [30, 2, 1, "", "write_weights"], [30, 2, 1, "", "write_yml"]], "hls4ml.writer.symbolic_writer": [[30, 1, 1, "", "SymbolicExpressionWriter"]], "hls4ml.writer.symbolic_writer.SymbolicExpressionWriter": [[30, 2, 1, "", "write_build_script"], [30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_nnet_utils"]], "hls4ml.writer.vitis_writer": [[30, 1, 1, "", "VitisWriter"]], "hls4ml.writer.vitis_writer.VitisWriter": [[30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_nnet_utils_overrides"]], "hls4ml.writer.vivado_accelerator_writer": [[30, 1, 1, "", "VivadoAcceleratorWriter"]], "hls4ml.writer.vivado_accelerator_writer.VivadoAcceleratorWriter": [[30, 2, 1, "", "modify_build_script"], [30, 2, 1, "", "write_axi_wrapper"], [30, 2, 1, "", "write_board_script"], [30, 2, 1, "", "write_driver"], [30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_new_tar"], [30, 2, 1, "", "write_wrapper_test"]], "hls4ml.writer.vivado_writer": [[30, 1, 1, "", "VivadoWriter"]], "hls4ml.writer.vivado_writer.VivadoWriter": [[30, 2, 1, "", "print_array_to_cpp"], [30, 2, 1, "", "write_bridge"], [30, 2, 1, "", "write_build_script"], [30, 2, 1, "", "write_defines"], [30, 2, 1, "", "write_generated_code"], [30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_nnet_utils"], [30, 2, 1, "", "write_parameters"], [30, 2, 1, "", "write_project_cpp"], [30, 2, 1, "", "write_project_dir"], [30, 2, 1, "", "write_project_header"], [30, 2, 1, "", "write_tar"], [30, 2, 1, "", "write_test_bench"], [30, 2, 1, "", "write_weights"], [30, 2, 1, "", "write_yml"]], "hls4ml.writer.writers": [[30, 1, 1, "", "Writer"], [30, 3, 1, "", "get_writer"], [30, 3, 1, "", "register_writer"]], "hls4ml.writer.writers.Writer": [[30, 2, 1, "", "write_hls"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:data", "5": "py:attribute", "6": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "data", "Python data"], "5": ["py", "attribute", "Python attribute"], "6": ["py", "property", "Python property"]}, "titleterms": {"vivadoacceler": 0, "backend": [0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 33], "neural": 0, "network": 0, "overlai": 0, "exampl": [0, 1, 38, 39], "extens": 1, "api": [1, 3], "complet": 1, "fifo": 2, "buffer": 2, "depth": 2, "optim": [2, 26, 27, 34], "configur": 3, "1": [3, 37], "python": 3, "2": [3, 37], "yaml": 3, "file": 3, "top": 3, "level": 3, "per": 3, "layer": [3, 24], "detail": [3, 33], "convert": [3, 20, 21, 22, 23, 31], "hl": [3, 4], "code": 3, "model": [4, 21, 24, 25, 26, 27, 39], "class": 4, "write": 4, "method": 4, "compil": 4, "predict": 4, "build": [4, 31], "trace": 4, "profil": [5, 24], "hls4ml": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38], "packag": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "subpackag": [6, 7, 8, 10, 12, 14, 16, 18, 20, 24, 26], "modul": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "content": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "submodul": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "templat": 7, "fpga": [8, 9], "fpga_backend": 8, "fpga_lay": 8, "fpga_typ": 8, "pass": [9, 11, 13, 15, 17, 19, 27, 34], "bn_quant": 9, "bram_weight": 9, "clone": 9, "codegen": 9, "embed": 9, "final_reshap": 9, "fix_softmax_table_s": 9, "inplace_parallel_reshap": 9, "inplace_stream_flatten": 9, "remove_softmax": 9, "repack_stream": 9, "xnor_pool": 9, "quartu": [10, 11], "quartus_backend": 10, "convolution_templ": [11, 17], "convolution_winograd": 11, "core_templ": [11, 17], "merge_templ": [11, 17], "pointwis": [11, 17], "pooling_templ": [11, 17], "quantization_templ": [11, 17], "recurrent_templ": [11, 17], "reshaping_templ": [11, 17], "resource_strategi": [11, 17], "transform_typ": [11, 17], "symbol": [12, 13], "symbolic_backend": 12, "expr_templ": 13, "validate_lut": 13, "viti": [14, 15], "vitis_backend": 14, "feature_check": 15, "vivado": [16, 17], "vivado_backend": 16, "broadcast_stream": 17, "conv_same_pad": 17, "conv_stream": 17, "fifo_depth_optim": [17, 19], "garnet_templ": 17, "vivado_acceler": [18, 19], "vivado_accelerator_backend": 18, "vivado_accelerator_config": 18, "keras_to_hl": 20, "onnx_to_hl": 20, "pytorch_to_hl": 20, "util": [20, 29], "kera": 21, "convolut": [21, 22, 23], "core": [21, 22, 23], "graph": [21, 24], "merg": [21, 22, 23], "pool": [21, 22, 23], "qkera": [21, 27], "recurr": 21, "reshap": [21, 22, 23], "onnx": 22, "pytorch": 23, "attribut": 24, "type": [24, 33], "flow": [25, 34], "bn_fuse": 27, "convert_to_channels_last": 27, "expand_layer_group": 27, "fuse_biasadd": 27, "multi_dens": 27, "nop": 27, "precision_merg": 27, "stamp": 27, "transpose_opt": 27, "report": [28, 31], "quartus_report": 28, "vivado_report": 28, "config": [29, 31], "example_model": 29, "fixed_point_util": 29, "plot": 29, "string_util": 29, "symbolic_util": 29, "writer": 30, "quartus_writ": 30, "symbolic_writ": 30, "vitis_writ": 30, "vivado_accelerator_writ": 30, "vivado_writ": 30, "command": 31, "line": 31, "interfac": 31, "deprec": [31, 38], "overview": 31, "concept": 32, "The": 32, "inspir": 32, "solut": 32, "how": 32, "work": 32, "softwar": 33, "frontend": 33, "i": 33, "o": 33, "io_parallel": 33, "io_stream": 33, "intern": 34, "structur": 34, "welcom": 35, "s": 35, "document": 35, "project": 35, "statu": [35, 39], "tutori": 35, "citat": 36, "acknowledg": 36, "contributor": 36, "fund": 36, "releas": 37, "note": 37, "v0": 37, "8": 37, "0": 37, "edelweiss": 37, "0rc1": 37, "7": 37, "delphinium": 37, "rc1": 37, "6": 37, "cori": 37, "5": 37, "bartsia": 37, "beta": 37, "4": 37, "aster": 37, "3": 37, "setup": 38, "quick": 38, "start": 38, "instal": 38, "develop": 38, "version": 38, "depend": 38, "get": 38, "cli": 38, "further": 38, "help": 38, "exist": 38, "uninstal": 38, "featur": 39}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["advanced/accelerator", "advanced/extension", "advanced/fifo_depth", "api/configuration", "api/hls-model", "api/profiling", "autodoc/hls4ml", "autodoc/hls4ml.backends", "autodoc/hls4ml.backends.fpga", "autodoc/hls4ml.backends.fpga.passes", "autodoc/hls4ml.backends.quartus", "autodoc/hls4ml.backends.quartus.passes", "autodoc/hls4ml.backends.symbolic", "autodoc/hls4ml.backends.symbolic.passes", "autodoc/hls4ml.backends.vitis", "autodoc/hls4ml.backends.vitis.passes", "autodoc/hls4ml.backends.vivado", "autodoc/hls4ml.backends.vivado.passes", "autodoc/hls4ml.backends.vivado_accelerator", "autodoc/hls4ml.backends.vivado_accelerator.passes", "autodoc/hls4ml.converters", "autodoc/hls4ml.converters.keras", "autodoc/hls4ml.converters.onnx", "autodoc/hls4ml.converters.pytorch", "autodoc/hls4ml.model", "autodoc/hls4ml.model.flow", "autodoc/hls4ml.model.optimizer", "autodoc/hls4ml.model.optimizer.passes", "autodoc/hls4ml.report", "autodoc/hls4ml.utils", "autodoc/hls4ml.writer", "command", "concepts", "details", "flows", "index", "reference", "release_notes", "setup", "status"], "filenames": ["advanced/accelerator.rst", "advanced/extension.rst", "advanced/fifo_depth.rst", "api/configuration.rst", "api/hls-model.rst", "api/profiling.rst", "autodoc/hls4ml.rst", "autodoc/hls4ml.backends.rst", "autodoc/hls4ml.backends.fpga.rst", "autodoc/hls4ml.backends.fpga.passes.rst", "autodoc/hls4ml.backends.quartus.rst", "autodoc/hls4ml.backends.quartus.passes.rst", "autodoc/hls4ml.backends.symbolic.rst", "autodoc/hls4ml.backends.symbolic.passes.rst", "autodoc/hls4ml.backends.vitis.rst", "autodoc/hls4ml.backends.vitis.passes.rst", "autodoc/hls4ml.backends.vivado.rst", "autodoc/hls4ml.backends.vivado.passes.rst", "autodoc/hls4ml.backends.vivado_accelerator.rst", "autodoc/hls4ml.backends.vivado_accelerator.passes.rst", "autodoc/hls4ml.converters.rst", "autodoc/hls4ml.converters.keras.rst", "autodoc/hls4ml.converters.onnx.rst", "autodoc/hls4ml.converters.pytorch.rst", "autodoc/hls4ml.model.rst", "autodoc/hls4ml.model.flow.rst", "autodoc/hls4ml.model.optimizer.rst", "autodoc/hls4ml.model.optimizer.passes.rst", "autodoc/hls4ml.report.rst", "autodoc/hls4ml.utils.rst", "autodoc/hls4ml.writer.rst", "command.rst", "concepts.rst", "details.rst", "flows.rst", "index.rst", "reference.rst", "release_notes.rst", "setup.rst", "status.rst"], "titles": ["VivadoAccelerator Backend", "Extension API", "FIFO Buffer Depth Optimization", "Configuration", "HLS Model Class", "Profiling", "hls4ml package", "hls4ml.backends package", "hls4ml.backends.fpga package", "hls4ml.backends.fpga.passes package", "hls4ml.backends.quartus package", "hls4ml.backends.quartus.passes package", "hls4ml.backends.symbolic package", "hls4ml.backends.symbolic.passes package", "hls4ml.backends.vitis package", "hls4ml.backends.vitis.passes package", "hls4ml.backends.vivado package", "hls4ml.backends.vivado.passes package", "hls4ml.backends.vivado_accelerator package", "hls4ml.backends.vivado_accelerator.passes package", "hls4ml.converters package", "hls4ml.converters.keras package", "hls4ml.converters.onnx package", "hls4ml.converters.pytorch package", "hls4ml.model package", "hls4ml.model.flow package", "hls4ml.model.optimizer package", "hls4ml.model.optimizer.passes package", "hls4ml.report package", "hls4ml.utils package", "hls4ml.writer package", "Command Line Interface (deprecated)", "Concepts", "Software Details", "Optimizer Passes and Flows", "Welcome to hls4ml\u2019s documentation!", "Citation, Acknowledgments, and Contributors", "Release Notes", "Setup and Quick Start", "Status and Features"], "terms": {"The": [0, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 38, 39], "hls4ml": [0, 1, 2, 3, 4, 5, 33, 34, 36, 37, 39], "leverag": 0, "pynq": [0, 18, 37], "softwar": [0, 36], "stack": [0, 18], "easili": 0, "deploi": 0, "model": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 29, 30, 31, 32, 33, 34, 35, 37, 38], "support": [0, 1, 3, 4, 20, 29, 31, 33, 36, 37, 38, 39], "devic": [0, 10, 20], "current": [0, 3, 24, 31, 33, 35, 36], "follow": [0, 20, 24, 31, 32, 36, 37, 38], "board": [0, 18, 20, 37], "z2": [0, 18, 37], "part": [0, 1, 2, 3, 7, 10, 12, 16, 18, 20, 24, 29, 32, 37], "xc7z020clg400": [0, 2], "1": [0, 1, 2, 5, 8, 10, 24, 27, 29, 32, 38, 39], "zcu102": [0, 37], "xczu9eg": 0, "ffvb1156": 0, "2": [0, 5, 10, 12, 16, 18, 20, 24, 29, 36, 38, 39], "e": [0, 3, 5, 7, 12, 16, 20, 24, 27, 31, 34, 36, 37], "alveo": [0, 18, 37], "u50": 0, "xcu50": 0, "fsvh2104": 0, "u250": 0, "xcu250": 0, "figd2104": 0, "2l": 0, "u200": 0, "xcu200": 0, "fsgd2104": 0, "u280": 0, "xcu280": 0, "fsvh2892": 0, "principl": [0, 3], "can": [0, 1, 2, 3, 4, 5, 8, 18, 20, 24, 25, 26, 29, 31, 32, 33, 34, 35, 37, 38, 39], "extend": [0, 1, 5, 7, 8, 37], "ani": [0, 1, 3, 7, 20, 26, 30, 31, 34, 36, 37, 38], "For": [0, 1, 2, 3, 9, 11, 24, 29, 31, 32, 33, 34, 35, 36, 37, 38], "zynq": 0, "base": [0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 29, 30, 34, 38], "ar": [0, 1, 3, 4, 5, 7, 8, 9, 20, 24, 26, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39], "two": [0, 1, 3, 5, 8, 20, 24, 29], "compon": [0, 1], "an": [0, 2, 3, 4, 7, 9, 18, 20, 24, 25, 26, 27, 29, 31, 32, 33, 34, 36, 37, 38], "arm": 0, "process": [0, 8, 24, 29, 32, 34], "system": [0, 24], "ps": 0, "fpga": [0, 2, 3, 5, 6, 7, 10, 20, 29, 31, 32, 34, 35, 36, 37, 38], "programm": 0, "logic": [0, 37], "pl": 0, "variou": [0, 35, 38], "intefac": 0, "between": [0, 3, 9, 17, 24, 32, 33, 37], "In": [0, 1, 2, 3, 5, 20, 33, 34, 38], "project": [0, 3, 4, 7, 8, 10, 18, 20, 24, 28, 29, 30, 31, 32, 36, 37, 38], "circuit": 0, "present": [0, 20], "hardwar": [0, 18, 32], "librari": [0, 3, 8, 20, 24, 34, 37, 38], "call": [0, 1, 5, 7, 20, 24, 25, 26, 30, 31, 32, 37], "access": [0, 37], "through": [0, 1, 2, 3, 4, 20, 33, 34, 35, 37], "python": [0, 5, 8, 18, 20, 30, 31, 35, 37, 38], "api": [0, 4, 20, 31, 37, 38], "we": [0, 1, 2, 3, 4, 8, 31, 32, 33, 35, 36, 37, 38, 39], "creat": [0, 3, 7, 10, 12, 16, 18, 20, 24, 25, 26, 29, 30, 31, 32, 34, 35, 37, 38], "custom": [0, 1, 7, 27, 29, 30, 37], "which": [0, 1, 2, 3, 5, 8, 18, 20, 24, 25, 26, 27, 29, 30, 32, 33, 34, 39], "send": [0, 33], "receiv": 0, "data": [0, 3, 5, 17, 18, 20, 24, 27, 29, 32, 33, 34, 36, 37], "via": [0, 24, 38], "axi": [0, 1, 18, 30], "stream": [0, 3, 9, 17, 18, 24, 32, 33, 37], "target": [0, 3, 7, 10, 12, 16, 18, 20, 34, 37], "program": [0, 31, 32, 36], "us": [0, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16, 17, 18, 20, 24, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38], "bitfil": [0, 18], "gener": [0, 2, 3, 4, 8, 9, 17, 18, 20, 24, 26, 29, 30, 31, 32, 33, 34, 37, 38], "thi": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 16, 20, 24, 25, 26, 27, 29, 31, 32, 33, 34, 36, 38, 39], "taken": [0, 32], "from": [0, 1, 2, 3, 4, 5, 8, 20, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39], "7": [0, 24], "tutori": [0, 38], "specif": [0, 3, 7, 8, 24, 26, 27, 29, 32, 34, 36], "ll": 0, "first": [0, 2, 5, 18, 20, 24, 32, 33, 36, 37, 38], "kera": [0, 1, 2, 3, 4, 5, 6, 20, 24, 29, 31, 32, 33, 34, 37, 38, 39], "config": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 16, 18, 20, 22, 24, 30, 37, 38], "import": [0, 2, 3, 4, 5, 32, 36, 38], "util": [0, 2, 3, 4, 6, 32, 33, 37, 38], "config_from_keras_model": [0, 2, 3, 4, 29, 37], "granular": [0, 2, 3, 4, 5, 29, 37], "name": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 16, 17, 18, 20, 24, 25, 26, 27, 29, 30, 31, 36, 37], "hls_model": [0, 2, 4, 5, 24, 37, 38], "convert": [0, 1, 2, 4, 5, 6, 8, 24, 27, 29, 32, 34, 37, 38], "convert_from_keras_model": [0, 1, 2, 4, 20, 29], "hls_config": [0, 1, 2, 4, 20, 29, 37], "output_dir": [0, 1, 2, 4, 20, 29], "hls4ml_prj_pynq": 0, "build": [0, 2, 10, 12, 14, 16, 18, 24, 30, 32, 37, 38], "true": [0, 2, 3, 10, 12, 14, 16, 18, 20, 24, 28, 29, 30], "after": [0, 3, 4, 5, 8, 9, 24, 27, 32, 34, 37, 38], "command": [0, 4, 37, 38], "complet": [0, 3], "need": [0, 1, 5, 7, 8, 20, 29, 32, 37, 38], "packag": [0, 32, 35, 37, 38, 39], "up": [0, 31, 32, 37], "handoff": 0, "driver": [0, 18], "copi": [0, 30, 37], "mkdir": 0, "p": [0, 31, 37, 38], "cp": 0, "myproject_vivado_acceler": 0, "project_1": 0, "run": [0, 3, 5, 10, 31, 32, 34, 37, 38], "impl_1": 0, "design_1_wrapp": 0, "bit": [0, 3, 5, 18, 24, 29, 32, 37], "hls4ml_nn": 0, "src": [0, 29], "sources_1": 0, "bd": 0, "design_1": 0, "hw_handoff": 0, "hwh": 0, "axi_stream_driv": [0, 37], "py": [0, 37], "tar": [0, 30], "czvf": 0, "gz": [0, 30], "c": [0, 5, 8, 18, 24, 26, 30, 31, 37, 38], "Then": [0, 2, 3], "untar": 0, "final": [0, 1, 5, 9, 24, 32, 34, 37], "neuralnetworkoverlai": 0, "object": [0, 4, 5, 7, 8, 18, 20, 24, 25, 26, 29, 30, 37], "download": [0, 29, 38], "onto": 0, "also": [0, 1, 3, 4, 24, 32, 34, 38, 39], "must": [0, 3, 7, 18, 24, 32, 34, 38], "provid": [0, 3, 5, 7, 10, 12, 16, 20, 24, 31, 32, 34, 37, 38, 39], "shape": [0, 1, 20, 24, 29, 34, 37], "our": [0, 1, 4, 32, 35, 36, 38], "input": [0, 1, 3, 4, 5, 8, 9, 17, 18, 20, 24, 27, 29, 30, 32, 33, 34, 37], "output": [0, 1, 3, 4, 5, 7, 8, 9, 17, 18, 20, 24, 27, 29, 30, 31, 32, 33, 34, 37], "x_test": 0, "y_test": 0, "respect": [0, 1, 24, 32], "alloc": [0, 37], "buffer": [0, 33, 34], "transfer": 0, "predict": [0, 1, 3, 5, 24, 32, 37], "method": [0, 3, 5, 7, 10, 12, 16, 24, 26, 27, 33], "return": [0, 1, 4, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 34, 37, 38], "y_hw": 0, "nn": [0, 33, 37, 39], "latenc": [0, 3, 28, 32, 37], "throughput": [0, 32], "profil": [0, 4, 6, 37, 38], "nativ": 1, "larg": [1, 2, 18, 32], "number": [1, 3, 8, 18, 20, 24, 29, 31, 32, 34, 36, 37, 38], "neural": [1, 2, 3, 5, 11, 32, 33, 36, 39], "network": [1, 2, 3, 5, 11, 24, 32, 33, 36, 39], "layer": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 19, 20, 26, 27, 29, 30, 32, 33, 34, 37], "But": 1, "what": [1, 3, 33, 34, 37], "desir": [1, 24, 34], "If": [1, 3, 4, 7, 8, 20, 24, 25, 26, 29, 36, 38], "standard": 1, "enough": [1, 34, 38], "its": [1, 3, 4, 20, 24, 34], "implement": [1, 2, 3, 7, 8, 10, 12, 16, 17, 20, 24, 32, 33, 34, 35, 37, 38], "would": [1, 5, 32, 35, 37], "benefit": [1, 32, 36], "commun": [1, 32, 36], "whole": [1, 29, 31], "welcom": [1, 3], "contribut": [1, 2, 33, 37], "add": [1, 2, 7, 20, 24, 25, 26, 30, 34, 37], "set": [1, 2, 3, 4, 20, 24, 26, 27, 29, 30, 32, 34, 37, 38], "howev": [1, 20, 32, 34], "somewhat": 1, "nich": 1, "anoth": [1, 24, 34], "approach": 1, "take": [1, 24, 32, 38], "document": [1, 3, 4, 20, 29, 31, 37, 38, 39], "walk": 1, "end": [1, 20, 24, 29], "test": [1, 3, 5, 20, 24, 29, 31, 37, 38, 39], "suit": [1, 32], "To": [1, 3, 5, 27, 31, 32, 34, 38], "requir": [1, 3, 9, 18, 20, 24, 25, 32, 34, 37, 38], "your": [1, 3, 4, 5, 31, 32, 35, 38], "class": [1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 29, 30, 34], "equival": [1, 24, 37], "parser": [1, 33, 37], "hl": [1, 8, 10, 18, 20, 24, 26, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39], "templat": [1, 3, 6, 11, 34, 37], "function": [1, 4, 7, 8, 20, 24, 26, 29, 30, 32, 34, 35, 37, 38], "registr": 1, "sourc": [1, 2, 7, 24, 30, 32, 35], "code": [1, 5, 24, 30, 32, 34, 38], "concret": [1, 24], "let": [1, 3, 32, 35], "s": [1, 3, 4, 7, 8, 20, 24, 29, 31, 32, 34, 36, 37], "sai": 1, "krevers": 1, "revers": 1, "order": [1, 2, 32, 33, 34, 37, 38], "last": [1, 20, 24, 38], "dimens": [1, 20, 24], "tf": [1, 27], "hypothet": 1, "def": [1, 26], "__init__": 1, "self": [1, 26, 29], "super": 1, "defin": [1, 2, 3, 13, 18, 24, 28, 30, 32, 34, 38], "hrevers": 1, "inherit": [1, 34, 37], "initi": [1, 3, 7, 8, 9, 10, 12, 16, 17, 18, 24, 26, 27, 29, 32, 37], "inp": 1, "get_input_vari": [1, 24], "dim": [1, 3, 37], "dim_nam": [1, 24], "add_output_vari": [1, 24], "A": [1, 3, 4, 20, 24, 25, 26, 27, 28, 29, 34, 37, 39], "read": [1, 4, 28], "attribut": [1, 6, 7, 8, 9, 17, 27, 34, 37], "instanc": [1, 7, 24, 26, 29, 30], "popul": [1, 18, 34], "dictionari": [1, 3, 4, 20, 24, 28, 29, 37], "It": [1, 3, 4, 5, 20, 24, 29, 34], "list": [1, 4, 7, 8, 20, 24, 25, 26, 27, 29, 34, 38, 39], "one": [1, 3, 18, 20, 24, 32, 33], "sjape": 1, "each": [1, 2, 3, 4, 5, 8, 20, 24, 27, 29, 32, 33, 34, 38], "case": [1, 3, 5, 20, 24, 32, 34, 35, 37], "singl": [1, 24, 27, 32, 33, 34], "same": [1, 20, 24], "parse_reverse_lay": 1, "keras_lay": [1, 20, 21], "input_nam": [1, 20, 21, 24], "input_shap": [1, 2, 20, 21, 22], "data_read": [1, 20, 21], "class_nam": [1, 20, 24], "n_in": [1, 3, 8, 11], "0": [1, 3, 8, 10, 20, 24, 27, 29, 36, 38, 39], "none": [1, 3, 5, 7, 8, 9, 12, 17, 18, 20, 24, 25, 26, 27, 28, 29], "next": [1, 3, 18, 24, 34, 38], "actual": [1, 5, 24], "implementaton": 1, "written": [1, 29], "header": [1, 30], "file": [1, 5, 7, 8, 20, 24, 28, 29, 30, 31, 37, 38], "nnet_revers": 1, "h": [1, 2, 3, 24, 30, 31, 38], "ifndef": 1, "nnet_reverse_h_": 1, "includ": [1, 2, 3, 24, 26, 29, 35, 39], "nnet_common": 1, "namespac": 1, "nnet": [1, 3, 11], "struct": [1, 3, 11], "reverse_config": 1, "static": [1, 3, 11], "const": [1, 3, 11], "unsign": [1, 3, 11, 24, 37], "10": [1, 20, 36, 37], "data_t": [1, 8], "typenam": 1, "config_t": 1, "void": 1, "int": [1, 8, 20, 24, 29, 37], "i": [1, 3, 24, 27, 29], "endif": 1, "now": [1, 37], "These": [1, 5, 7, 8, 27], "determin": [1, 2, 8, 24, 32], "how": [1, 2, 3, 31, 34, 35, 38], "signatur": [1, 20], "rev_config_templ": 1, "index": [1, 8, 11, 20, 24], "n": [1, 3, 11, 29, 37, 39], "rev_function_templ": 1, "input_t": [1, 3], "rev_include_list": 1, "nnet_util": [1, 7, 30], "hreverseconfigtempl": 1, "backend": [1, 2, 3, 6, 20, 24, 25, 26, 29, 34, 37, 38, 39], "layerconfigtempl": [1, 7, 9, 11, 17], "format": [1, 3, 5, 7, 9, 11, 17, 20, 24, 27, 29, 37], "node": [1, 7, 9, 11, 13, 15, 17, 19, 20, 22, 24, 26, 27, 34, 37], "param": [1, 17, 29, 30], "_default_config_param": 1, "hreversefunctiontempl": 1, "functioncalltempl": [1, 7, 9, 11, 17], "include_head": [1, 7], "_default_function_param": 1, "tell": 1, "about": [1, 24, 29, 31, 34, 38], "exist": [1, 7, 24, 25, 26, 27, 34, 37], "new": [1, 7, 8, 24, 26, 32, 34, 35, 37, 38], "regist": [1, 7, 20, 24, 25, 26, 29, 34, 37], "k": 1, "handler": [1, 20], "pass": [1, 2, 7, 8, 10, 12, 14, 16, 18, 20, 24, 26, 29, 33, 37], "particular": [1, 2, 3, 31, 33, 34, 36, 38], "valid": [1, 5, 8, 12, 13, 14, 16, 18, 20, 24, 31, 37], "both": [1, 3, 5], "vivado": [1, 2, 3, 6, 7, 20, 29, 30, 31, 33, 34, 37, 38, 39], "quartu": [1, 6, 7, 20, 28, 34, 37, 38], "register_keras_layer_handl": [1, 20], "ir": 1, "register_lay": [1, 24], "backend_id": 1, "optim": [1, 3, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 24, 25, 32, 33, 37], "get_backend": [1, 3, 7], "register_pass": [1, 7, 26, 34], "remove_duplicate_revers": 1, "removeduplicaterevers": 1, "flow": [1, 2, 6, 7, 10, 12, 16, 18, 24, 26, 33, 37], "f": [1, 29, 31, 38], "lower": [1, 32], "given": [1, 5, 7, 9, 11, 13, 15, 17, 18, 20, 24, 26, 27, 28, 29, 32, 34, 39], "register_templ": [1, 7], "register_sourc": [1, 7], "compar": [1, 5, 24, 32, 37], "work": [1, 3, 5, 8, 20, 26, 29, 37, 38], "kmodel": 1, "sequenti": [1, 2, 3, 32, 37], "8": [1, 3, 36, 39], "relu": [1, 2, 3], "x": [1, 3, 4, 5, 24, 29, 30, 32, 37], "np": [1, 37], "random": 1, "randint": 1, "5": [1, 2, 3, 8, 10, 12, 16, 18, 20, 24], "dtype": [1, 24], "int32": 1, "kre": 1, "hmodel": 1, "str": [1, 7, 8, 18, 20, 24, 25, 26, 29, 30], "hls4mlprj_extensions_": 1, "io_typ": [1, 2, 3, 10, 12, 16, 18, 20, 33, 37], "io_parallel": [1, 3, 9, 10, 12, 16, 18, 20, 30, 37], "precis": [1, 3, 5, 8, 13, 18, 20, 24, 27, 29, 32, 36, 37], "ap_int": [1, 3], "6": [1, 3, 20, 24, 29], "reusefactor": [1, 3, 5, 20, 37], "compil": [1, 8, 10, 12, 18, 20, 24, 27, 37, 38], "hre": 1, "astyp": 1, "float32": 1, "assert_array_equ": 1, "With": [2, 32, 33], "io_stream": [2, 3, 9, 18, 20, 30, 37], "io": [2, 33, 37], "type": [2, 3, 5, 6, 7, 8, 9, 20, 25, 26, 27, 28, 29, 30, 31, 34, 37], "connect": [2, 24, 33, 34, 37, 39], "subsequ": [2, 33, 37], "out": [2, 33, 34, 37, 38, 39], "overal": [2, 33, 37], "resourc": [2, 3, 5, 10, 28, 32, 33, 37, 38], "design": [2, 8, 18, 20, 29, 32, 33], "impact": [2, 33], "bram": [2, 33, 37], "lut": [2, 13, 20, 29, 33, 37], "becaus": [2, 5, 9, 33], "have": [2, 3, 4, 9, 20, 24, 25, 31, 33, 34, 37], "complex": [2, 29, 32, 33], "architectur": [2, 3, 30, 32, 33, 37, 39], "hard": [2, 24, 33], "know": [2, 33, 35], "priori": [2, 33], "correct": [2, 9, 24, 27, 33, 34, 37], "By": [2, 20, 24, 33], "default": [2, 3, 5, 7, 8, 10, 12, 16, 18, 20, 24, 25, 26, 27, 29, 30, 33, 34, 37, 38], "chose": [2, 33], "most": [2, 3, 29, 32, 33], "conserv": [2, 33], "possibl": [2, 3, 5, 24, 29, 32, 33, 37], "result": [2, 3, 4, 5, 8, 24, 28, 29, 32, 33], "unnecessari": [2, 33], "overutil": [2, 33], "reduc": [2, 5, 32, 33, 37], "ha": [2, 3, 5, 7, 10, 12, 16, 18, 20, 25, 26, 29, 31, 32, 34, 39], "been": [2, 7, 10, 12, 16, 18, 20, 24, 25, 26, 31, 32, 37], "develop": [2, 3, 18, 35, 36, 37, 39], "509": [2, 37], "correctli": [2, 20, 24, 37], "size": [2, 3, 8, 20, 24, 29, 32, 37], "analyz": 2, "rtl": [2, 31, 37], "cosimul": [2, 37], "resiz": [2, 24], "fifo_depth_optim": [2, 7, 16, 18, 37], "simul": [2, 3, 4, 5, 24, 31, 37, 38], "100": 2, "000": 2, "estim": [2, 10], "maximum": 2, "occup": 2, "onc": [2, 9, 38], "valu": [2, 4, 5, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 24, 26, 27, 32, 34], "plu": 2, "As": [2, 5, 20, 24, 32, 38], "exampl": [2, 3, 5, 20, 24, 26, 29, 31, 33, 34, 36, 37], "show": [2, 5, 31, 38], "below": [2, 3, 5, 31, 34, 39], "inspir": 2, "github": [2, 29, 35, 36, 37, 38, 39], "gist": 2, "simpl": [2, 3, 4, 37], "tensorflow": [2, 31, 37, 38], "dens": [2, 3, 5, 24, 27, 33, 34, 37], "64": 2, "16": [2, 3, 20, 24, 29, 37], "fc1": [2, 3, 5], "activ": [2, 3, 5, 8, 24, 27, 30, 32, 37], "32": 2, "fc2": 2, "fc3": 2, "softmax": [2, 24, 37], "get_optim": [2, 26, 27], "configur": [2, 4, 5, 7, 10, 12, 16, 20, 24, 26, 27, 29, 31, 32, 34, 35, 37, 38], "profiling_fifo_depth": [2, 17], "100_000": 2, "hls4mlprj_fifo_depth_opt": 2, "reset": [2, 12, 14, 16, 18, 31], "fals": [2, 3, 8, 10, 12, 14, 16, 18, 20, 24, 28, 29, 37], "csim": [2, 4, 12, 14, 16, 18, 20, 38], "synth": [2, 10, 12, 14, 16, 18, 38], "cosim": [2, 12, 14, 16, 18, 20, 38], "more": [2, 3, 5, 9, 20, 29, 31, 32, 37, 38], "detail": [2, 31, 32, 35, 38], "see": [2, 3, 20, 24, 29, 33, 34, 35, 37, 38, 39], "borra": 2, "et": 2, "al": 2, "open": [2, 5, 28, 32, 35, 36], "ml": [2, 39], "codesign": [2, 36], "mlperf": 2, "tini": 2, "benchmark": 2, "2022": [2, 36, 38, 39], "wai": 3, "page": [3, 4, 31, 32, 35, 36, 38, 39], "usag": [3, 4, 5, 10, 28, 31, 37], "note": [3, 4, 7, 18, 20, 24, 32, 34, 38, 39], "One": [3, 20], "rememb": 3, "user": [3, 7, 13, 20, 24, 26, 29, 31, 32, 34], "respons": 3, "There": [3, 34, 38], "automat": [3, 20, 32, 38], "normal": [3, 5, 8, 24, 37], "so": [3, 8, 24, 27, 29, 32, 35, 37], "done": [3, 9, 32, 38], "train": [3, 5, 32, 37, 38], "you": [3, 4, 5, 31, 35, 36, 37, 38, 39], "might": [3, 5, 38], "want": [3, 4, 24, 38], "checkout": [3, 37], "section": [3, 4, 18, 31, 33, 34, 38, 39], "quickli": [3, 4], "advanc": [3, 4, 36], "them": [3, 4, 24, 29, 34, 37], "chang": [3, 26, 27, 29, 34, 37], "reus": [3, 11, 20, 24, 29, 32], "factor": [3, 9, 20, 24, 29, 32, 37], "Or": 3, "weight": [3, 5, 11, 17, 20, 24, 27, 30, 31, 32, 34, 37, 38], "layernam": 3, "ap_fix": [3, 20, 29], "4": [3, 5, 24, 36, 38, 39], "better": [3, 37], "understand": [3, 38], "hierachi": 3, "refer": [3, 4, 11, 18, 20, 31, 32, 37], "yml": [3, 5, 31, 37, 38], "here": [3, 4, 38], "look": [3, 20, 32, 37], "like": [3, 20, 24, 29, 31, 32, 35], "outputdir": [3, 20], "my": [3, 20, 29, 31, 38], "projectnam": [3, 20], "myproject": [3, 20, 29, 30], "kerasjson": 3, "keras_3lay": [3, 29, 38], "json": [3, 18, 20, 29, 31, 37, 38], "kerash5": [3, 20, 37], "keras_3layer_weight": 3, "h5": [3, 20, 31, 37], "save": [3, 29, 32], "without": [3, 7, 20, 24], "suppli": [3, 4], "inputdata": 3, "keras_3layer_input_featur": 3, "dat": [3, 20, 30], "outputpredict": 3, "keras_3layer_predict": 3, "xcvu13p": [3, 16, 20], "flga2577": [3, 12, 16, 20], "clockperiod": [3, 20], "iotyp": [3, 20, 37], "option": [3, 5, 7, 8, 10, 18, 20, 24, 25, 26, 28, 29, 30, 31, 32, 37, 38], "hlsconfig": [3, 20, 24], "strategi": [3, 37], "layertyp": 3, "compress": [3, 24, 32, 36], "go": [3, 38, 39], "basic": [3, 24, 38], "setup": [3, 31, 32, 37, 39], "paramet": [3, 7, 8, 9, 10, 11, 13, 15, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 30, 32, 34, 37, 38], "directori": [3, 7, 8, 20, 24, 28, 29, 30, 31, 37, 38, 39], "where": [3, 4, 20, 24, 28, 29], "appear": [3, 24], "ip": [3, 31, 32, 34, 37], "produc": [3, 5, 8, 24, 32, 33, 34], "store": [3, 9, 24, 29, 34], "path": [3, 7, 20, 29], "those": [3, 24, 31, 36], "obtain": [3, 8, 29], "just": [3, 4, 24, 31], "field": 3, "aritifici": 3, "abov": [3, 32, 34], "found": [3, 20, 26, 28, 35, 38], "npy": [3, 20], "suggest": 3, "depend": [3, 5, 8, 25, 32, 34, 37, 39], "get": [3, 4, 18, 20, 25, 31, 32], "start": [3, 5, 18, 20, 29, 31, 34], "point": [3, 5, 24, 27, 29, 32], "necessari": [3, 27, 32], "create_initial_config": [3, 7, 10, 12, 16, 18, 29], "consid": [3, 32], "xilinx": [3, 38], "virtex": 3, "ultrascal": 3, "vu13p": [3, 37], "clock": [3, 18, 20, 29], "period": [3, 18, 20], "ns": 3, "algorithm": [3, 8, 11, 32, 35, 36], "some": [3, 5, 20, 34, 37, 38], "structur": [3, 37], "intermedi": [3, 37], "arrai": [3, 4, 9, 24, 30, 33, 37], "fulli": [3, 39], "unrol": [3, 37], "typic": [3, 32], "ram": 3, "effici": [3, 32], "scalabl": 3, "mechan": [3, 24], "repres": [3, 5, 7, 20, 24, 25, 29, 32, 34], "consum": 3, "manner": 3, "fifo": [3, 24, 33, 34, 37], "instead": [3, 8, 20, 37], "inform": [3, 11, 20, 24, 29, 32, 34, 38], "parallel": [3, 8, 32, 33, 37], "pipelin": [3, 32, 37], "interv": [3, 32, 37], "either": [3, 8], "hl4ml": 3, "larger": [3, 33, 37], "than": [3, 9, 37], "should": [3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 19, 20, 24, 26, 27, 29, 32, 34, 38], "specifi": [3, 5, 7, 8, 10, 12, 16, 18, 20, 24, 27, 29, 37], "when": [3, 4, 5, 9, 20, 24, 29, 37], "precsion": 3, "bias": [3, 24], "denot": 3, "y": [3, 4], "sign": [3, 8, 24, 29, 32, 37], "binari": [3, 8, 24, 29, 36, 37], "integ": [3, 5, 24, 29, 37], "total": [3, 24, 29], "addition": [3, 36], "fix": [3, 24, 29, 32, 37], "1024": [3, 29], "chanc": 3, "further": [3, 5, 11, 37], "fine": [3, 5, 29], "describ": [3, 31, 33], "finer": 3, "under": [3, 36], "head": 3, "variabl": [3, 5, 7, 8, 9, 20, 24, 28, 29, 34, 37], "within": [3, 7, 8, 24], "onli": [3, 5, 18, 20, 24, 32, 38], "mai": [3, 5, 20, 24, 27, 33, 34], "everi": [3, 8, 26, 29], "throughout": 3, "all": [3, 4, 20, 24, 25, 26, 29, 31, 32, 33, 34, 37], "differ": [3, 4, 5, 9, 20, 24, 26, 32, 37], "14": 3, "while": [3, 5, 20, 29, 32, 34], "other": [3, 25, 26, 34, 36, 37, 38, 39], "dense1": 3, "bia": [3, 8, 27, 32, 34, 37], "12": [3, 29, 37], "g": [3, 5, 7, 20, 24, 27, 34, 37, 38], "batchnormalization1": 3, "dense2": 3, "thei": [3, 24, 34, 37], "mean": [3, 8, 20, 32], "visit": [3, 31, 38], "concept": [3, 33, 38], "chapter": [3, 38], "orient": 3, "opportun": 3, "do": [3, 4, 8, 27, 31, 32, 34, 38, 39], "choos": 3, "firmwar": [3, 35], "cpp": [3, 30], "construct": [3, 24], "snippet": 3, "layer2_t": 3, "layer2_out": 3, "n_layer_2": 3, "pragma": [3, 8, 37], "array_partit": 3, "dense_lat": 3, "config2": 3, "input_1": 3, "w2": 3, "b2": 3, "layer3_t": 3, "layer3_out": 3, "relu_config3": 3, "layer4_t": 3, "layer4_out": 3, "n_layer_4": 3, "config4": 3, "w4": 3, "b4": 3, "sigmoid": [3, 24, 37], "result_t": 3, "sigmoid_config5": 3, "layer5_out": 3, "dnn": 3, "comput": [3, 20, 27, 32, 36], "calucl": 3, "own": 3, "addit": [3, 20, 24, 30, 34, 37, 38], "machin": [3, 18, 31, 32, 35, 36], "learn": [3, 31, 32, 35, 36, 38], "insert": [3, 9, 17, 24, 27, 37], "dense_config": [3, 11], "n_input_1_1": 3, "n_out": [3, 8, 11], "reuse_factor": [3, 8, 11, 24], "n_zero": 3, "n_nonzero": 3, "320": 3, "bool": [3, 20, 24, 28, 29, 30], "store_weights_in_bram": 3, "typedef": [3, 11, 24], "accum_t": [3, 11, 37], "model_default_t": 3, "bias_t": [3, 11], "weight_t": [3, 8, 11], "ap_uint": 3, "index_t": 3, "stage": [3, 34], "even": [3, 32, 37], "keras_model": [4, 20, 24], "test_prj": 4, "sever": [4, 24, 38, 39], "similar": [4, 9], "line": [4, 29, 37, 38], "interfac": [4, 18, 30, 38], "prefer": 4, "pleas": [4, 20, 24, 35, 36, 38], "help": [4, 5, 31, 32, 36], "numpi": 4, "suppos": [4, 31], "alreadi": [4, 7, 20, 24, 25, 26, 32], "befor": [4, 5, 20, 24, 25, 32, 34, 37], "much": [4, 32, 37], "faster": 4, "veri": [4, 38], "prototyp": [4, 32], "report": [4, 6, 37, 38], "read_vivado_report": [4, 28, 38], "hls4ml_prj": 4, "version": [4, 29, 31, 36, 37, 39], "individu": [4, 36], "debug": 4, "appropri": [4, 5], "kei": [4, 7, 18, 24, 29], "predict_ouput": 4, "trace_output": 4, "keras_trac": 4, "get_ymodel_kera": [4, 24], "low": [5, 32], "loss": [5, 37], "perform": [5, 24, 27, 32, 34], "chosen": [5, 33], "inappropri": 5, "tool": [5, 24, 32, 37, 38, 39], "decid": 5, "extra": [5, 20, 26, 29, 30, 37, 38], "instal": [5, 18, 29], "pip": [5, 38], "modul": 5, "three": 5, "modelgraph": [5, 7, 8, 9, 10, 11, 13, 15, 17, 18, 19, 20, 24, 26, 27, 30, 34, 37], "pytorch": [5, 6, 20, 24, 29, 31, 32, 34, 37, 38, 39], "initialis": 5, "load": [5, 37], "allow": [5, 29, 32, 37], "numer": [5, 24], "keras_to_hl": [5, 6, 38], "matplotlib": [5, 24], "pyplot": 5, "plt": 5, "yaml": [5, 20, 30], "pseudo": 5, "load_model": 5, "load_data": 5, "real": [5, 36], "r": [5, 31], "ymlfile": 5, "plot": [5, 6, 24, 37], "four": [5, 32], "figur": [5, 24, 32], "titl": [5, 36], "distribut": [5, 24], "origin": [5, 7, 8, 24, 37], "imag": [5, 8, 29, 37], "notic": 5, "bn1": 5, "bn2": 5, "bn3": 5, "label": 5, "miss": 5, "batchnorm": [5, 24, 27, 37], "fuse": [5, 27, 37], "preced": 5, "fc": 5, "3": [5, 8, 24], "product": [5, 8, 11, 37], "similarli": 5, "correspond": [5, 24, 29, 34], "well": [5, 29, 36], "style": [5, 33, 37], "avail": [5, 25, 29, 38], "keyword": 5, "argument": [5, 20, 24, 29, 31, 37], "boxplot": [5, 24], "histogram": [5, 24], "violinplot": [5, 24], "evalu": [5, 24, 29, 32], "non": 5, "zero": [5, 37], "shown": [5, 32], "box": 5, "whisker": 5, "diagram": 5, "combin": [5, 27], "No": [5, 36, 37], "grei": 5, "indic": [5, 7, 9, 11, 13, 15, 17, 19, 24, 26, 27, 28, 34], "second": [5, 37], "median": 5, "quartil": 5, "shade": 5, "rang": [5, 20, 29], "good": [5, 33], "least": 5, "cover": 5, "make": [5, 24, 34, 37], "sure": 5, "contain": [5, 20, 24, 28, 29, 32, 37], "right": [5, 20], "suffici": 5, "avoid": [5, 9, 37], "overflow": [5, 24, 37], "left": [5, 20, 24, 37], "achiev": [5, 32], "satisfactori": 5, "safe": 5, "bare": [5, 18], "still": 5, "accuraci": 5, "establish": 5, "whether": [5, 10, 28, 29, 32], "give": [5, 24, 32, 38], "cpu": [5, 32], "float": [5, 18, 29, 32, 37], "submodul": [6, 37, 38, 39], "fpga_backend": [6, 7], "fpga_lay": [6, 7], "fpga_typ": [6, 7], "quartus_backend": [6, 7], "symbol": [6, 7, 20, 37], "symbolic_backend": [6, 7], "viti": [6, 7, 30, 33, 37, 38, 39], "vitis_backend": [6, 7], "vivado_backend": [6, 7], "vivado_acceler": [6, 7], "vivado_accelerator_backend": [6, 7], "vivado_accelerator_config": [6, 7], "convolut": [6, 8, 9, 11, 20, 24, 36, 37, 39], "core": [6, 20], "graph": [6, 7, 9, 11, 13, 15, 17, 19, 20, 22, 26, 27, 33, 34, 39], "merg": [6, 8, 20, 24, 27, 37], "pool": [6, 20, 37], "qkera": [6, 20, 24, 26, 32, 37, 38], "recurr": [6, 20, 39], "reshap": [6, 9, 20, 24, 37], "onnx": [6, 20, 29, 31, 33, 34, 37, 38, 39], "onnx_to_hl": 6, "pytorch_to_hl": 6, "quartus_report": 6, "vivado_report": 6, "example_model": [6, 38], "fixed_point_util": 6, "string_util": 6, "symbolic_util": 6, "writer": [6, 37], "quartus_writ": 6, "symbolic_writ": 6, "vitis_writ": 6, "vivado_accelerator_writ": 6, "vivado_writ": 6, "rese": 6, "newse": 6, "bn_quant": [7, 8], "bram_weight": [7, 8], "clone": [7, 8, 37, 38], "codegen": [7, 8], "embed": [7, 8, 24, 37], "final_reshap": [7, 8], "fix_softmax_table_s": [7, 8], "inplace_parallel_reshap": [7, 8], "inplace_stream_flatten": [7, 8], "remove_softmax": [7, 8], "repack_stream": [7, 8], "xnor_pool": [7, 8], "convolution_templ": [7, 10, 16], "convolution_winograd": [7, 10], "core_templ": [7, 10, 16], "merge_templ": [7, 10, 16], "pointwis": [7, 10, 16, 37], "pooling_templ": [7, 10, 16], "quantization_templ": [7, 10, 16], "recurrent_templ": [7, 10, 16], "reshaping_templ": [7, 10, 16], "resource_strategi": [7, 10, 16], "transform_typ": [7, 10, 16], "expr_templ": [7, 12], "validate_lut": [7, 12], "feature_check": [7, 14], "broadcast_stream": [7, 16], "conv_same_pad": [7, 16], "conv_stream": [7, 16], "garnet_templ": [7, 16], "kwarg": [7, 20, 24, 26, 29], "minim": [7, 10, 12, 16, 20], "convers": [7, 10, 12, 16, 18, 20, 29, 31, 32, 34, 38], "subclass": [7, 10, 12, 16, 24, 34], "create_layer_class": [7, 8], "layer_class": [7, 8, 26], "wrap": [7, 8, 24, 26, 30, 34], "get_available_flow": [7, 25], "get_custom_sourc": 7, "destin": 7, "absolut": 7, "dict": [7, 20, 24, 28, 29], "get_default_flow": [7, 10, 12, 16, 18], "opt_cl": [7, 26], "invok": 7, "tupl": [7, 20, 24], "source_fil": 7, "destination_dir": 7, "sub": [7, 34], "write": [7, 8, 20, 24, 26, 28, 30, 31, 34, 37], "rais": [7, 8, 10, 20, 24, 25, 26, 29, 37], "except": [7, 8, 10, 20, 24, 25, 26, 29], "template_cl": 7, "op": 7, "get_available_backend": 7, "register_backend": 7, "backend_cl": 7, "registri": [7, 25, 26], "instanti": 7, "constructor": [7, 29], "transform": [7, 8, 9, 11, 13, 15, 17, 19, 26, 27, 34], "appli": [7, 8, 9, 11, 13, 15, 17, 19, 24, 25, 26, 27, 29, 34, 37], "match": [7, 9, 11, 13, 15, 17, 19, 26, 27, 34, 37], "wa": [7, 9, 11, 13, 15, 17, 19, 26, 27, 37], "success": [7, 9, 11, 13, 15, 17, 19, 26, 27], "boolean": [7, 9, 11, 13, 15, 17, 19, 26, 27, 34], "alter": [7, 9, 11, 13, 15, 17, 19, 26, 27], "ad": [7, 9, 11, 13, 15, 17, 19, 20, 24, 26, 27, 35, 37], "remov": [7, 9, 11, 13, 15, 17, 19, 24, 25, 26, 27, 31, 37, 38], "attribute_nam": [7, 24], "optimizerpass": [7, 9, 11, 15, 17, 26, 27, 34], "get_nam": [7, 26], "predic": [7, 9, 11, 13, 15, 17, 26, 27], "try": [7, 9, 11, 13, 15, 17, 26, 27, 37], "fpgabackend": [8, 10, 12, 16], "link": [8, 24, 37], "runtim": [8, 37], "fail": [8, 33], "string": [8, 20, 28, 29, 37], "compute_conv1d_instruct": 8, "in_w": 8, "in_c": 8, "kernel_s": 8, "stride": [8, 20], "pad": [8, 20, 24, 37], "compute_conv2d_instruct": 8, "in_h": 8, "classmethod": [8, 24, 26], "convert_precision_str": 8, "generate_conv1d_line_buffer_fn": 8, "layer_idx": 8, "n_partit": 8, "kernel": [8, 11, 20, 30, 32], "dilat": [8, 20], "mimic": 8, "im2col": [8, 9], "1d": [8, 9, 11, 20, 27], "suboptim": 8, "trick": [8, 32], "explicitli": [8, 32, 37], "reli": 8, "loop": 8, "sinc": [8, 37], "paralet": 8, "etc": [8, 24, 28, 29], "partit": 8, "divid": 8, "pixel": [8, 33], "width": [8, 20, 24, 32], "channel": [8, 18, 20, 33], "length": [8, 20], "iter": 8, "left_pad": 8, "right_pad": 8, "rate": 8, "generate_conv2d_line_buffer_fn": 8, "2d": [8, 9, 20, 37], "height": [8, 20], "top_pad": 8, "bottom_pad": 8, "get_closest_reuse_factor": 8, "valid_rf": 8, "chosen_rf": 8, "closest": 8, "sort": [8, 34], "get_valid_reuse_factor": 8, "equal": 8, "close": 8, "smallest": 8, "get_layer_mult_s": 8, "get_valid_conv_partition_split": 8, "out_height": 8, "out_width": 8, "split": [8, 32], "conv1d": [8, 24, 34, 37], "essenti": [8, 32], "divisor": 8, "get_writer_flow": [8, 10, 12, 16, 18], "product_typ": [8, 11], "helper": [8, 24], "dure": [8, 10, 20, 24, 32], "infer": [8, 20, 27, 31, 32, 35, 36], "set_closest_reuse_factor": 8, "set_target_reuse_factor": 8, "disk": [8, 24], "write_hl": [8, 30], "batchnormalizationquantizedtanh": [8, 27], "batch": [8, 20, 37], "quantiz": [8, 24, 27, 32, 37], "ternari": [8, 27, 36, 37], "tanh": [8, 24, 37], "varianc": 8, "beta": 8, "gamma": 8, "fold": 8, "threshold": [8, 27], "flip": 8, "set_threshold": 8, "scale": [8, 27, 32, 37], "ternary_threshold": 8, "pointwiseconv1d": 8, "1x1": [8, 37], "pointwiseconv2d": 8, "conv2d": [8, 11, 24, 27, 34, 37], "acfixedprecisiondefinit": 8, "precisiondefinit": 8, "definition_cpp": 8, "acintegerprecisiondefinit": 8, "actypeconvert": 8, "fixedprecisionconvert": 8, "apfixedprecisiondefinit": 8, "apintegerprecisiondefinit": 8, "aptypeconvert": 8, "arrayvariableconvert": 8, "type_convert": 8, "prefix": 8, "definition_cl": 8, "tensor_var": 8, "bramweightvariableconvert": 8, "weight_var": 8, "compressedtypeconvert": 8, "typedefinit": 8, "typeprecisionconvert": 8, "convert_precis": 8, "precision_convert": 8, "exponenttypeconvert": 8, "type_map": 8, "precisionconvert": 8, "precision_typ": 8, "hlstypeconvert": 8, "atyp": [8, 24], "inplacestreamvariableconvert": 8, "streamvariableconvert": 8, "n_pack": [8, 24], "depth": [8, 17, 33, 34, 37], "namedtypeconvert": 8, "packedtypeconvert": 8, "quartusarrayvariableconvert": 8, "quartusarrayvariabledefinit": 8, "variabledefinit": 8, "name_suffix": 8, "as_refer": 8, "quartusinplacearrayvariableconvert": 8, "quartusinplacearrayvariabledefinit": 8, "quartusinplacestreamvariableconvert": 8, "quartusinplacestreamvariabledefinit": 8, "quartusstreamvariableconvert": 8, "quartusstreamvariabledefinit": 8, "quartusstructmembervariableconvert": 8, "structmembervariableconvert": 8, "quartusstructmembervariabledefinit": 8, "staticweightvariableconvert": 8, "staticweightvariabledefinit": 8, "struct_nam": 8, "vivadoarrayvariableconvert": 8, "vivadoarrayvariabledefinit": 8, "vivadoinplacearrayvariableconvert": 8, "vivadoinplacearrayvariabledefinit": 8, "vivadoinplacestreamvariableconvert": 8, "vivadoinplacestreamvariabledefinit": 8, "vivadostreamvariableconvert": 8, "vivadostreamvariabledefinit": 8, "batchnormalizationquantizedtanhconfigtempl": 9, "batchnormalizationquantizedtanhfunctiontempl": 9, "mergebatchnormandquantizedtanh": 9, "quantizedenseoutput": 9, "register_bn_qu": 9, "registerbramweight": 9, "whose": [9, 24], "clonefunctiontempl": 9, "cloneoutput": 9, "multipl": [9, 24, 26, 32, 33, 37], "time": [9, 32, 33, 36, 37], "register_clon": 9, "generateconvim2col": 9, "tcode": 9, "step": [9, 29, 30, 31, 38], "embeddingconfigtempl": 9, "embeddingfunctiontempl": 9, "removefinalreshap": 9, "fixsoftmaxtables": 9, "register_softmax__table_size_fix": 9, "inplaceparallelreshap": 9, "replac": [9, 20, 24], "inplac": [9, 37], "tensor": [9, 20, 24, 37], "flat": 9, "inplacestreamflatten": 9, "flatten": [9, 37], "expens": [9, 32], "repack": [9, 37], "skipsoftmax": 9, "pack": [9, 24], "repackfunctiontempl": 9, "reshapestream": 9, "register_repack_stream": 9, "xnorpool": 9, "behavior": 9, "maxpool": 9, "xnorprecisiontyp": [9, 24, 37], "propag": [9, 37], "quartusbackend": 10, "fpgasynth": 10, "log_level": 10, "cont_if_large_area": 10, "intel": [10, 33, 38, 39], "synthesi": [10, 20, 31, 32, 33, 35, 37, 38], "log": [10, 20, 29], "level": [10, 29, 30, 32, 34, 35, 39], "displai": [10, 29], "instruct": [10, 17, 38], "continu": 10, "exce": 10, "error": [10, 37], "arria10": 10, "clock_period": [10, 12, 16, 18, 20], "init_activ": 10, "init_base_lay": [10, 16], "init_conv1d": [10, 16], "init_conv2d": [10, 16], "init_dens": [10, 16], "init_emb": [10, 16], "init_gru": [10, 16], "init_lstm": [10, 16], "init_simple_rnn": 10, "init_softmax": [10, 16], "chdir": 10, "newdir": 10, "conv1dconfigtempl": [11, 17], "conv1dfunctiontempl": [11, 17], "conv2dconfigtempl": [11, 17], "conv2dfunctiontempl": [11, 17], "conv_mult_config_templ": 11, "_mult": 11, "rf_pad": 11, "rfpad": 11, "bf_pad": 11, "bfpad": 11, "reuse_factor_round": 11, "block_factor": 11, "div_roundup": 11, "block_factor_round": 11, "multiplier_factor": 11, "min": [11, 37], "multiplier_limit": 11, "multiplier_scal": 11, "x_t": 11, "y_t": 11, "conv": [11, 27, 37], "applywinogradkerneltransform": 11, "suitabl": [11, 24], "wingorad": 11, "lavin": 11, "grai": 11, "2015": 11, "fast": [11, 32, 36], "activationconfigtempl": [11, 17], "activationfunctiontempl": [11, 17], "batchnormalizationconfigtempl": [11, 17], "batchnormalizationfunctiontempl": [11, 17], "denseconfigtempl": [11, 17], "densefunctiontempl": [11, 17], "hardactivationconfigtempl": [11, 17], "prelufunctiontempl": [11, 17], "parametrizedactivationfunctiontempl": [11, 17], "softmaxconfigtempl": [11, 17], "concatenateconfigtempl": [11, 17], "dotconfigtempl": [11, 17], "mergeconfigtempl": [11, 17], "mergefunctiontempl": [11, 17], "optimizepointwiseconv": [11, 17], "pointwiseconv1dconfigtempl": [11, 17], "pointwiseconv1dfunctiontempl": [11, 17], "pointwiseconv2dconfigtempl": [11, 17], "pointwiseconv2dfunctiontempl": [11, 17], "register_pointwis": [11, 17], "poolingconfigtempl": [11, 17], "poolingfunctiontempl": [11, 17], "applyalphaconfigtempl": [11, 17], "applyalphafunctiontempl": [11, 17], "gruconfigtempl": 11, "grufunctiontempl": 11, "lstmconfigtempl": 11, "lstmfunctiontempl": 11, "simplernnconfigtempl": 11, "simplernnfunctiontempl": 11, "resizeconfigtempl": [11, 17], "resizefunctiontempl": [11, 17], "transposeconfigtempl": [11, 17], "transposefunctiontempl": [11, 17], "zeropaddingconfigtempl": [11, 17], "zeropaddingfunctiontempl": [11, 17], "applyresourcestrategi": [11, 17], "transpos": [11, 17, 20, 24, 27, 29], "dense_resourc": [11, 17], "matrix": [11, 17, 32, 37], "multipli": [11, 17, 32], "routin": [11, 17, 20], "transformtyp": [11, 17], "globaloptimizerpass": [11, 17, 26, 34], "symbolicexpressionbackend": 12, "export": [12, 14, 16, 18, 31, 37, 38], "vsynth": [12, 14, 16, 18, 38], "xcvu9p": 12, "vivado_hl": [12, 20, 38], "hls_include_path": [12, 20, 29], "hls_libs_path": [12, 20, 29], "validateuserlookupt": 13, "configurableoptimizerpass": [13, 17, 19, 26, 27, 34], "adequ": 13, "vitisbackend": 14, "vivadobackend": [14, 16, 18, 30], "validateconvimplement": 15, "validatestrategi": 15, "fifo_opt": [16, 18], "init_depconv2d": 16, "init_garnet": 16, "init_garnet_stack": 16, "init_global_pooling1d": 16, "init_global_pooling2d": 16, "init_pooling1d": 16, "init_pooling2d": 16, "init_sepconv1d": 16, "init_sepconv2d": 16, "broadcast": [17, 37], "broadcastconfigtempl": 17, "broadcastfunctiontempl": 17, "broadcaststream": 17, "register_broadcast_stream": 17, "insertzeropaddingbeforeconv1d": 17, "insert_zero_padding_before_conv1d": 17, "insertzeropaddingbeforeconv2d": 17, "insert_zero_padding_before_conv2d": 17, "generateconvstreaminginstruct": 17, "cnn": [17, 33, 36, 37, 39], "depthwiseconv1dfunctiontempl": 17, "depthwiseconv2dfunctiontempl": 17, "separableconv1dconfigtempl": 17, "separableconv1dfunctiontempl": 17, "separableconv2dconfigtempl": 17, "separableconv2dfunctiontempl": 17, "fifodepthoptim": [17, 19], "modeloptimizerpass": [17, 19, 26, 27, 34], "generate_max_depth_fil": 17, "max": [17, 37], "get_vcd_data": 17, "populate_valu": 17, "set_big_fifo": 17, "vars_to_profil": 17, "set_fifo_depth": 17, "garnetconfigtempl": 17, "get_transforms_config": 17, "garnetfunctiontempl": 17, "garnetstackconfigtempl": 17, "garnetstackfunctiontempl": 17, "recurrentconfigtempl": 17, "recurrentfunctiontempl": 17, "vivadoacceleratorbackend": 18, "axi_stream": 18, "input_typ": 18, "output_typ": 18, "platform": 18, "xilinx_u250_xdma_201830_2": 18, "acceler": [18, 36], "supported_board": [18, 20], "exploit": 18, "axi_mast": 18, "master": [18, 37], "axi_lit": 18, "lite": 18, "don": [18, 24, 37], "t": [18, 20, 24, 27, 32, 37], "exchang": 18, "amount": [18, 20], "metal": 18, "wrapper": [18, 24, 26, 30], "ap_typ": 18, "round": [18, 27], "power": [18, 20, 24, 29, 32], "make_xclbin": 18, "xclbin": 18, "deploy": 18, "host": 18, "guid": [18, 29], "vivadoacceleratorconfig": 18, "model_input": 18, "model_output": 18, "get_board": 18, "get_board_info": 18, "get_clock_period": 18, "get_corrected_typ": 18, "get_driv": 18, "get_driver_fil": 18, "get_driver_path": 18, "get_input_typ": 18, "get_interfac": 18, "get_io_bitwidth": 18, "get_krnl_rtl_src_dir": 18, "get_output_typ": 18, "get_part": 18, "get_platform": 18, "get_tcl_file_path": 18, "kerasfileread": 20, "kerasread": 20, "get_weights_data": 20, "layer_nam": [20, 24], "var_nam": [20, 24], "kerasmodelread": 20, "kerasnestedfileread": 20, "nested_path": 20, "get_model_arch": 20, "get_supported_keras_lay": 20, "pars": [20, 28, 32, 33, 34, 37], "intern": [20, 29, 33, 37], "represent": 20, "vari": [20, 32], "across": 20, "keras_handl": 20, "arg": [20, 37], "parse_default_keras_lay": 20, "parse_keras_model": 20, "model_arch": 20, "reader": [20, 22, 37], "layer_cnam": 20, "handler_func": 20, "parse_func": 20, "properti": [20, 24, 25], "callabl": 20, "onnxdataread": 20, "extract": [20, 27, 37], "relev": [20, 27], "add_input": 20, "perm": [20, 27], "ndarrai": [20, 24], "compute_pads_1d": 20, "oper": [20, 29, 34, 37], "compute_pads_2d": 20, "get_input_shap": 20, "input_idx": [20, 24], "get_onnx_attribut": 20, "get_onnx_input_nam": 20, "get_out_layer_nam": 20, "get_supported_onnx_lay": 20, "onnx_handl": 20, "unsupport": [20, 37], "register_onnx_layer_handl": 20, "replace_char_inconsit": 20, "inconsist": 20, "charact": 20, "caus": 20, "issu": [20, 37], "sanitize_layer_nam": 20, "compute_padding_1d": 20, "pad_typ": 20, "in_siz": 20, "filt_siz": 20, "side": 20, "tri": 20, "evenli": 20, "column": 20, "odd": 20, "causal": [20, 37], "insensit": 20, "window": [20, 39], "unknown": [20, 29], "compute_padding_1d_pytorch": 20, "compute_padding_2d": 20, "in_height": 20, "in_width": [20, 37], "stride_height": 20, "stride_width": 20, "filt_height": [20, 37], "filt_width": 20, "top": [20, 29, 30, 37, 39], "bottom": 20, "compute_padding_2d_pytorch": 20, "dilation_height": 20, "dilation_width": 20, "parse_data_format": 20, "data_format": 20, "channels_last": [20, 27, 29], "accord": 20, "ensur": [20, 24, 32, 34, 37], "element": [20, 24], "interpret": 20, "discard": 20, "3d": 20, "channels_first": [20, 27, 29], "convert_from_config": 20, "filesystem": 20, "project_nam": [20, 29], "input_data_tb": 20, "output_data_tb": 20, "associ": 20, "overwrit": 20, "convert_from_onnx_model": [20, 29], "convert_from_pytorch_model": [20, 29], "expect": [20, 24, 27, 34], "Not": 20, "hand": 20, "inputs_channel_last": [20, 29], "config_from_pytorch_model": [20, 29], "remain": [20, 34], "transpose_output": [20, 29], "back": 20, "convert_from_symbolic_express": 20, "expr": 20, "n_symbol": 20, "lut_funct": 20, "use_built_in_lut_funct": 20, "sympi": 20, "express": [20, 24, 32, 37], "form": [20, 24, 29], "x0": 20, "x1": 20, "x2": 20, "largest": [20, 32], "definit": [20, 24, 29, 30], "func_nam": [20, 29], "math_func": [20, 29], "func": [20, 24, 29], "table_s": [20, 29], "range_start": [20, 29], "range_end": [20, 29], "pysr": [20, 29], "math": [20, 29], "approxim": [20, 29], "sin": [20, 29], "co": [20, 26, 29, 31, 32], "lookup": [20, 29, 30], "tabl": [20, 29, 30, 37, 39], "strongli": [20, 29], "recommend": [20, 29, 33, 38], "built": [20, 37, 38, 39], "vitis_hl": 20, "inlcud": 20, "locat": [20, 34], "empti": [20, 27], "won": 20, "integr": [20, 24], "unless": 20, "doesn": [20, 27], "affect": [20, 29], "lib": [20, 29], "parse_yaml_config": 20, "config_fil": 20, "proper": 20, "serial": 20, "my_keras_model": 20, "doc": [20, 37], "parse_conv1d_lay": 21, "parse_conv2d_lay": 21, "parse_activation_lay": [21, 22], "parse_batchnorm_lay": [21, 22], "parse_dense_lay": 21, "parse_embedding_lay": 21, "parse_input_lay": 21, "parse_garnet_lay": 21, "parse_merge_lay": [21, 22], "parse_model_lay": 21, "parse_global_pooling_lay": [21, 22], "parse_pooling_lay": 21, "get_quantizer_from_config": 21, "quantizer_var": 21, "parse_qactivation_lay": 21, "parse_qbatchnorm_lay": 21, "parse_qconv2dbatchnorm_lay": 21, "parse_qconv_lay": 21, "parse_qdense_lay": 21, "parse_qdepthwiseqconv_lay": 21, "parse_qsepconv_lay": 21, "parse_rnn_lay": 21, "parse_flatten_lay": 21, "parse_permute_lay": 21, "parse_reshape_lay": [21, 22], "parse_upsampling1d_lay": 21, "parse_upsampling2d_lay": 21, "parse_zeropadding1d_lay": 21, "parse_zeropadding2d_lay": 21, "parse_conv_lay": 22, "inputs_map": 22, "parse_gemm_lay": 22, "parse_pool_lay": 22, "parse_transpose_lay": 22, "bn_fuse": [24, 26], "convert_to_channels_last": [24, 26], "expand_layer_group": [24, 26], "fuse_biasadd": [24, 26, 34], "multi_dens": [24, 26], "nop": [24, 26], "precision_merg": [24, 26], "stamp": [24, 26, 34], "transpose_opt": [24, 26], "hidden": 24, "unit": 24, "filter": [24, 32], "endpoint": 24, "expos": 24, "handl": [24, 33, 37], "unifi": 24, "view": [24, 25, 34], "map": [24, 34, 37], "conveni": 24, "certain": [24, 25, 32, 34], "attributemap": 24, "value_typ": 24, "consist": 24, "creation": [24, 32], "flag": [24, 28], "modifi": [24, 30], "expected_attribut": 24, "config_nam": 24, "pascal": 24, "attributenam": 24, "pascal_cas": [24, 29], "validate_valu": 24, "attributedict": 24, "mutablemap": 24, "behav": 24, "upon": 24, "trigger": [24, 32], "action": [24, 37], "convent": 24, "clazz": [24, 26], "choiceattribut": 24, "choic": 24, "predefin": 24, "codeattrubut": 24, "block": [24, 34], "codemap": 24, "configurableattribut": 24, "advis": [24, 29, 31], "over": [24, 37], "typeattribut": 24, "namedtyp": 24, "_t": 24, "typemap": 24, "variablemap": 24, "tensorvari": 24, "weightattribut": 24, "weightmap": 24, "weightvari": [24, 30], "get_bram_s": 24, "get_compress": 24, "get_config_valu": 24, "get_conv_implement": 24, "get_layer_config": 24, "get_layer_config_valu": 24, "get_output_dir": 24, "get_precis": 24, "var": [24, 30], "get_project_nam": 24, "get_reuse_factor": 24, "get_strategi": 24, "get_target_cycl": 24, "is_resource_strategi": 24, "layer_list": 24, "being": 24, "apply_flow": [24, 34], "reappli": [24, 27], "collect": [24, 25, 36], "skip": [24, 37], "environ": [24, 32, 37], "get_layer_output_vari": 24, "output_nam": 24, "get_lay": 24, "get_output_vari": 24, "get_weight_vari": 24, "insert_nod": 24, "make_nod": 24, "ambigu": 24, "sequenc": [24, 32, 34], "attempt": [24, 26], "made": [24, 34, 37], "doe": [24, 36], "kind": 24, "replace_nod": 24, "next_lay": 24, "register_output_vari": 24, "out_nam": 24, "remove_nod": 24, "rewir": 24, "previou": [24, 31, 32, 36], "leaf": 24, "old_nod": 24, "new_nod": 24, "trace": [24, 37], "biasadd": [24, 27], "concaten": [24, 37], "conv2dbatchnorm": 24, "depthwiseconv1d": [24, 37], "depthwiseconv2d": [24, 37], "dot": [24, 29], "gru": [24, 37], "garnet": [24, 37, 39], "ref_impl": 24, "garnetstack": [24, 37], "globalpooling1d": [24, 37], "globalpooling2d": 24, "hardactiv": 24, "tan": [24, 29], "unction": 24, "clip": 24, "slope": 24, "shift": [24, 37], "hard_sigmoid": 24, "lstm": [24, 37, 39], "necessarili": 24, "add_bia": [24, 27], "_out": 24, "type_nam": 24, "add_weight": [24, 27], "add_weights_vari": 24, "get_attr": 24, "get_input_nod": 24, "get_layer_precis": 24, "get_output_nod": 24, "get_output_use_map": 24, "get_vari": 24, "get_weight": 24, "set_attr": [24, 26], "layergroup": [24, 27], "prelu": 24, "parametrizedactiv": 24, "pooling1d": 24, "pooling2d": 24, "separableconv1d": [24, 37], "separableconv2d": [24, 37], "simplernn": 24, "symbolicexpress": 24, "ternarytanh": 24, "zeropadding1d": 24, "zeropadding2d": 24, "classproperti": 24, "activation_types_hlsmodel": 24, "activations_hlsmodel": 24, "fmt": 24, "summari": [24, 39], "activations_kera": 24, "longform": 24, "activations_torch": 24, "ap_fixed_wif": 24, "array_to_summari": 24, "plot_typ": 24, "dist_diff": 24, "visual": [24, 29], "y_model": 24, "y_sim": 24, "norm_diff": 24, "squar": 24, "root": 24, "sum": [24, 32], "vector": [24, 32], "depict": 24, "get_unoptimized_hlsmodel": 24, "calcul": [24, 32], "ouput": 24, "put": 24, "_type_": [24, 26], "facetgrid": 24, "quadrupl": 24, "pre": [24, 36, 37], "post": 24, "types_boxplot": 24, "types_histogram": 24, "types_hlsmodel": 24, "weights_hlsmodel": 24, "weights_kera": 24, "weights_torch": 24, "precisiontyp": 24, "higher": [24, 37], "dimension": [24, 37], "binaryquant": 24, "compressedtyp": 24, "index_precis": 24, "coo": 24, "compressedweightvari": 24, "exponentprecisiontyp": [24, 37], "differenti": 24, "regular": 24, "expon": 24, "po2": [24, 37], "exponenttyp": 24, "special": [24, 26, 34, 37], "mark": 24, "exponentweightvari": 24, "aka": 24, "fixedprecisiontyp": 24, "rounding_mod": [24, 27], "saturation_mod": [24, 27], "saturation_bit": 24, "arbitrari": 24, "ap_": 24, "u": [24, 36], "ac_fix": [24, 37], "decim": [24, 29], "roundingmod": 24, "mode": [24, 27], "trn": 24, "saturationmod": 24, "satur": [24, 27], "inplacetensorvari": 24, "tv": 24, "input_var": 24, "integerprecisiontyp": [24, 37], "ac_int": [24, 37], "packedtyp": 24, "n_elem": 24, "w": [24, 31], "_description_": [24, 25, 26], "qkerasbinaryquant": 24, "xnor": 24, "around": 24, "qkeraspo2quant": 24, "qkerasquant": 24, "hls_type": 24, "upstream": 24, "enum": 24, "enumer": 24, "rnd": 24, "rnd_conv": 24, "rnd_inf": 24, "rnd_min_inf": 24, "rnd_zero": 24, "trn_zero": 24, "from_str": 24, "sat": 24, "sat_sym": 24, "sat_zero": 24, "get_shap": 24, "size_cpp": 24, "ternaryquant": 24, "multidimension": [24, 37], "update_precis": 24, "new_precis": 24, "bnn": 24, "ones": 24, "find_minimum_width": 24, "find": [24, 38], "minimum": 24, "entri": 24, "dynamicflow": 25, "optimizer_func": 25, "dynam": [25, 32], "updat": [25, 37, 39], "get_backend_flow": 25, "get_flow": 25, "register_flow": [25, 34], "belong": [25, 26, 30], "append": [25, 26, 37], "update_flow": 25, "flow_nam": 25, "add_optim": 25, "remove_optim": 25, "get_config": 26, "global": 26, "layeroptimizerpass": [26, 34], "wrappedoptimizerpass": 26, "commonli": [26, 34], "itself": [26, 34], "deriv": [26, 34, 37], "condit": 26, "manual": [26, 29], "extract_optimizers_from_object": 26, "extract_optimizers_from_path": 26, "opt_path": 26, "module_path": 26, "get_available_pass": 26, "get_backend_pass": 26, "layer_optim": 26, "decor": [26, 34], "turn": [26, 37], "mylay": 26, "init_mylay": 26, "new_attribut": 26, "some_valu": 26, "model_optim": 26, "optimize_model": 26, "until": [26, 34], "longer": [26, 32, 34, 37], "occur": 26, "optimizer_pass": 26, "fusebatchnorm": 27, "channelslastconvert": 27, "expandlayergroup": 27, "expand": [27, 37], "nest": [27, 29, 37], "parent": [27, 37], "fusebiasadd": 27, "common": [27, 34], "replacemultidimensionaldensewithconv": 27, "eliminatelinearactiv": 27, "setprecisionconcat": 27, "concat": 27, "get_concat_typ": 27, "itype1": 27, "itype2": 27, "applyalpha": [27, 37], "qdens": 27, "alpha": [27, 37], "extractternarythreshold": 27, "execut": [27, 34], "That": 27, "fuseconsecutivebatchnorm": 27, "consecut": 27, "qkerasfactorizealpha": 27, "outputroundingsaturationmod": 27, "accumul": 27, "applic": [27, 32], "output_rounding_saturation_mod": 27, "ap_rnd_conv": 27, "ap_sat": 27, "precision_string_modifi": 27, "pstr": 27, "q": [27, 39], "register_qkera": 27, "makestamp": [27, 34], "removeuselesstranspos": 27, "anyth": 27, "parse_quartus_report": 28, "hls_dir": 28, "write_to_fil": 28, "separ": [28, 29, 37], "read_js_object": 28, "js_script": 28, "javascript": 28, "defind": 28, "script": [28, 30, 37], "read_quartus_report": 28, "open_brows": 28, "print": [28, 37, 38], "browser": 28, "parse_vivado_report": 28, "print_vivado_report": [28, 37], "report_dict": 28, "full_report": 28, "default_precis": 29, "default_reuse_factor": 29, "serv": 29, "inspect": 29, "tweak": [29, 34], "verbos": 29, "tune": 29, "entir": 29, "highli": [29, 32], "config_from_onnx_model": 29, "come": [29, 32], "create_config": 29, "check": [29, 37, 38, 39], "fetch_example_list": [29, 38], "fetch_example_model": [29, 38], "model_nam": 29, "repo": [29, 37], "http": [29, 35, 36, 38], "com": [29, 35, 36, 38], "fastmachinelearn": [29, 35, 36, 38], "fixedpointemul": 29, "integer_bit": 29, "decimal_bit": 29, "complement": 29, "exp_float": 29, "sig_fig": 29, "inv_float": 29, "set_msb_bit": 29, "to_float": 29, "ceil_log2": 29, "uint_to_binari": 29, "relat": [29, 37], "add_edg": 29, "dst": 29, "check_pydot": 29, "pydot": 29, "graphviz": 29, "model_to_dot": 29, "show_shap": 29, "show_layer_nam": 29, "show_precis": 29, "rankdir": 29, "tb": 29, "dpi": 29, "96": 29, "subgraph": 29, "vertic": 29, "lr": 29, "horizont": 29, "per": 29, "inch": 29, "cluster": 29, "importerror": 29, "plot_model": 29, "to_fil": 29, "png": 29, "jupyt": 29, "notebook": 29, "enabl": [29, 32, 37], "convert_to_pascal_cas": 29, "snake_cas": 29, "pascalcas": 29, "convert_to_snake_cas": 29, "lutfunct": 29, "generate_operator_complex": 29, "unary_oper": 29, "binary_oper": 29, "synthes": [29, 38], "cycl": 29, "unari": 29, "init_pysr_lut_funct": 29, "init_default": 29, "function_definit": 29, "math_lut": 29, "pysrregressor": 29, "frequent": [29, 34], "exp": 29, "register_pysr_lut_funct": 29, "julia_main": 29, "quartuswrit": 30, "get_max_reuse_factor": 30, "next_pow2": 30, "print_array_to_cpp": 30, "odir": 30, "write_activation_t": 30, "write_bridg": 30, "bridg": 30, "myproject_bridg": 30, "write_build_script": 30, "makefil": 30, "build_lib": 30, "sh": 30, "write_defin": 30, "write_nnet_util": 30, "ap": 30, "write_paramet": 30, "write_project_cpp": 30, "main": [30, 37, 38, 39], "write_project_dir": 30, "write_project_head": 30, "write_tar": 30, "archiv": 30, "write_test_bench": 30, "testbench": 30, "write_testbench_parallel": 30, "myproject_test": 30, "write_testbench_stream": 30, "write_weight": 30, "write_yml": 30, "symbolicexpressionwrit": 30, "vivadowrit": 30, "tcl": [30, 37, 38], "shell": 30, "build_prj": [30, 38], "vivado_synth": 30, "vitiswrit": 30, "adapt": 30, "write_nnet_utils_overrid": 30, "vivadoacceleratorwrit": 30, "modify_build_script": 30, "write_axi_wrapp": 30, "write_board_script": 30, "ipi": 30, "vivadoacceler": [30, 37], "write_driv": 30, "write_new_tar": 30, "write_wrapper_test": 30, "write_txt_fil": 30, "txt": 30, "write_generated_cod": 30, "nnet_code_gen": 30, "get_writ": 30, "register_writ": 30, "writer_cl": 30, "migrat": 31, "messag": 31, "posit": 31, "exit": 31, "m": [31, 32], "o": [31, 36], "pb": [31, 37], "pt": 31, "v": 31, "l": [31, 36, 37], "often": [31, 32], "csimul": 31, "impli": 31, "vivado_synthesi": 31, "full": [31, 34, 37, 38], "goal": 32, "translat": [32, 35, 38], "high": [32, 35, 36], "transpil": 32, "plug": 32, "freedom": 32, "mani": [32, 34, 38], "best": 32, "greatli": 32, "intuit": 32, "balanc": 32, "stem": 32, "energi": [32, 36], "physic": [32, 36], "cern": 32, "hadron": 32, "collid": 32, "lhc": 32, "proven": 32, "extrem": [32, 36], "analysi": 32, "detector": 32, "offlin": 32, "agglomer": 32, "problem": [32, 37], "collis": 32, "event": 32, "too": 32, "everyth": 32, "kept": 32, "significantli": [32, 37], "live": 32, "select": 32, "potenti": 32, "preserv": 32, "mind": 32, "realiz": 32, "gpu": 32, "task": 32, "remap": 32, "isn": 32, "realli": [32, 37], "cost": 32, "microsecond": 32, "invest": 32, "languag": [32, 35], "thu": 32, "rapid": 32, "multilay": [32, 39], "At": 32, "neuron": 32, "n_m": 32, "mathbf": 32, "_m": 32, "said": 32, "independ": [32, 33, 34], "n_": 32, "w_": 32, "b": 32, "g_m": 32, "compactli": 32, "_": 32, "speed": [32, 37], "accept": 32, "nontrivi": 32, "precomput": 32, "control": [32, 33, 34, 38], "aspect": 32, "princip": 32, "though": 32, "dataflow": 32, "awar": [32, 37], "decis": 32, "maxim": 32, "Of": 32, "simplifi": 32, "sizabl": 32, "speedup": 32, "arithmet": 32, "improv": [32, 37], "rel": 32, "offer": 32, "bin": 32, "therefor": 32, "had": 32, "lowest": 32, "highest": 32, "therebi": 32, "paper": [32, 36, 37], "jinst": [32, 36], "13": [32, 36, 37], "p07027": [32, 36], "2018": [32, 36, 37, 38, 39], "statu": 33, "featur": [33, 35, 36, 38], "known": 33, "mlp": [33, 39], "small": 33, "alwai": 33, "sent": 33, "state": 34, "verifi": 34, "reach": [34, 35], "undergo": 34, "seri": 34, "dub": 34, "modif": 34, "usual": 34, "uniqu": 34, "criteria": 34, "satisfi": 34, "again": 34, "folder": 34, "sens": 34, "assign": 34, "later": [34, 36], "regardless": 34, "explain": 34, "tradit": 35, "interest": 35, "experi": 35, "latest": [35, 38, 39], "plan": 35, "public": 36, "cite": 36, "fastml_hls4ml": 36, "author": 36, "fastml": 36, "team": 36, "year": 36, "2023": [36, 37], "publish": [36, 37], "zenodo": 36, "v0": 36, "doi": 36, "5281": 36, "1201549": 36, "url": 36, "articl": 36, "duart": 36, "2018ite": 36, "javier": 36, "deep": 36, "particl": 36, "eprint": 36, "1804": 36, "06913": 36, "archiveprefix": 36, "arxiv": [36, 37], "primaryclass": 36, "ins": 36, "det": 36, "reportnumb": 36, "fermilab": 36, "pub": 36, "18": [36, 37], "089": 36, "1088": 36, "1748": 36, "0221": 36, "07": [36, 37], "journal": 36, "volum": 36, "aarrestad": 36, "2021zo": 36, "thea": 36, "2101": [36, 37], "05108": [36, 37], "cs": 36, "lg": 36, "21": [36, 38, 39], "130": 36, "scd": 36, "2632": 36, "2153": 36, "ac0ea1": 36, "mach": 36, "sci": 36, "tech": 36, "045015": 36, "2021": [36, 37], "ghielmetti": 36, "2022ndm": 36, "nicol": 36, "semant": 36, "segment": 36, "autonom": 36, "vehicl": 36, "2205": 36, "07690": 36, "cv": 36, "22": 36, "435": [36, 37], "ppd": 36, "ac9cb5": 36, "loncar": 36, "2020hqp": 36, "ngadiuba": 36, "jennif": 36, "2003": 36, "06308": 36, "20": [36, 37, 38, 39], "167": 36, "aba042": 36, "015001": 36, "particip": 36, "ask": 36, "collabor": 36, "who": 36, "text": 36, "multi": [36, 37], "domain": 36, "expert": 36, "were": 36, "gratefulli": 36, "nation": 36, "scienc": 36, "foundat": 36, "nsf": 36, "har": 36, "revolut": 36, "hdr": 36, "institut": 36, "ai": 36, "driven": 36, "discoveri": 36, "a3d3": 36, "cooper": 36, "agreement": 36, "phy": 36, "2117997": 36, "depart": 36, "offic": 36, "scientif": 36, "research": 36, "reduct": 36, "edg": 36, "xdr": 36, "de": 36, "foa": 36, "0002501": 36, "earli": 36, "career": 36, "sc0021187": 36, "0000247070": 36, "european": 36, "council": 36, "erc": 36, "union": 36, "horizon": 36, "2020": [36, 37, 38, 39], "innov": 36, "grant": 36, "772369": 36, "thank": 36, "vloncar": [36, 37], "jmduart": [36, 37], "thesp": [36, 37], "jmitrev": [36, 37], "nhanvtran": 36, "bo3z": [36, 37], "benjaminkrei": 36, "nicologhielmetti": [36, 37], "jngadiub": 36, "drankincm": [36, 37], "duchstf": [36, 37], "calad0i": [36, 37], "hamzajaved780": 36, "commit": [36, 37], "ci": [36, 37], "bot": 36, "ejk43": 36, "keb": [36, 37], "janfschult": [36, 37], "adrianalan": [36, 37], "maksgraczyk": [36, 37], "yiiyama": [36, 37], "ngpaladi": 36, "d": 36, "gol": 36, "joshlern": [36, 37], "zhenbinwu": 36, "delonshen": 36, "pitmonticon": [36, 37], "jochist": [36, 37], "melko": 36, "dependabot": [36, 37], "qberthet": [36, 37], "veyron8800": 36, "jicampo": 36, "apfusco": [36, 37], "ander": [36, 37], "wind": [36, 37], "bkmgit": [36, 37], "chiruichen": [36, 37], "siorpa": [36, 37], "jonathan": [36, 37], "shoemak": [36, 37], "kovi89alip": [36, 37], "consvin": [36, 37], "pzejdl": 36, "guyzsarun": 36, "selwyn96": [36, 37], "schsu": 36, "thaarr": 36, "cgutsch": [36, 37], "katyagovorkova": [36, 37], "nemerchiedd": [36, 37], "11": [37, 38], "pypi": [37, 39], "decoupl": 37, "781": 37, "770": 37, "tf_to_hl": 37, "795": 37, "autoupd": 37, "796": 37, "qconv2dbatchnorm": 37, "802": 37, "801": 37, "discuss": 37, "inlin": 37, "slow": 37, "down": 37, "x15": 37, "x20": 37, "800": 37, "807": 37, "quantis": 37, "806": 37, "797": 37, "815": 37, "torch": 37, "fx": 37, "clean": 37, "799": 37, "816": 37, "794": 37, "gt": 37, "821": 37, "828": 37, "827": 37, "830": 37, "833": 37, "835": 37, "obsolet": 37, "unus": 37, "docker": 37, "836": 37, "842": 37, "847": 37, "804": 37, "845": 37, "852": 37, "851": 37, "bug": 37, "848": 37, "qdepthwiseconv2d": 37, "834": 37, "660": 37, "837": 37, "bump": 37, "866": 37, "869": 37, "runner": 37, "gitlab": 37, "879": 37, "880": 37, "877": 37, "acknowledg": 37, "862": 37, "861": 37, "863": 37, "882": 37, "891": 37, "886": 37, "884": 37, "895": 37, "887": 37, "915": 37, "902": 37, "fund": 37, "918": 37, "fetch": [37, 38], "919": 37, "blank": 37, "rst": 37, "923": 37, "ku115": 37, "924": 37, "925": 37, "contributor": 37, "changelog": [37, 39], "08": 37, "05": 37, "778": 37, "760": 37, "rnn": [37, 39], "780": 37, "jenkin": 37, "hell": 37, "786": 37, "785": 37, "minor": 37, "788": 37, "791": 37, "04": 37, "26": 37, "403": 37, "407": 37, "399": 37, "414": 37, "qkeras_mnist_dens": 37, "423": 37, "424": 37, "pyyaml": 37, "420": 37, "443": 37, "amp": 37, "448": 37, "384": 37, "disabl": [37, 38], "447": 37, "quantized_relu": 37, "ii": 37, "441": 37, "344": 37, "zeropad": 37, "480": 37, "framework": [37, 39], "395": 37, "499": 37, "501": 37, "cast": 37, "490": 37, "511": 37, "510": 37, "508": 37, "527": 37, "upsampling2d": 37, "520": 37, "upsampling1d": 37, "475": 37, "521": 37, "523": 37, "540": 37, "531": 37, "519": 37, "ingest": 37, "downstream": 37, "544": 37, "547": 37, "extens": 37, "528": 37, "416": 37, "bn": 37, "532": 37, "482": 37, "551": 37, "471": 37, "548": 37, "qactiv": 37, "553": 37, "overrid": 37, "directli": [37, 38], "567": 37, "559": 37, "transpose2d": 37, "concatenate2d": 37, "402": 37, "io_seri": 37, "info": 37, "334": 37, "453": 37, "487": 37, "few": [37, 38], "typo": 37, "467": 37, "_compute_n_sampl": 37, "537": 37, "552": 37, "sensit": 37, "577": 37, "pr": 37, "582": 37, "560": 37, "syntax": 37, "593": 37, "588": 37, "595": 37, "cppname": 37, "562": 37, "email": 37, "helplin": 37, "601": 37, "598": 37, "609": 37, "test_graph": 37, "611": 37, "597": 37, "enforc": 37, "605": 37, "583": 37, "557": 37, "qconv": 37, "612": 37, "625": 37, "602": 37, "edit": 37, "bramfactor": 37, "621": 37, "570": 37, "618": 37, "628": 37, "596": 37, "634": 37, "nondefault": 37, "626": 37, "639": 37, "direct": 37, "635": 37, "qu": 37, "575": 37, "softsign": 37, "585": 37, "561": 37, "contd": 37, "655": 37, "661": 37, "600": 37, "pytest": 37, "663": 37, "664": 37, "applied_flow": 37, "fill": 37, "641": 37, "setuptools_scm": 37, "479": 37, "argmax": 37, "627": 37, "sphinx": 37, "669": 37, "request": [37, 38], "citat": 37, "readm": 37, "615": 37, "fusion": 37, "481": 37, "wider": 37, "averag": 37, "681": 37, "656": 37, "branch": [37, 38], "636": 37, "delet": 37, "prj": 37, "682": 37, "adiabat": 37, "678": 37, "688": 37, "689": 37, "690": 37, "703": 37, "clang": [37, 38], "mac": 37, "704": 37, "694": 37, "contrib": 37, "706": 37, "wip": 37, "kl": 37, "606": 37, "incorrectli": 37, "lint": 37, "709": 37, "encod": 37, "min_width": 37, "610": 37, "642": 37, "isort": 37, "719": 37, "727": 37, "715": 37, "keepdim": 37, "globalpool": 37, "716": 37, "724": 37, "569": 37, "nicer": 37, "730": 37, "700": 37, "714": 37, "708": 37, "629": 37, "710": 37, "742": 37, "precommit": 37, "741": 37, "mv": 37, "743": 37, "748": 37, "mess": 37, "751": 37, "cleanup": 37, "codebas": 37, "750": 37, "center": 37, "754": 37, "gpl": 37, "licens": 37, "761": 37, "757": 37, "744": 37, "763": 37, "766": 37, "weight_siz": 37, "772": 37, "749": 37, "774": 37, "15": 37, "line_buff": 37, "violatingcp": 37, "easier": 37, "vs": 37, "302": 37, "318": 37, "323": 37, "332": 37, "307": 37, "298": 37, "03": 37, "especi": 37, "previous": 37, "redefinit": 37, "standalon": 37, "deprec": 37, "superced": 37, "bugfix": [37, 38], "warn": 37, "mix": 37, "01": 37, "30": 37, "skipoptim": 37, "subtract": 37, "fuse_consecutive_batch_norm": 37, "gor": 37, "reload": 37, "emul": 37, "use_bia": 37, "31": 37, "expans": 37, "move": [37, 39], "retriev": 37, "protobuf": 37, "enhanc": 37, "gather": 37, "02": 37, "refin": 37, "2019": 37, "easi": 38, "releas": [38, 39], "toolbox": 38, "conda": 38, "forg": 38, "repositori": [38, 39], "outdat": 38, "rapidli": 38, "evolv": 38, "experiment": [38, 39], "git": [38, 39], "extern": 38, "manag": 38, "newer": 38, "compat": 38, "On": 38, "linux": [38, 39], "gcc": 38, "recent": 38, "maco": [38, 39], "demonstr": 38, "workflow": 38, "explor": 38, "minut": 38, "ve": 38, "apart": 38, "altern": 38, "pi": 38, "recurs": [38, 39], "along": 38, "cd": 38, "And": 38, "9": 39, "dev8": 39, "g9278520e": 39, "stabl": 39, "limit": 39, "perceptron": 39, "gnn": 39, "bdt": 39, "conif": 39, "init": 39}, "objects": {"": [[6, 0, 0, "-", "hls4ml"]], "hls4ml": [[7, 0, 0, "-", "backends"], [20, 0, 0, "-", "converters"], [24, 0, 0, "-", "model"], [28, 0, 0, "-", "report"], [6, 3, 1, "", "reseed"], [29, 0, 0, "-", "utils"], [30, 0, 0, "-", "writer"]], "hls4ml.backends": [[7, 0, 0, "-", "backend"], [8, 0, 0, "-", "fpga"], [10, 0, 0, "-", "quartus"], [12, 0, 0, "-", "symbolic"], [7, 0, 0, "-", "template"], [14, 0, 0, "-", "vitis"], [16, 0, 0, "-", "vivado"], [18, 0, 0, "-", "vivado_accelerator"]], "hls4ml.backends.backend": [[7, 1, 1, "", "Backend"], [7, 3, 1, "", "get_available_backends"], [7, 3, 1, "", "get_backend"], [7, 3, 1, "", "register_backend"]], "hls4ml.backends.backend.Backend": [[7, 2, 1, "", "create_initial_config"], [7, 2, 1, "", "create_layer_class"], [7, 2, 1, "", "get_available_flows"], [7, 2, 1, "", "get_custom_source"], [7, 2, 1, "", "get_default_flow"], [7, 2, 1, "", "register_pass"], [7, 2, 1, "", "register_source"], [7, 2, 1, "", "register_template"]], "hls4ml.backends.fpga": [[8, 0, 0, "-", "fpga_backend"], [8, 0, 0, "-", "fpga_layers"], [8, 0, 0, "-", "fpga_types"], [9, 0, 0, "-", "passes"]], "hls4ml.backends.fpga.fpga_backend": [[8, 1, 1, "", "FPGABackend"]], "hls4ml.backends.fpga.fpga_backend.FPGABackend": [[8, 2, 1, "", "compile"], [8, 2, 1, "", "compute_conv1d_instructions"], [8, 2, 1, "", "compute_conv2d_instructions"], [8, 2, 1, "", "convert_precision_string"], [8, 2, 1, "", "create_layer_class"], [8, 2, 1, "", "generate_conv1d_line_buffer_fn"], [8, 2, 1, "", "generate_conv2d_line_buffer_fn"], [8, 2, 1, "", "get_closest_reuse_factor"], [8, 2, 1, "", "get_layer_mult_size"], [8, 2, 1, "", "get_valid_conv_partition_splits"], [8, 2, 1, "", "get_valid_reuse_factors"], [8, 2, 1, "", "get_writer_flow"], [8, 2, 1, "", "product_type"], [8, 2, 1, "", "set_closest_reuse_factor"], [8, 2, 1, "", "set_target_reuse_factor"], [8, 2, 1, "", "write"], [8, 2, 1, "", "write_hls"]], "hls4ml.backends.fpga.fpga_layers": [[8, 1, 1, "", "BatchNormalizationQuantizedTanh"], [8, 1, 1, "", "PointwiseConv1D"], [8, 1, 1, "", "PointwiseConv2D"]], "hls4ml.backends.fpga.fpga_layers.BatchNormalizationQuantizedTanh": [[8, 2, 1, "", "initialize"], [8, 2, 1, "", "set_thresholds"]], "hls4ml.backends.fpga.fpga_types": [[8, 1, 1, "", "ACFixedPrecisionDefinition"], [8, 1, 1, "", "ACIntegerPrecisionDefinition"], [8, 1, 1, "", "ACTypeConverter"], [8, 1, 1, "", "APFixedPrecisionDefinition"], [8, 1, 1, "", "APIntegerPrecisionDefinition"], [8, 1, 1, "", "APTypeConverter"], [8, 1, 1, "", "ArrayVariableConverter"], [8, 1, 1, "", "BramWeightVariableConverter"], [8, 1, 1, "", "CompressedTypeConverter"], [8, 1, 1, "", "ExponentTypeConverter"], [8, 1, 1, "", "FixedPrecisionConverter"], [8, 1, 1, "", "HLSTypeConverter"], [8, 1, 1, "", "InplaceStreamVariableConverter"], [8, 1, 1, "", "NamedTypeConverter"], [8, 1, 1, "", "PackedTypeConverter"], [8, 1, 1, "", "PrecisionConverter"], [8, 1, 1, "", "PrecisionDefinition"], [8, 1, 1, "", "QuartusArrayVariableConverter"], [8, 1, 1, "", "QuartusArrayVariableDefinition"], [8, 1, 1, "", "QuartusInplaceArrayVariableConverter"], [8, 1, 1, "", "QuartusInplaceArrayVariableDefinition"], [8, 1, 1, "", "QuartusInplaceStreamVariableConverter"], [8, 1, 1, "", "QuartusInplaceStreamVariableDefinition"], [8, 1, 1, "", "QuartusStreamVariableConverter"], [8, 1, 1, "", "QuartusStreamVariableDefinition"], [8, 1, 1, "", "QuartusStructMemberVariableConverter"], [8, 1, 1, "", "QuartusStructMemberVariableDefinition"], [8, 1, 1, "", "StaticWeightVariableConverter"], [8, 1, 1, "", "StaticWeightVariableDefinition"], [8, 1, 1, "", "StreamVariableConverter"], [8, 1, 1, "", "StructMemberVariableConverter"], [8, 1, 1, "", "TypeDefinition"], [8, 1, 1, "", "TypePrecisionConverter"], [8, 1, 1, "", "VariableDefinition"], [8, 1, 1, "", "VivadoArrayVariableConverter"], [8, 1, 1, "", "VivadoArrayVariableDefinition"], [8, 1, 1, "", "VivadoInplaceArrayVariableConverter"], [8, 1, 1, "", "VivadoInplaceArrayVariableDefinition"], [8, 1, 1, "", "VivadoInplaceStreamVariableConverter"], [8, 1, 1, "", "VivadoInplaceStreamVariableDefinition"], [8, 1, 1, "", "VivadoStreamVariableConverter"], [8, 1, 1, "", "VivadoStreamVariableDefinition"]], "hls4ml.backends.fpga.fpga_types.ACFixedPrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ACIntegerPrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.APFixedPrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.APIntegerPrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ArrayVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.BramWeightVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.CompressedTypeConverter": [[8, 2, 1, "", "convert_precision"], [8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ExponentTypeConverter": [[8, 2, 1, "", "convert_precision"], [8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.FixedPrecisionConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.HLSTypeConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.InplaceStreamVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.NamedTypeConverter": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.PackedTypeConverter": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.PrecisionConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.PrecisionDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusArrayVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusInplaceArrayVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusInplaceStreamVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusStreamVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.QuartusStructMemberVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.StaticWeightVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.StaticWeightVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.StreamVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.StructMemberVariableConverter": [[8, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.TypeDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.TypePrecisionConverter": [[8, 2, 1, "", "convert_precision"]], "hls4ml.backends.fpga.fpga_types.VariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.VivadoArrayVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.VivadoInplaceArrayVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.VivadoInplaceStreamVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.VivadoStreamVariableDefinition": [[8, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.passes": [[9, 0, 0, "-", "bn_quant"], [9, 0, 0, "-", "bram_weights"], [9, 0, 0, "-", "clone"], [9, 0, 0, "-", "codegen"], [9, 0, 0, "-", "embedding"], [9, 0, 0, "-", "final_reshape"], [9, 0, 0, "-", "fix_softmax_table_size"], [9, 0, 0, "-", "inplace_parallel_reshape"], [9, 0, 0, "-", "inplace_stream_flatten"], [9, 0, 0, "-", "remove_softmax"], [9, 0, 0, "-", "repack_stream"], [9, 0, 0, "-", "xnor_pooling"]], "hls4ml.backends.fpga.passes.bn_quant": [[9, 1, 1, "", "BatchNormalizationQuantizedTanhConfigTemplate"], [9, 1, 1, "", "BatchNormalizationQuantizedTanhFunctionTemplate"], [9, 1, 1, "", "MergeBatchNormAndQuantizedTanh"], [9, 1, 1, "", "QuantizeDenseOutput"], [9, 3, 1, "", "register_bn_quant"]], "hls4ml.backends.fpga.passes.bn_quant.BatchNormalizationQuantizedTanhConfigTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.bn_quant.BatchNormalizationQuantizedTanhFunctionTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.bn_quant.MergeBatchNormAndQuantizedTanh": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.bn_quant.QuantizeDenseOutput": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.bram_weights": [[9, 1, 1, "", "RegisterBramWeights"]], "hls4ml.backends.fpga.passes.bram_weights.RegisterBramWeights": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.clone": [[9, 1, 1, "", "Clone"], [9, 1, 1, "", "CloneFunctionTemplate"], [9, 1, 1, "", "CloneOutput"], [9, 3, 1, "", "register_clone"]], "hls4ml.backends.fpga.passes.clone.Clone": [[9, 2, 1, "", "initialize"]], "hls4ml.backends.fpga.passes.clone.CloneFunctionTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.clone.CloneOutput": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.codegen": [[9, 1, 1, "", "GenerateConvIm2col"]], "hls4ml.backends.fpga.passes.codegen.GenerateConvIm2col": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.embedding": [[9, 1, 1, "", "EmbeddingConfigTemplate"], [9, 1, 1, "", "EmbeddingFunctionTemplate"]], "hls4ml.backends.fpga.passes.embedding.EmbeddingConfigTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.embedding.EmbeddingFunctionTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.final_reshape": [[9, 1, 1, "", "RemoveFinalReshape"]], "hls4ml.backends.fpga.passes.final_reshape.RemoveFinalReshape": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.fix_softmax_table_size": [[9, 1, 1, "", "FixSoftmaxTableSize"], [9, 3, 1, "", "register_softmax__table_size_fix"]], "hls4ml.backends.fpga.passes.fix_softmax_table_size.FixSoftmaxTableSize": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.inplace_parallel_reshape": [[9, 1, 1, "", "InplaceParallelReshape"]], "hls4ml.backends.fpga.passes.inplace_parallel_reshape.InplaceParallelReshape": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.inplace_stream_flatten": [[9, 1, 1, "", "InplaceStreamFlatten"]], "hls4ml.backends.fpga.passes.inplace_stream_flatten.InplaceStreamFlatten": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.remove_softmax": [[9, 1, 1, "", "SkipSoftmax"]], "hls4ml.backends.fpga.passes.remove_softmax.SkipSoftmax": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.repack_stream": [[9, 1, 1, "", "Repack"], [9, 1, 1, "", "RepackFunctionTemplate"], [9, 1, 1, "", "ReshapeStream"], [9, 3, 1, "", "register_repack_stream"]], "hls4ml.backends.fpga.passes.repack_stream.Repack": [[9, 2, 1, "", "initialize"]], "hls4ml.backends.fpga.passes.repack_stream.RepackFunctionTemplate": [[9, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.repack_stream.ReshapeStream": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.xnor_pooling": [[9, 1, 1, "", "XnorPooling"]], "hls4ml.backends.fpga.passes.xnor_pooling.XnorPooling": [[9, 2, 1, "", "match"], [9, 2, 1, "", "transform"]], "hls4ml.backends.quartus": [[11, 0, 0, "-", "passes"], [10, 0, 0, "-", "quartus_backend"]], "hls4ml.backends.quartus.passes": [[11, 0, 0, "-", "convolution_templates"], [11, 0, 0, "-", "convolution_winograd"], [11, 0, 0, "-", "core_templates"], [11, 0, 0, "-", "merge_templates"], [11, 0, 0, "-", "pointwise"], [11, 0, 0, "-", "pooling_templates"], [11, 0, 0, "-", "quantization_templates"], [11, 0, 0, "-", "recurrent_templates"], [11, 0, 0, "-", "reshaping_templates"], [11, 0, 0, "-", "resource_strategy"], [11, 0, 0, "-", "transform_types"]], "hls4ml.backends.quartus.passes.convolution_templates": [[11, 1, 1, "", "Conv1DConfigTemplate"], [11, 1, 1, "", "Conv1DFunctionTemplate"], [11, 1, 1, "", "Conv2DConfigTemplate"], [11, 1, 1, "", "Conv2DFunctionTemplate"], [11, 4, 1, "", "conv_mult_config_template"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv1DConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv1DFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv2DConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv2DFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_winograd": [[11, 1, 1, "", "ApplyWinogradKernelTransformation"]], "hls4ml.backends.quartus.passes.convolution_winograd.ApplyWinogradKernelTransformation": [[11, 2, 1, "", "match"], [11, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.core_templates": [[11, 1, 1, "", "ActivationConfigTemplate"], [11, 1, 1, "", "ActivationFunctionTemplate"], [11, 1, 1, "", "BatchNormalizationConfigTemplate"], [11, 1, 1, "", "BatchNormalizationFunctionTemplate"], [11, 1, 1, "", "DenseConfigTemplate"], [11, 1, 1, "", "DenseFunctionTemplate"], [11, 1, 1, "", "HardActivationConfigTemplate"], [11, 1, 1, "", "PReLUFunctionTemplate"], [11, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [11, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.quartus.passes.core_templates.ActivationConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ActivationFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.BatchNormalizationConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.BatchNormalizationFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.DenseConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.DenseFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.HardActivationConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.PReLUFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ParametrizedActivationFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates": [[11, 1, 1, "", "ConcatenateConfigTemplate"], [11, 1, 1, "", "DotConfigTemplate"], [11, 1, 1, "", "MergeConfigTemplate"], [11, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.quartus.passes.merge_templates.ConcatenateConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.DotConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.MergeConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.MergeFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.pointwise": [[11, 1, 1, "", "OptimizePointwiseConv"], [11, 1, 1, "", "PointwiseConv1DConfigTemplate"], [11, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [11, 1, 1, "", "PointwiseConv2DConfigTemplate"], [11, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [11, 3, 1, "", "register_pointwise"]], "hls4ml.backends.quartus.passes.pointwise.OptimizePointwiseConv": [[11, 2, 1, "", "match"], [11, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.pooling_templates": [[11, 1, 1, "", "PoolingConfigTemplate"], [11, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.quartus.passes.pooling_templates.PoolingConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.pooling_templates.PoolingFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.quantization_templates": [[11, 1, 1, "", "ApplyAlphaConfigTemplate"], [11, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.quartus.passes.quantization_templates.ApplyAlphaConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates": [[11, 1, 1, "", "GRUConfigTemplate"], [11, 1, 1, "", "GRUFunctionTemplate"], [11, 1, 1, "", "LSTMConfigTemplate"], [11, 1, 1, "", "LSTMFunctionTemplate"], [11, 1, 1, "", "SimpleRNNConfigTemplate"], [11, 1, 1, "", "SimpleRNNFunctionTemplate"]], "hls4ml.backends.quartus.passes.recurrent_templates.GRUConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.GRUFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.LSTMConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.LSTMFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.SimpleRNNConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.SimpleRNNFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates": [[11, 1, 1, "", "ResizeConfigTemplate"], [11, 1, 1, "", "ResizeFunctionTemplate"], [11, 1, 1, "", "TransposeConfigTemplate"], [11, 1, 1, "", "TransposeFunctionTemplate"], [11, 1, 1, "", "ZeroPaddingConfigTemplate"], [11, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.quartus.passes.reshaping_templates.ResizeConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ResizeFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.TransposeConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.TransposeFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[11, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.resource_strategy": [[11, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.quartus.passes.resource_strategy.ApplyResourceStrategy": [[11, 2, 1, "", "match"], [11, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.transform_types": [[11, 1, 1, "", "TransformTypes"]], "hls4ml.backends.quartus.passes.transform_types.TransformTypes": [[11, 2, 1, "", "transform"]], "hls4ml.backends.quartus.quartus_backend": [[10, 1, 1, "", "QuartusBackend"], [10, 3, 1, "", "chdir"]], "hls4ml.backends.quartus.quartus_backend.QuartusBackend": [[10, 2, 1, "", "build"], [10, 2, 1, "", "create_initial_config"], [10, 2, 1, "", "get_default_flow"], [10, 2, 1, "", "get_writer_flow"], [10, 2, 1, "", "init_activation"], [10, 2, 1, "", "init_base_layer"], [10, 2, 1, "", "init_conv1d"], [10, 2, 1, "", "init_conv2d"], [10, 2, 1, "", "init_dense"], [10, 2, 1, "", "init_embed"], [10, 2, 1, "", "init_gru"], [10, 2, 1, "", "init_lstm"], [10, 2, 1, "", "init_simple_rnn"], [10, 2, 1, "", "init_softmax"]], "hls4ml.backends.symbolic": [[13, 0, 0, "-", "passes"], [12, 0, 0, "-", "symbolic_backend"]], "hls4ml.backends.symbolic.passes": [[13, 0, 0, "-", "validate_lut"]], "hls4ml.backends.symbolic.passes.validate_lut": [[13, 1, 1, "", "ValidateUserLookupTable"]], "hls4ml.backends.symbolic.passes.validate_lut.ValidateUserLookupTable": [[13, 2, 1, "", "match"], [13, 2, 1, "", "transform"]], "hls4ml.backends.symbolic.symbolic_backend": [[12, 1, 1, "", "SymbolicExpressionBackend"]], "hls4ml.backends.symbolic.symbolic_backend.SymbolicExpressionBackend": [[12, 2, 1, "", "build"], [12, 2, 1, "", "create_initial_config"], [12, 2, 1, "", "get_default_flow"], [12, 2, 1, "", "get_writer_flow"]], "hls4ml.backends.template": [[7, 1, 1, "", "FunctionCallTemplate"], [7, 1, 1, "", "LayerConfigTemplate"], [7, 1, 1, "", "Template"]], "hls4ml.backends.template.FunctionCallTemplate": [[7, 2, 1, "", "transform"]], "hls4ml.backends.template.Template": [[7, 2, 1, "", "format"], [7, 2, 1, "", "get_name"], [7, 2, 1, "", "match"], [7, 2, 1, "", "transform"]], "hls4ml.backends.vitis": [[15, 0, 0, "-", "passes"], [14, 0, 0, "-", "vitis_backend"]], "hls4ml.backends.vitis.passes": [[15, 0, 0, "-", "feature_check"]], "hls4ml.backends.vitis.passes.feature_check": [[15, 1, 1, "", "ValidateConvImplementation"], [15, 1, 1, "", "ValidateStrategy"]], "hls4ml.backends.vitis.passes.feature_check.ValidateConvImplementation": [[15, 2, 1, "", "match"], [15, 2, 1, "", "transform"]], "hls4ml.backends.vitis.passes.feature_check.ValidateStrategy": [[15, 2, 1, "", "match"], [15, 2, 1, "", "transform"]], "hls4ml.backends.vitis.vitis_backend": [[14, 1, 1, "", "VitisBackend"]], "hls4ml.backends.vitis.vitis_backend.VitisBackend": [[14, 2, 1, "", "build"]], "hls4ml.backends.vivado": [[17, 0, 0, "-", "passes"], [16, 0, 0, "-", "vivado_backend"]], "hls4ml.backends.vivado.passes": [[17, 0, 0, "-", "broadcast_stream"], [17, 0, 0, "-", "conv_same_pad"], [17, 0, 0, "-", "conv_stream"], [17, 0, 0, "-", "convolution_templates"], [17, 0, 0, "-", "core_templates"], [17, 0, 0, "-", "fifo_depth_optimization"], [17, 0, 0, "-", "garnet_templates"], [17, 0, 0, "-", "merge_templates"], [17, 0, 0, "-", "pointwise"], [17, 0, 0, "-", "pooling_templates"], [17, 0, 0, "-", "quantization_templates"], [17, 0, 0, "-", "recurrent_templates"], [17, 0, 0, "-", "reshaping_templates"], [17, 0, 0, "-", "resource_strategy"], [17, 0, 0, "-", "transform_types"]], "hls4ml.backends.vivado.passes.broadcast_stream": [[17, 1, 1, "", "Broadcast"], [17, 1, 1, "", "BroadcastConfigTemplate"], [17, 1, 1, "", "BroadcastFunctionTemplate"], [17, 1, 1, "", "BroadcastStream"], [17, 3, 1, "", "register_broadcast_stream"]], "hls4ml.backends.vivado.passes.broadcast_stream.Broadcast": [[17, 2, 1, "", "initialize"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastStream": [[17, 2, 1, "", "match"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_same_pad": [[17, 1, 1, "", "InsertZeroPaddingBeforeConv1D"], [17, 1, 1, "", "InsertZeroPaddingBeforeConv2D"]], "hls4ml.backends.vivado.passes.conv_same_pad.InsertZeroPaddingBeforeConv1D": [[17, 2, 1, "", "match"], [17, 5, 1, "", "name"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_same_pad.InsertZeroPaddingBeforeConv2D": [[17, 2, 1, "", "match"], [17, 5, 1, "", "name"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_stream": [[17, 1, 1, "", "GenerateConvStreamingInstructions"]], "hls4ml.backends.vivado.passes.conv_stream.GenerateConvStreamingInstructions": [[17, 2, 1, "", "match"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.convolution_templates": [[17, 1, 1, "", "Conv1DConfigTemplate"], [17, 1, 1, "", "Conv1DFunctionTemplate"], [17, 1, 1, "", "Conv2DConfigTemplate"], [17, 1, 1, "", "Conv2DFunctionTemplate"], [17, 1, 1, "", "DepthwiseConv1DFunctionTemplate"], [17, 1, 1, "", "DepthwiseConv2DFunctionTemplate"], [17, 1, 1, "", "SeparableConv1DConfigTemplate"], [17, 1, 1, "", "SeparableConv1DFunctionTemplate"], [17, 1, 1, "", "SeparableConv2DConfigTemplate"], [17, 1, 1, "", "SeparableConv2DFunctionTemplate"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv1DConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv1DFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv2DConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv2DFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv1DConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv1DFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv2DConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv2DFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates": [[17, 1, 1, "", "ActivationConfigTemplate"], [17, 1, 1, "", "ActivationFunctionTemplate"], [17, 1, 1, "", "BatchNormalizationConfigTemplate"], [17, 1, 1, "", "BatchNormalizationFunctionTemplate"], [17, 1, 1, "", "DenseConfigTemplate"], [17, 1, 1, "", "DenseFunctionTemplate"], [17, 1, 1, "", "HardActivationConfigTemplate"], [17, 1, 1, "", "PReLUFunctionTemplate"], [17, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [17, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.vivado.passes.core_templates.ActivationConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ActivationFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.BatchNormalizationConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.BatchNormalizationFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.DenseConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.DenseFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.HardActivationConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.PReLUFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ParametrizedActivationFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.fifo_depth_optimization": [[17, 1, 1, "", "FifoDepthOptimization"], [17, 3, 1, "", "generate_max_depth_file"], [17, 3, 1, "", "get_vcd_data"], [17, 3, 1, "", "populate_values"], [17, 3, 1, "", "set_big_fifos"], [17, 3, 1, "", "set_fifo_depth"]], "hls4ml.backends.vivado.passes.fifo_depth_optimization.FifoDepthOptimization": [[17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.garnet_templates": [[17, 1, 1, "", "GarNetConfigTemplate"], [17, 1, 1, "", "GarNetFunctionTemplate"], [17, 1, 1, "", "GarNetStackConfigTemplate"], [17, 1, 1, "", "GarNetStackFunctionTemplate"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetConfigTemplate": [[17, 2, 1, "", "format"], [17, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetStackConfigTemplate": [[17, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.vivado.passes.merge_templates": [[17, 1, 1, "", "ConcatenateConfigTemplate"], [17, 1, 1, "", "DotConfigTemplate"], [17, 1, 1, "", "MergeConfigTemplate"], [17, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.vivado.passes.merge_templates.ConcatenateConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.DotConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.MergeConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.MergeFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.pointwise": [[17, 1, 1, "", "OptimizePointwiseConv"], [17, 1, 1, "", "PointwiseConv1DConfigTemplate"], [17, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [17, 1, 1, "", "PointwiseConv2DConfigTemplate"], [17, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [17, 3, 1, "", "register_pointwise"]], "hls4ml.backends.vivado.passes.pointwise.OptimizePointwiseConv": [[17, 2, 1, "", "match"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.pooling_templates": [[17, 1, 1, "", "PoolingConfigTemplate"], [17, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.vivado.passes.pooling_templates.PoolingConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.pooling_templates.PoolingFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.quantization_templates": [[17, 1, 1, "", "ApplyAlphaConfigTemplate"], [17, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.vivado.passes.quantization_templates.ApplyAlphaConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.recurrent_templates": [[17, 1, 1, "", "RecurrentConfigTemplate"], [17, 1, 1, "", "RecurrentFunctionTemplate"]], "hls4ml.backends.vivado.passes.recurrent_templates.RecurrentConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.recurrent_templates.RecurrentFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates": [[17, 1, 1, "", "ResizeConfigTemplate"], [17, 1, 1, "", "ResizeFunctionTemplate"], [17, 1, 1, "", "TransposeConfigTemplate"], [17, 1, 1, "", "TransposeFunctionTemplate"], [17, 1, 1, "", "ZeroPaddingConfigTemplate"], [17, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.vivado.passes.reshaping_templates.ResizeConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ResizeFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.TransposeConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.TransposeFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[17, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.resource_strategy": [[17, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.vivado.passes.resource_strategy.ApplyResourceStrategy": [[17, 2, 1, "", "match"], [17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.transform_types": [[17, 1, 1, "", "TransformTypes"]], "hls4ml.backends.vivado.passes.transform_types.TransformTypes": [[17, 2, 1, "", "transform"]], "hls4ml.backends.vivado.vivado_backend": [[16, 1, 1, "", "VivadoBackend"]], "hls4ml.backends.vivado.vivado_backend.VivadoBackend": [[16, 2, 1, "", "build"], [16, 2, 1, "", "create_initial_config"], [16, 2, 1, "", "get_default_flow"], [16, 2, 1, "", "get_writer_flow"], [16, 2, 1, "", "init_base_layer"], [16, 2, 1, "", "init_conv1d"], [16, 2, 1, "", "init_conv2d"], [16, 2, 1, "", "init_dense"], [16, 2, 1, "", "init_depconv2d"], [16, 2, 1, "", "init_embed"], [16, 2, 1, "", "init_garnet"], [16, 2, 1, "", "init_garnet_stack"], [16, 2, 1, "", "init_global_pooling1d"], [16, 2, 1, "", "init_global_pooling2d"], [16, 2, 1, "", "init_gru"], [16, 2, 1, "", "init_lstm"], [16, 2, 1, "", "init_pooling1d"], [16, 2, 1, "", "init_pooling2d"], [16, 2, 1, "", "init_sepconv1d"], [16, 2, 1, "", "init_sepconv2d"], [16, 2, 1, "", "init_softmax"]], "hls4ml.backends.vivado_accelerator": [[19, 0, 0, "-", "passes"], [18, 0, 0, "-", "vivado_accelerator_backend"], [18, 0, 0, "-", "vivado_accelerator_config"]], "hls4ml.backends.vivado_accelerator.passes": [[19, 0, 0, "-", "fifo_depth_optimization"]], "hls4ml.backends.vivado_accelerator.passes.fifo_depth_optimization": [[19, 1, 1, "", "FifoDepthOptimization"]], "hls4ml.backends.vivado_accelerator.passes.fifo_depth_optimization.FifoDepthOptimization": [[19, 2, 1, "", "transform"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_backend": [[18, 1, 1, "", "VivadoAcceleratorBackend"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_backend.VivadoAcceleratorBackend": [[18, 2, 1, "", "build"], [18, 2, 1, "", "create_initial_config"], [18, 2, 1, "", "get_default_flow"], [18, 2, 1, "", "get_writer_flow"], [18, 2, 1, "", "make_xclbin"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_config": [[18, 1, 1, "", "VivadoAcceleratorConfig"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_config.VivadoAcceleratorConfig": [[18, 2, 1, "", "get_board"], [18, 2, 1, "", "get_board_info"], [18, 2, 1, "", "get_clock_period"], [18, 2, 1, "", "get_corrected_types"], [18, 2, 1, "", "get_driver"], [18, 2, 1, "", "get_driver_file"], [18, 2, 1, "", "get_driver_path"], [18, 2, 1, "", "get_input_type"], [18, 2, 1, "", "get_interface"], [18, 2, 1, "", "get_io_bitwidth"], [18, 2, 1, "", "get_krnl_rtl_src_dir"], [18, 2, 1, "", "get_output_type"], [18, 2, 1, "", "get_part"], [18, 2, 1, "", "get_platform"], [18, 2, 1, "", "get_tcl_file_path"]], "hls4ml.converters": [[20, 3, 1, "", "convert_from_config"], [20, 3, 1, "", "convert_from_keras_model"], [20, 3, 1, "", "convert_from_onnx_model"], [20, 3, 1, "", "convert_from_pytorch_model"], [20, 3, 1, "", "convert_from_symbolic_expression"], [21, 0, 0, "-", "keras"], [20, 0, 0, "-", "keras_to_hls"], [22, 0, 0, "-", "onnx"], [20, 0, 0, "-", "onnx_to_hls"], [20, 3, 1, "", "parse_yaml_config"], [23, 0, 0, "-", "pytorch"], [20, 0, 0, "-", "utils"]], "hls4ml.converters.keras": [[21, 0, 0, "-", "convolution"], [21, 0, 0, "-", "core"], [21, 0, 0, "-", "graph"], [21, 0, 0, "-", "merge"], [21, 0, 0, "-", "model"], [21, 0, 0, "-", "pooling"], [21, 0, 0, "-", "qkeras"], [21, 0, 0, "-", "recurrent"], [21, 0, 0, "-", "reshape"], [21, 0, 0, "-", "reshaping"]], "hls4ml.converters.keras.convolution": [[21, 3, 1, "", "parse_conv1d_layer"], [21, 3, 1, "", "parse_conv2d_layer"]], "hls4ml.converters.keras.core": [[21, 3, 1, "", "parse_activation_layer"], [21, 3, 1, "", "parse_batchnorm_layer"], [21, 3, 1, "", "parse_dense_layer"], [21, 3, 1, "", "parse_embedding_layer"], [21, 3, 1, "", "parse_input_layer"]], "hls4ml.converters.keras.graph": [[21, 3, 1, "", "parse_garnet_layer"]], "hls4ml.converters.keras.merge": [[21, 3, 1, "", "parse_merge_layer"]], "hls4ml.converters.keras.model": [[21, 3, 1, "", "parse_model_layer"]], "hls4ml.converters.keras.pooling": [[21, 3, 1, "", "parse_global_pooling_layer"], [21, 3, 1, "", "parse_pooling_layer"]], "hls4ml.converters.keras.qkeras": [[21, 3, 1, "", "get_quantizer_from_config"], [21, 3, 1, "", "parse_qactivation_layer"], [21, 3, 1, "", "parse_qbatchnorm_layer"], [21, 3, 1, "", "parse_qconv2dbatchnorm_layer"], [21, 3, 1, "", "parse_qconv_layer"], [21, 3, 1, "", "parse_qdense_layer"], [21, 3, 1, "", "parse_qdepthwiseqconv_layer"], [21, 3, 1, "", "parse_qsepconv_layer"]], "hls4ml.converters.keras.recurrent": [[21, 3, 1, "", "parse_rnn_layer"]], "hls4ml.converters.keras.reshape": [[21, 3, 1, "", "parse_flatten_layer"], [21, 3, 1, "", "parse_permute_layer"], [21, 3, 1, "", "parse_reshape_layer"], [21, 3, 1, "", "parse_upsampling1d_layer"], [21, 3, 1, "", "parse_upsampling2d_layer"]], "hls4ml.converters.keras.reshaping": [[21, 3, 1, "", "parse_zeropadding1d_layer"], [21, 3, 1, "", "parse_zeropadding2d_layer"]], "hls4ml.converters.keras_to_hls": [[20, 1, 1, "", "KerasFileReader"], [20, 1, 1, "", "KerasModelReader"], [20, 1, 1, "", "KerasNestedFileReader"], [20, 1, 1, "", "KerasReader"], [20, 3, 1, "", "get_model_arch"], [20, 3, 1, "", "get_supported_keras_layers"], [20, 3, 1, "", "get_weights_data"], [20, 3, 1, "", "keras_handler"], [20, 3, 1, "", "keras_to_hls"], [20, 3, 1, "", "parse_default_keras_layer"], [20, 3, 1, "", "parse_keras_model"], [20, 3, 1, "", "register_keras_layer_handler"]], "hls4ml.converters.keras_to_hls.KerasFileReader": [[20, 2, 1, "", "get_weights_data"]], "hls4ml.converters.keras_to_hls.KerasModelReader": [[20, 2, 1, "", "get_weights_data"]], "hls4ml.converters.keras_to_hls.KerasReader": [[20, 2, 1, "", "get_weights_data"]], "hls4ml.converters.onnx": [[22, 0, 0, "-", "convolution"], [22, 0, 0, "-", "core"], [22, 0, 0, "-", "merge"], [22, 0, 0, "-", "pooling"], [22, 0, 0, "-", "reshape"]], "hls4ml.converters.onnx.convolution": [[22, 3, 1, "", "parse_conv_layer"]], "hls4ml.converters.onnx.core": [[22, 3, 1, "", "parse_activation_layer"], [22, 3, 1, "", "parse_batchnorm_layer"], [22, 3, 1, "", "parse_gemm_layer"]], "hls4ml.converters.onnx.merge": [[22, 3, 1, "", "parse_merge_layer"]], "hls4ml.converters.onnx.pooling": [[22, 3, 1, "", "parse_global_pooling_layer"], [22, 3, 1, "", "parse_pool_layer"]], "hls4ml.converters.onnx.reshape": [[22, 3, 1, "", "parse_reshape_layer"], [22, 3, 1, "", "parse_transpose_layer"]], "hls4ml.converters.onnx_to_hls": [[20, 1, 1, "", "ONNXDataReader"], [20, 3, 1, "", "compute_pads_1d"], [20, 3, 1, "", "compute_pads_2d"], [20, 3, 1, "", "get_input_shape"], [20, 3, 1, "", "get_onnx_attribute"], [20, 3, 1, "", "get_onnx_input_name"], [20, 3, 1, "", "get_out_layer_name"], [20, 3, 1, "", "get_supported_onnx_layers"], [20, 3, 1, "", "onnx_handler"], [20, 3, 1, "", "onnx_to_hls"], [20, 3, 1, "", "register_onnx_layer_handler"], [20, 3, 1, "", "replace_char_inconsitency"], [20, 3, 1, "", "sanitize_layer_name"]], "hls4ml.converters.onnx_to_hls.ONNXDataReader": [[20, 2, 1, "", "add_input"], [20, 2, 1, "", "get_weights_data"]], "hls4ml.converters.utils": [[20, 3, 1, "", "compute_padding_1d"], [20, 3, 1, "", "compute_padding_1d_pytorch"], [20, 3, 1, "", "compute_padding_2d"], [20, 3, 1, "", "compute_padding_2d_pytorch"], [20, 3, 1, "", "parse_data_format"]], "hls4ml.model": [[24, 0, 0, "-", "attributes"], [25, 0, 0, "-", "flow"], [24, 0, 0, "-", "graph"], [24, 0, 0, "-", "layers"], [26, 0, 0, "-", "optimizer"], [24, 0, 0, "-", "profiling"], [24, 0, 0, "-", "types"]], "hls4ml.model.attributes": [[24, 1, 1, "", "Attribute"], [24, 1, 1, "", "AttributeDict"], [24, 1, 1, "", "AttributeMapping"], [24, 1, 1, "", "ChoiceAttribute"], [24, 1, 1, "", "CodeAttrubute"], [24, 1, 1, "", "CodeMapping"], [24, 1, 1, "", "ConfigurableAttribute"], [24, 1, 1, "", "TypeAttribute"], [24, 1, 1, "", "TypeMapping"], [24, 1, 1, "", "VariableMapping"], [24, 1, 1, "", "WeightAttribute"], [24, 1, 1, "", "WeightMapping"]], "hls4ml.model.attributes.Attribute": [[24, 6, 1, "", "config_name"], [24, 2, 1, "", "validate_value"]], "hls4ml.model.attributes.ChoiceAttribute": [[24, 2, 1, "", "validate_value"]], "hls4ml.model.flow": [[25, 0, 0, "-", "flow"]], "hls4ml.model.flow.flow": [[25, 1, 1, "", "DynamicFlow"], [25, 1, 1, "", "Flow"], [25, 3, 1, "", "get_available_flows"], [25, 3, 1, "", "get_backend_flows"], [25, 3, 1, "", "get_flow"], [25, 3, 1, "", "register_flow"], [25, 3, 1, "", "update_flow"]], "hls4ml.model.flow.flow.DynamicFlow": [[25, 6, 1, "", "optimizers"]], "hls4ml.model.flow.flow.Flow": [[25, 6, 1, "", "optimizers"]], "hls4ml.model.graph": [[24, 1, 1, "", "HLSConfig"], [24, 1, 1, "", "ModelGraph"]], "hls4ml.model.graph.HLSConfig": [[24, 2, 1, "", "get_bram_size"], [24, 2, 1, "", "get_compression"], [24, 2, 1, "", "get_config_value"], [24, 2, 1, "", "get_conv_implementation"], [24, 2, 1, "", "get_layer_config"], [24, 2, 1, "", "get_layer_config_value"], [24, 2, 1, "", "get_output_dir"], [24, 2, 1, "", "get_precision"], [24, 2, 1, "", "get_project_name"], [24, 2, 1, "", "get_reuse_factor"], [24, 2, 1, "", "get_strategy"], [24, 2, 1, "", "get_target_cycles"], [24, 2, 1, "", "is_resource_strategy"]], "hls4ml.model.graph.ModelGraph": [[24, 2, 1, "", "apply_flow"], [24, 2, 1, "", "build"], [24, 2, 1, "", "compile"], [24, 2, 1, "", "get_input_variables"], [24, 2, 1, "", "get_layer_output_variable"], [24, 2, 1, "", "get_layers"], [24, 2, 1, "", "get_output_variables"], [24, 2, 1, "", "get_weight_variables"], [24, 2, 1, "", "insert_node"], [24, 2, 1, "", "make_node"], [24, 2, 1, "", "next_layer"], [24, 2, 1, "", "predict"], [24, 2, 1, "", "register_output_variable"], [24, 2, 1, "", "remove_node"], [24, 2, 1, "", "replace_node"], [24, 2, 1, "", "trace"], [24, 2, 1, "", "write"]], "hls4ml.model.layers": [[24, 1, 1, "", "Activation"], [24, 1, 1, "", "BatchNormalization"], [24, 1, 1, "", "BiasAdd"], [24, 1, 1, "", "Concatenate"], [24, 1, 1, "", "Conv1D"], [24, 1, 1, "", "Conv2D"], [24, 1, 1, "", "Conv2DBatchnorm"], [24, 1, 1, "", "Dense"], [24, 1, 1, "", "DepthwiseConv1D"], [24, 1, 1, "", "DepthwiseConv2D"], [24, 1, 1, "", "Dot"], [24, 1, 1, "", "Embedding"], [24, 1, 1, "", "GRU"], [24, 1, 1, "", "GarNet"], [24, 1, 1, "", "GarNetStack"], [24, 1, 1, "", "GlobalPooling1D"], [24, 1, 1, "", "GlobalPooling2D"], [24, 1, 1, "", "HardActivation"], [24, 1, 1, "", "Input"], [24, 1, 1, "", "LSTM"], [24, 1, 1, "", "Layer"], [24, 1, 1, "", "LayerGroup"], [24, 1, 1, "", "Merge"], [24, 1, 1, "", "PReLU"], [24, 1, 1, "", "ParametrizedActivation"], [24, 1, 1, "", "Pooling1D"], [24, 1, 1, "", "Pooling2D"], [24, 1, 1, "", "Reshape"], [24, 1, 1, "", "Resize"], [24, 1, 1, "", "SeparableConv1D"], [24, 1, 1, "", "SeparableConv2D"], [24, 1, 1, "", "SimpleRNN"], [24, 1, 1, "", "Softmax"], [24, 1, 1, "", "SymbolicExpression"], [24, 1, 1, "", "TernaryTanh"], [24, 1, 1, "", "Transpose"], [24, 1, 1, "", "ZeroPadding1D"], [24, 1, 1, "", "ZeroPadding2D"], [24, 1, 1, "", "classproperty"], [24, 3, 1, "", "register_layer"]], "hls4ml.model.layers.Activation": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.BatchNormalization": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.BiasAdd": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Concatenate": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv2DBatchnorm": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Dense": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.DepthwiseConv1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.DepthwiseConv2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Dot": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Embedding": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.GRU": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.GarNet": [[24, 2, 1, "", "initialize"], [24, 5, 1, "", "ref_impl"]], "hls4ml.model.layers.GlobalPooling1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.GlobalPooling2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.HardActivation": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Input": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.LSTM": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Layer": [[24, 2, 1, "", "add_bias"], [24, 2, 1, "", "add_output_variable"], [24, 2, 1, "", "add_weights"], [24, 2, 1, "", "add_weights_variable"], [24, 6, 1, "", "class_name"], [24, 5, 1, "", "expected_attributes"], [24, 2, 1, "", "get_attr"], [24, 2, 1, "", "get_input_node"], [24, 2, 1, "", "get_input_variable"], [24, 2, 1, "", "get_layer_precision"], [24, 2, 1, "", "get_output_nodes"], [24, 2, 1, "", "get_output_use_map"], [24, 2, 1, "", "get_output_variable"], [24, 2, 1, "", "get_variables"], [24, 2, 1, "", "get_weights"], [24, 2, 1, "", "initialize"], [24, 2, 1, "", "set_attr"]], "hls4ml.model.layers.LayerGroup": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Merge": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.PReLU": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Pooling1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Pooling2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Reshape": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Resize": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.SeparableConv1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.SeparableConv2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.SimpleRNN": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Softmax": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.SymbolicExpression": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.TernaryTanh": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.Transpose": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.ZeroPadding1D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.layers.ZeroPadding2D": [[24, 2, 1, "", "initialize"]], "hls4ml.model.optimizer": [[26, 0, 0, "-", "optimizer"], [27, 0, 0, "-", "passes"]], "hls4ml.model.optimizer.optimizer": [[26, 1, 1, "", "ConfigurableOptimizerPass"], [26, 1, 1, "", "GlobalOptimizerPass"], [26, 1, 1, "", "LayerOptimizerPass"], [26, 1, 1, "", "ModelOptimizerPass"], [26, 1, 1, "", "OptimizerPass"], [26, 1, 1, "", "WrappedOptimizerPass"], [26, 3, 1, "", "extract_optimizers_from_object"], [26, 3, 1, "", "extract_optimizers_from_path"], [26, 3, 1, "", "get_available_passes"], [26, 3, 1, "", "get_backend_passes"], [26, 3, 1, "", "get_optimizer"], [26, 3, 1, "", "layer_optimizer"], [26, 3, 1, "", "model_optimizer"], [26, 3, 1, "", "optimize_model"], [26, 3, 1, "", "optimizer_pass"], [26, 3, 1, "", "register_pass"]], "hls4ml.model.optimizer.optimizer.ConfigurableOptimizerPass": [[26, 2, 1, "", "configure"], [26, 2, 1, "", "get_config"]], "hls4ml.model.optimizer.optimizer.GlobalOptimizerPass": [[26, 2, 1, "", "match"]], "hls4ml.model.optimizer.optimizer.ModelOptimizerPass": [[26, 2, 1, "", "transform"]], "hls4ml.model.optimizer.optimizer.OptimizerPass": [[26, 2, 1, "", "get_name"], [26, 2, 1, "", "match"], [26, 5, 1, "", "name"], [26, 2, 1, "", "transform"]], "hls4ml.model.optimizer.optimizer.WrappedOptimizerPass": [[26, 2, 1, "", "get_name"], [26, 2, 1, "", "match"], [26, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes": [[27, 0, 0, "-", "bn_fuse"], [27, 0, 0, "-", "convert_to_channels_last"], [27, 0, 0, "-", "expand_layer_group"], [27, 0, 0, "-", "fuse_biasadd"], [27, 0, 0, "-", "multi_dense"], [27, 0, 0, "-", "nop"], [27, 0, 0, "-", "precision_merge"], [27, 0, 0, "-", "qkeras"], [27, 0, 0, "-", "stamp"], [27, 0, 0, "-", "transpose_opt"]], "hls4ml.model.optimizer.passes.bn_fuse": [[27, 1, 1, "", "FuseBatchNormalization"]], "hls4ml.model.optimizer.passes.bn_fuse.FuseBatchNormalization": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.convert_to_channels_last": [[27, 1, 1, "", "ChannelsLastConverter"]], "hls4ml.model.optimizer.passes.convert_to_channels_last.ChannelsLastConverter": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.expand_layer_group": [[27, 1, 1, "", "ExpandLayerGroup"]], "hls4ml.model.optimizer.passes.expand_layer_group.ExpandLayerGroup": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.fuse_biasadd": [[27, 1, 1, "", "FuseBiasAdd"]], "hls4ml.model.optimizer.passes.fuse_biasadd.FuseBiasAdd": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.multi_dense": [[27, 1, 1, "", "ReplaceMultidimensionalDenseWithConv"]], "hls4ml.model.optimizer.passes.multi_dense.ReplaceMultidimensionalDenseWithConv": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.nop": [[27, 1, 1, "", "EliminateLinearActivation"]], "hls4ml.model.optimizer.passes.nop.EliminateLinearActivation": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.precision_merge": [[27, 1, 1, "", "SetPrecisionConcat"], [27, 3, 1, "", "get_concat_type"]], "hls4ml.model.optimizer.passes.precision_merge.SetPrecisionConcat": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras": [[27, 1, 1, "", "ApplyAlpha"], [27, 1, 1, "", "ExtractTernaryThreshold"], [27, 1, 1, "", "FuseConsecutiveBatchNormalization"], [27, 1, 1, "", "OutputRoundingSaturationMode"], [27, 1, 1, "", "QKerasFactorizeAlpha"], [27, 3, 1, "", "register_qkeras"]], "hls4ml.model.optimizer.passes.qkeras.ApplyAlpha": [[27, 2, 1, "", "add_bias"], [27, 2, 1, "", "add_weights"], [27, 2, 1, "", "initialize"]], "hls4ml.model.optimizer.passes.qkeras.ExtractTernaryThreshold": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.FuseConsecutiveBatchNormalization": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.OutputRoundingSaturationMode": [[27, 2, 1, "", "match"], [27, 2, 1, "", "precision_string_modify"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.QKerasFactorizeAlpha": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.stamp": [[27, 1, 1, "", "MakeStamp"]], "hls4ml.model.optimizer.passes.stamp.MakeStamp": [[27, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.transpose_opt": [[27, 1, 1, "", "RemoveUselessTranspose"]], "hls4ml.model.optimizer.passes.transpose_opt.RemoveUselessTranspose": [[27, 2, 1, "", "match"], [27, 2, 1, "", "transform"]], "hls4ml.model.profiling": [[24, 3, 1, "", "activation_types_hlsmodel"], [24, 3, 1, "", "activations_hlsmodel"], [24, 3, 1, "", "activations_keras"], [24, 3, 1, "", "activations_torch"], [24, 3, 1, "", "ap_fixed_WIFS"], [24, 3, 1, "", "array_to_summary"], [24, 3, 1, "", "boxplot"], [24, 3, 1, "", "compare"], [24, 3, 1, "", "get_unoptimized_hlsmodel"], [24, 3, 1, "", "get_ymodel_keras"], [24, 3, 1, "", "histogram"], [24, 3, 1, "", "numerical"], [24, 3, 1, "", "types_boxplot"], [24, 3, 1, "", "types_histogram"], [24, 3, 1, "", "types_hlsmodel"], [24, 3, 1, "", "weights_hlsmodel"], [24, 3, 1, "", "weights_keras"], [24, 3, 1, "", "weights_torch"]], "hls4ml.model.types": [[24, 1, 1, "", "BinaryQuantizer"], [24, 1, 1, "", "CompressedType"], [24, 1, 1, "", "CompressedWeightVariable"], [24, 1, 1, "", "ExponentPrecisionType"], [24, 1, 1, "", "ExponentType"], [24, 1, 1, "", "ExponentWeightVariable"], [24, 1, 1, "", "FixedPrecisionType"], [24, 1, 1, "", "InplaceTensorVariable"], [24, 1, 1, "", "IntegerPrecisionType"], [24, 1, 1, "", "NamedType"], [24, 1, 1, "", "PackedType"], [24, 1, 1, "", "PrecisionType"], [24, 1, 1, "", "QKerasBinaryQuantizer"], [24, 1, 1, "", "QKerasPO2Quantizer"], [24, 1, 1, "", "QKerasQuantizer"], [24, 1, 1, "", "Quantizer"], [24, 1, 1, "", "RoundingMode"], [24, 1, 1, "", "SaturationMode"], [24, 1, 1, "", "Source"], [24, 1, 1, "", "TensorVariable"], [24, 1, 1, "", "TernaryQuantizer"], [24, 1, 1, "", "Variable"], [24, 1, 1, "", "WeightVariable"], [24, 1, 1, "", "XnorPrecisionType"], [24, 3, 1, "", "find_minimum_width"]], "hls4ml.model.types.CompressedWeightVariable": [[24, 2, 1, "", "next"]], "hls4ml.model.types.ExponentWeightVariable": [[24, 2, 1, "", "next"]], "hls4ml.model.types.FixedPrecisionType": [[24, 6, 1, "", "rounding_mode"], [24, 6, 1, "", "saturation_mode"]], "hls4ml.model.types.RoundingMode": [[24, 5, 1, "", "RND"], [24, 5, 1, "", "RND_CONV"], [24, 5, 1, "", "RND_INF"], [24, 5, 1, "", "RND_MIN_INF"], [24, 5, 1, "", "RND_ZERO"], [24, 5, 1, "", "TRN"], [24, 5, 1, "", "TRN_ZERO"], [24, 2, 1, "", "from_string"]], "hls4ml.model.types.SaturationMode": [[24, 5, 1, "", "SAT"], [24, 5, 1, "", "SAT_SYM"], [24, 5, 1, "", "SAT_ZERO"], [24, 5, 1, "", "WRAP"], [24, 2, 1, "", "from_string"]], "hls4ml.model.types.TensorVariable": [[24, 2, 1, "", "get_shape"], [24, 2, 1, "", "size"], [24, 2, 1, "", "size_cpp"]], "hls4ml.model.types.WeightVariable": [[24, 2, 1, "", "next"], [24, 2, 1, "", "update_precision"]], "hls4ml.report": [[28, 0, 0, "-", "quartus_report"], [28, 0, 0, "-", "vivado_report"]], "hls4ml.report.quartus_report": [[28, 3, 1, "", "parse_quartus_report"], [28, 3, 1, "", "read_js_object"], [28, 3, 1, "", "read_quartus_report"]], "hls4ml.report.vivado_report": [[28, 3, 1, "", "parse_vivado_report"], [28, 3, 1, "", "print_vivado_report"], [28, 3, 1, "", "read_vivado_report"]], "hls4ml.utils": [[29, 0, 0, "-", "config"], [29, 0, 0, "-", "example_models"], [29, 0, 0, "-", "fixed_point_utils"], [29, 0, 0, "-", "plot"], [29, 0, 0, "-", "string_utils"], [29, 0, 0, "-", "symbolic_utils"]], "hls4ml.utils.config": [[29, 3, 1, "", "config_from_keras_model"], [29, 3, 1, "", "config_from_onnx_model"], [29, 3, 1, "", "config_from_pytorch_model"], [29, 3, 1, "", "create_config"]], "hls4ml.utils.example_models": [[29, 3, 1, "", "fetch_example_list"], [29, 3, 1, "", "fetch_example_model"]], "hls4ml.utils.fixed_point_utils": [[29, 1, 1, "", "FixedPointEmulator"], [29, 3, 1, "", "ceil_log2"], [29, 3, 1, "", "uint_to_binary"]], "hls4ml.utils.fixed_point_utils.FixedPointEmulator": [[29, 2, 1, "", "exp_float"], [29, 2, 1, "", "inv_float"], [29, 2, 1, "", "set_msb_bits"], [29, 2, 1, "", "to_float"]], "hls4ml.utils.plot": [[29, 3, 1, "", "add_edge"], [29, 3, 1, "", "check_pydot"], [29, 3, 1, "", "model_to_dot"], [29, 3, 1, "", "plot_model"]], "hls4ml.utils.string_utils": [[29, 3, 1, "", "convert_to_pascal_case"], [29, 3, 1, "", "convert_to_snake_case"]], "hls4ml.utils.symbolic_utils": [[29, 1, 1, "", "LUTFunction"], [29, 3, 1, "", "generate_operator_complexity"], [29, 3, 1, "", "init_pysr_lut_functions"], [29, 3, 1, "", "register_pysr_lut_function"]], "hls4ml.writer": [[30, 0, 0, "-", "quartus_writer"], [30, 0, 0, "-", "symbolic_writer"], [30, 0, 0, "-", "vitis_writer"], [30, 0, 0, "-", "vivado_accelerator_writer"], [30, 0, 0, "-", "vivado_writer"], [30, 0, 0, "-", "writers"]], "hls4ml.writer.quartus_writer": [[30, 1, 1, "", "QuartusWriter"]], "hls4ml.writer.quartus_writer.QuartusWriter": [[30, 2, 1, "", "get_max_reuse_factor"], [30, 2, 1, "", "next_pow2"], [30, 2, 1, "", "print_array_to_cpp"], [30, 2, 1, "", "write_activation_tables"], [30, 2, 1, "", "write_bridge"], [30, 2, 1, "", "write_build_script"], [30, 2, 1, "", "write_defines"], [30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_nnet_utils"], [30, 2, 1, "", "write_parameters"], [30, 2, 1, "", "write_project_cpp"], [30, 2, 1, "", "write_project_dir"], [30, 2, 1, "", "write_project_header"], [30, 2, 1, "", "write_tar"], [30, 2, 1, "", "write_test_bench"], [30, 2, 1, "", "write_testbench_parallel"], [30, 2, 1, "", "write_testbench_stream"], [30, 2, 1, "", "write_weights"], [30, 2, 1, "", "write_yml"]], "hls4ml.writer.symbolic_writer": [[30, 1, 1, "", "SymbolicExpressionWriter"]], "hls4ml.writer.symbolic_writer.SymbolicExpressionWriter": [[30, 2, 1, "", "write_build_script"], [30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_nnet_utils"]], "hls4ml.writer.vitis_writer": [[30, 1, 1, "", "VitisWriter"]], "hls4ml.writer.vitis_writer.VitisWriter": [[30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_nnet_utils_overrides"]], "hls4ml.writer.vivado_accelerator_writer": [[30, 1, 1, "", "VivadoAcceleratorWriter"]], "hls4ml.writer.vivado_accelerator_writer.VivadoAcceleratorWriter": [[30, 2, 1, "", "modify_build_script"], [30, 2, 1, "", "write_axi_wrapper"], [30, 2, 1, "", "write_board_script"], [30, 2, 1, "", "write_driver"], [30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_new_tar"], [30, 2, 1, "", "write_wrapper_test"]], "hls4ml.writer.vivado_writer": [[30, 1, 1, "", "VivadoWriter"]], "hls4ml.writer.vivado_writer.VivadoWriter": [[30, 2, 1, "", "print_array_to_cpp"], [30, 2, 1, "", "write_bridge"], [30, 2, 1, "", "write_build_script"], [30, 2, 1, "", "write_defines"], [30, 2, 1, "", "write_generated_code"], [30, 2, 1, "", "write_hls"], [30, 2, 1, "", "write_nnet_utils"], [30, 2, 1, "", "write_parameters"], [30, 2, 1, "", "write_project_cpp"], [30, 2, 1, "", "write_project_dir"], [30, 2, 1, "", "write_project_header"], [30, 2, 1, "", "write_tar"], [30, 2, 1, "", "write_test_bench"], [30, 2, 1, "", "write_weights"], [30, 2, 1, "", "write_yml"]], "hls4ml.writer.writers": [[30, 1, 1, "", "Writer"], [30, 3, 1, "", "get_writer"], [30, 3, 1, "", "register_writer"]], "hls4ml.writer.writers.Writer": [[30, 2, 1, "", "write_hls"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:data", "5": "py:attribute", "6": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "data", "Python data"], "5": ["py", "attribute", "Python attribute"], "6": ["py", "property", "Python property"]}, "titleterms": {"vivadoacceler": 0, "backend": [0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 33], "neural": 0, "network": 0, "overlai": 0, "exampl": [0, 1, 38, 39], "extens": 1, "api": [1, 3], "complet": 1, "fifo": 2, "buffer": 2, "depth": 2, "optim": [2, 26, 27, 34], "configur": 3, "1": [3, 37], "python": 3, "2": [3, 37], "yaml": 3, "file": 3, "top": 3, "level": 3, "per": 3, "layer": [3, 24], "detail": [3, 33], "convert": [3, 20, 21, 22, 23, 31], "hl": [3, 4], "code": 3, "model": [4, 21, 24, 25, 26, 27, 39], "class": 4, "write": 4, "method": 4, "compil": 4, "predict": 4, "build": [4, 31], "trace": 4, "profil": [5, 24], "hls4ml": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38], "packag": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "subpackag": [6, 7, 8, 10, 12, 14, 16, 18, 20, 24, 26], "modul": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "content": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "submodul": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "templat": 7, "fpga": [8, 9], "fpga_backend": 8, "fpga_lay": 8, "fpga_typ": 8, "pass": [9, 11, 13, 15, 17, 19, 27, 34], "bn_quant": 9, "bram_weight": 9, "clone": 9, "codegen": 9, "embed": 9, "final_reshap": 9, "fix_softmax_table_s": 9, "inplace_parallel_reshap": 9, "inplace_stream_flatten": 9, "remove_softmax": 9, "repack_stream": 9, "xnor_pool": 9, "quartu": [10, 11], "quartus_backend": 10, "convolution_templ": [11, 17], "convolution_winograd": 11, "core_templ": [11, 17], "merge_templ": [11, 17], "pointwis": [11, 17], "pooling_templ": [11, 17], "quantization_templ": [11, 17], "recurrent_templ": [11, 17], "reshaping_templ": [11, 17], "resource_strategi": [11, 17], "transform_typ": [11, 17], "symbol": [12, 13], "symbolic_backend": 12, "expr_templ": 13, "validate_lut": 13, "viti": [14, 15], "vitis_backend": 14, "feature_check": 15, "vivado": [16, 17], "vivado_backend": 16, "broadcast_stream": 17, "conv_same_pad": 17, "conv_stream": 17, "fifo_depth_optim": [17, 19], "garnet_templ": 17, "vivado_acceler": [18, 19], "vivado_accelerator_backend": 18, "vivado_accelerator_config": 18, "keras_to_hl": 20, "onnx_to_hl": 20, "pytorch_to_hl": 20, "util": [20, 29], "kera": 21, "convolut": [21, 22, 23], "core": [21, 22, 23], "graph": [21, 24], "merg": [21, 22, 23], "pool": [21, 22, 23], "qkera": [21, 27], "recurr": 21, "reshap": [21, 22, 23], "onnx": 22, "pytorch": 23, "attribut": 24, "type": [24, 33], "flow": [25, 34], "bn_fuse": 27, "convert_to_channels_last": 27, "expand_layer_group": 27, "fuse_biasadd": 27, "multi_dens": 27, "nop": 27, "precision_merg": 27, "stamp": 27, "transpose_opt": 27, "report": [28, 31], "quartus_report": 28, "vivado_report": 28, "config": [29, 31], "example_model": 29, "fixed_point_util": 29, "plot": 29, "string_util": 29, "symbolic_util": 29, "writer": 30, "quartus_writ": 30, "symbolic_writ": 30, "vitis_writ": 30, "vivado_accelerator_writ": 30, "vivado_writ": 30, "command": 31, "line": 31, "interfac": 31, "deprec": [31, 38], "overview": 31, "concept": 32, "The": 32, "inspir": 32, "solut": 32, "how": 32, "work": 32, "softwar": 33, "frontend": 33, "i": 33, "o": 33, "io_parallel": 33, "io_stream": 33, "intern": 34, "structur": 34, "welcom": 35, "s": 35, "document": 35, "project": 35, "statu": [35, 39], "tutori": 35, "citat": 36, "acknowledg": 36, "contributor": 36, "fund": 36, "releas": 37, "note": 37, "v0": 37, "8": 37, "0": 37, "edelweiss": 37, "0rc1": 37, "7": 37, "delphinium": 37, "rc1": 37, "6": 37, "cori": 37, "5": 37, "bartsia": 37, "beta": 37, "4": 37, "aster": 37, "3": 37, "setup": 38, "quick": 38, "start": 38, "instal": 38, "develop": 38, "version": 38, "depend": 38, "get": 38, "cli": 38, "further": 38, "help": 38, "exist": 38, "uninstal": 38, "featur": 39}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/setup.html b/setup.html index d9f86ff75c..51ceb56989 100644 --- a/setup.html +++ b/setup.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
diff --git a/status.html b/status.html index 45a5f6ca11..1c92b42179 100644 --- a/status.html +++ b/status.html @@ -40,7 +40,7 @@
- 0.9.0.dev7+g781c401a + 0.9.0.dev8+g9278520e
@@ -116,7 +116,7 @@

Status and Features

Status

-

The latest version (built from main) is 0.9.0.dev7+g781c401a. +

The latest version (built from main) is 0.9.0.dev8+g9278520e. The stable version (released on PyPI) is 0.8.0. See the Release Notes section for a changelog.