Skip to content
Snippets Groups Projects
  1. Dec 08, 2020
    • Yaman Umuroglu's avatar
    • Yaman Umuroglu's avatar
      Support runtime weights & thresholds in generated driver (#256) · 3cfa1896
      Yaman Umuroglu authored
      * [Build] add a deployment_package step
      
      * [Build] typo fix in build examples
      
      * [Build] fix deployment_package step
      
      * [Analysis] ensure python integers in fpgadataflow analysis passes
      
      * [Build] report generation and other minor improvements
      
      * [Docs] update build_dataflow docs
      
      * [Build] latency est. fix
      
      * [Build] check if fold config is None
      
      * [Build] add ooc synthesis step
      
      * [Deps] update finn-base
      
      * [Util] out_of_context_synth: remove remote, use launch_process_helper
      
      * [Build] include all outputs in examples configs
      
      * [Docs] update build flow docs
      
      * [Deps] update finn-base
      
      * [Util] bugfix in launch_process_helper call
      
      * [Docker] use interactive mode for builds
      
      * [Build] enable pdb debugging for builds
      
      * [Refactor] move build functions to own submodule
      
      * [Test] build_dataflow: fix expected files
      
      * [Build] report estimated resource total
      
      * [Infra] remove old eggs
      
      * [HLSCustomOp] introduce get_op_counts
      
      only implemented for MVAU and VVAU for now
      
      * [HLSCustomOp] extend get_op_counts to include params too
      
      * [Analysis] introduce op_and_param_counts pass
      
      * [Build] generate op/param counts as part of estimates + add doc
      
      * [HLSCustomOp] assert if ap_int_max_w is too large
      
      * [StreamingFC] fix ap_int_max_w calculation
      
      * [Build] minor fix in step_generate_estimate_reports
      
      * [StreamingFC] enable decoupled URAM weights
      
      * [StreamingFC export 0-valued .dat for decoupled uram
      
      * [Zynq] bugfix: AXI MM and lite IF counts were switched around
      
      * [Zynq] support wiring up multiple AXI lites in shell
      
      * [Deps] update finn-base
      
      * [HLSCustomOp] introduce uram_efficiency_estimation
      
      * [StreamingFC] implement uram eff est
      
      * [FIFO] fix ip packaging problems
      
      * [Thres] better integer check for thresholds
      
      * [HLSCustomOp] rework infer_node_datatype to be more flexible
      
      allow re-setting of inputDataType if it changed during datatype
      inference
      
      * [Thres] bugfix in integer thres check
      
      * [Thres] bugfix in integer thres check
      
      * [Docker] relax instance name, only fwd ports in notebook mode
      
      * [Driver] generate runtime weight files for appropriate layers
      
      * [Driver] draft a first version of load_runtime_weights
      
      * [Driver] fixes&enhancements to load_runtime_weights
      
      * [Driver] typo fix in split
      
      * [Test] use runtime weights for tfc end2end
      
      * [Build] bugfix in ooc step
      
      * [Driver] also handle runtime-writable thresholds
      
      * [Thresholding] implement get_op_and_param_counts
      
      * [Test] use tfc-w1a1 as standalone thresholds end2end testcase
      
      * [Build] add option for standalone thresholds
      
      * [Driver] update comments
      
      * [Driver] overhaul driver, split up template
      
      * [Test] fix test_res_estimate expectation
      
      * [Driver] fix varname in template
      3cfa1896
  2. Dec 03, 2020
    • Yaman Umuroglu's avatar
      Dataflow build additions (#253) · 884cb146
      Yaman Umuroglu authored
      * [Build] add a deployment_package step
      
      * [Build] typo fix in build examples
      
      * [Build] fix deployment_package step
      
      * [Analysis] ensure python integers in fpgadataflow analysis passes
      
      * [Build] report generation and other minor improvements
      
      * [Docs] update build_dataflow docs
      
      * [Build] latency est. fix
      
      * [Build] check if fold config is None
      
      * [Build] add ooc synthesis step
      
      * [Deps] update finn-base
      
      * [Util] out_of_context_synth: remove remote, use launch_process_helper
      
      * [Build] include all outputs in examples configs
      
      * [Docs] update build flow docs
      
      * [Deps] update finn-base
      
      * [Util] bugfix in launch_process_helper call
      
      * [Docker] use interactive mode for builds
      
      * [Build] enable pdb debugging for builds
      
      * [Refactor] move build functions to own submodule
      
      * [Test] build_dataflow: fix expected files
      
      * [Build] report estimated resource total
      
      * [Infra] remove old eggs
      
      * [HLSCustomOp] introduce get_op_counts
      
      only implemented for MVAU and VVAU for now
      
      * [HLSCustomOp] extend get_op_counts to include params too
      
      * [Analysis] introduce op_and_param_counts pass
      
      * [Build] generate op/param counts as part of estimates + add doc
      
      * [HLSCustomOp] assert if ap_int_max_w is too large
      
      * [StreamingFC] fix ap_int_max_w calculation
      
      * [Build] minor fix in step_generate_estimate_reports
      884cb146
    • Tobi-Alonso's avatar
      Set vivado DWC input width explicitly as by default a block will have a 1 byte... · b9300a8d
      Tobi-Alonso authored
      Set vivado DWC input width explicitly as by default a block will have a 1 byte input which probably will cause a bottleneck (#254)
      
      b9300a8d
  3. Dec 01, 2020
    • Yaman Umuroglu's avatar
      [Build] update build.py example · 4e7f3fba
      Yaman Umuroglu authored
      4e7f3fba
    • Lucian Petrica's avatar
      Automatically set folding attributes (#251) · 0e3f663b
      Lucian Petrica authored
      
      * Added transform and test for auto-folding to throughput target
      
      * [SetFolding] improve comments
      
      * [SetFolding] allow customizing mvau_wwidth_max
      
      * [SetFolding] put ops into groups to reduce code redundancy
      
      * [SetFolding] add a two-pass relaxation option
      
      * [LabelSelect] implement get_exp_cycles
      
      * [SetFolding] handle LabelSelect too
      
      * [SetFolding] extra comment
      
      * [SetFolding] fix swg setting, add warning
      
      * [SetFolding] call GiveUniqueNodeNames before AnnotateCycles
      
      * [Build] add build config option to target FPS
      
      * [Test] use target_fps for example dataflow build config file
      
      Co-authored-by: default avatarYaman Umuroglu <yamanu@xilinx.com>
      0e3f663b
    • Yaman Umuroglu's avatar
      MobileNet-v1 on Alveo (#252) · 620b96f3
      Yaman Umuroglu authored
      
      * [Util] Add mobilenet to test.py in util
      
      * [Test] Add first draft of brevitas export unit test into test suite
      
      * [Test] Shorten import of mobilenet and add example picture
      
      * [Docker] Temporarily set brevitas commit version to auphelia brevitas fork
      
      * [Test] Add transformation and execution function to mobilnet test
      
      * [Docker] Change brevitas repo back to Xilinx repo
      
      * [Test] Add transformations and execution to mobilenet test
      
      * [Docker] Update brevitas commit version
      
      * [Test] Insert Topk into mobilenet test
      
      * [Test] Use Top5 to verify mobilenet functionality of execution in FINN
      
      * [CustomOp] Remove rounding in QuantAvgPool2d
      
      * [Test] Add first streamlining transformations to mobilenet test
      
      * [Notebook] Add end2end notebook for mobilenet-v1
      
      * [Test] Add transformation to streamline mobilenet-v1
      
      * [Test & Notebook] Update streamlining and lowering of mobilenet-v1
      
      * [Test] Add test setup for move flatten transformation
      
      * [Test] Add tidy up trafo mobilenet test
      
      * [Streamline] Add reorder fct to move flatten past matmul, mul or add
      
      * [Test] Update test to check functional verification after MoveFlatten trafo
      
      * [Test] Add new trafos to mobilenet test
      
      * [Streamline] Add drafts for move transformations to reorder trafos
      
      * [Test] Delete obsolete test and update mobilenet test
      
      * [Streamline] Fix missing return in MoveTransposePastScalarMul
      
      * [Test] Update mobilenet test with new transformations
      
      * [Test] Add mul value to make model outputs comparable (mobilenet-v1)
      
      * [Test&Notebook] Update mobilenet-v1 streamlining
      
      * [Test] Add preprocessing as exportable pytorch module for mobilenet and merge models
      
      * [Util] Add pytorch modules for imagenet normalize preprocessing
      
      * [Util] Add functions to resize and centercrop a PIL image
      
      * [Test] Refactor mobilenet test
      
      * [Test] Set input finn dtype and fix bug with saving onnx checkpoints
      
      * [Test] First draft of end2end test mobilenet (prepare model for flow)
      
      * [Test] Add streamlining and lowering to end2end mobilenet test
      
      * [Test] Add hls conversion and dataflow partitioning to mobilenet end2end test
      
      * [Transform] ConvertToHLSLayers add support for QuantAvgPool2d with data layout NHWC
      
      * [Test] Save golden output for end2end mobilenet
      
      * [Test] Add folding and draft for verification to end2end mobilenet
      
      * [Transform] Fix bug in insertion of pool batch node
      
      * [Test] Add time measurement to end2end mobilenet
      
      * [Test] Add ip gen and rtlsim to end2end mobilenet test
      
      * [Transform] Add missing import HLS conversion
      
      * [Test] Clean dataflow partition of mobilenet before saving
      
      * [Docker] mount imgnet val if specified
      
      * [Util] add some ImageNet val utils
      
      * [Test] add validation test for MobileNet-v1
      
      * [Util] support logging QuantTensors in forward hook
      
      * [Test] add debug option for tensorwise comparison in validate_mobilenet
      
      * [Test] Delete streamlining part from mobilenet export test
      
      * [Test] pre-commit test_brevitas_mobilenet
      
      * [Util] Set resample=0 in PIL resize function
      
      * [Doc] document the imagenet val env.var
      
      * [Test] mark mobilenet val test as xfail
      
      * [Test] correct typo in MobileNet-v1 val test
      
      * [Test] fix MobileNet-v1 validation test for multiple imgs
      
      * [Util] fix get_val_images for ImageNet validation
      
      * [Util] more ImageNet testing utils
      
      * [Test] use new utils in MobileNet-v1 tests
      
      * [Util] update ImageNet utils to use torchvision utils
      
      * [Test] test preproc only in test_brevitas_mobilenet_preproc
      
      * [Util] add option to control get_val_images order
      
      * [Test] different classes for mobilenet comparison
      
      * [StreamingFC] clip thresholds larger than acc
      
      * [VVAU] add accumulator minimization and threshold clipping
      
      * [HLSCustomOp] clip thresholds on both sides if needed
      
      * [Transform] call acc minimization for VVAU too
      
      * [Test] reorder tests for end2end mobilenet
      
      * [Test] fixes to MobileNet validation after merge
      
      * [Test] MobileNet-v1: temp fix for export + add fifo set and build
      
      * [Transform] fix num inp vectors for InferLabelSelect
      
      * [Test] MobileNet: bring back labelselect, use dataflow partition
      
      * [Deps] update Brevitas to get mobilenet export fix
      
      * [Test] bring back export for mobilenet-v1 end2end
      
      * [Test] MobileNet-v1: add extra_fold, reorder tests
      
      * [Test] MobileNet-v1: additional marks + bugfix
      
      * [Test] MobileNet-v1: fix build dir
      
      * [LabelSelect] fix cppsim bug
      
      * [SetFIFODepths] allow overriding auto for large FIFOs
      
      * [Test] MobileNet-v1: add more config options to mnv1 end2end test
      
      * [Vitis] enable Vivado physopts with PERFORMANCE_BEST
      
      * [Test] MobileNet-v1 edn2end: aim for higher perf
      
      * [Build] add more build options + minor improvements
      
      including Vitis build strategy, large FIFO mem mode + ability to
      spec custom fifo depths
      
      * [Docker] minor improvements in run-docker.sh
      
      * [Docker] new attempt at handling XRT deps
      
      * [Test] mark semi-failing MNv1 tests as xfail
      
      * [Infra] fix entrypoint script working dirs
      
      * [Build] allow specifying fxns as build steps
      
      * [Build] print build log location
      
      * [InsertFIFO] allow creating shallow FIFOs if desired
      
      * [Build] create shallow FIFOs to use ApplyConfig, then remove as needed
      
      * [Infra] use abspath for Dockerfile
      
      * Revert "[Infra] use abspath for Dockerfile"
      
      This reverts commit 010fb910b140e7539e1599862681a4d520171388.
      
      * [Infra] better solution for run-docker.sh from outside
      
      * [HLSCustomOp] add directory check after running IPGenBuilder
      
      * [Build] rename to step_set_fifo_depths, fix non-auto depth case
      
      * [Build] typo fix
      
      Co-authored-by: default avatarauphelia <jakobapk@web.de>
      620b96f3
  4. Nov 24, 2020
  5. Nov 23, 2020
    • Yaman Umuroglu's avatar
      Single-function and command-line for dataflow builds (#250) · 46653dc9
      Yaman Umuroglu authored
      * [Build] initial commit for a build util fxn
      
      * [Build] flesh out build_dataflow
      
      * [Build] bugfixes+partitioning for dataflow build
      
      * [Build] support from/to steps, add some verbosity
      
      * [Build] use explicit strings for config enums
      
      * [Deps] add clize and dataclasses-json
      
      * [Build] add cmdline entry for building folder, mixin json to cfg
      
      * [Build] cd into specified dir for build_dataflow
      
      * [Infra] add new build_dataflow entrypoint to run_docker.sh
      
      * [Build] let Python do exception handling in build_dataflow
      
      * [Infra] add new run-docker.sh entrypoint for build_custom
      
      * [Deps, Infra] update finn-base, set FINN_BUILD_DIR envvar
      
      * [Test] fix manual /tmp usage in tests
      
      * [Infra] avoid manual setting of build dir for now
      
      breaks in IP stitching for some reason
      
      * [Docs, Build] rename to build_dataflow + add some docs
      
      * [GHA] fix missing env.var.
      
      * [Build] allow specifying steps by name
      
      * [Build] add logging support in build_dataflow
      
      * [Zynq] use impl resources, add close_project
      
      still looking for ways around Vivado randomly hanging and not exiting 
      after synth finish
      
      * [Build] make more outputs available from build_dataflow
      
      * [Zynq] use vivado -batch for tcl call to synth
      
      * [Deps] update pyverilator
      
      * [Build] use abspath
      
      * [Test] add test_build_dataflow_directory
      
      * [Build] add build.py example
      
      * [Docs] add docs about command line entry
      
      * [Setup] include finn-base in install_requires
      
      this is needed to build readthedocs properly
      46653dc9
  6. Nov 19, 2020
  7. Nov 09, 2020
    • Yaman Umuroglu's avatar
      Future-proofing pypi/pip installability (#248) · 43fce5ac
      Yaman Umuroglu authored
      * [Setup] basic updates to setup.cfg
      
      * [Setup] pip install finn in entrypoint script
      
      also clean up Dockerfile a bit, remove EXPOSE cmds from Dockerfile.finn_dev
      -- these don't really have a function
      
      * [Setup] add cleanup prior to pip install to remove cruft
      
      can otherwise break finn during FINN->finn transition in setup.cfg
      
      * [Deps] add pip install for pyverilator
      43fce5ac
  8. Nov 06, 2020
  9. Nov 05, 2020
  10. Oct 30, 2020
    • Lucian Petrica's avatar
      Add capability to specify floorplan manually through a JSON file (#219) · 63f29c93
      Lucian Petrica authored
      * Floorplanning support in vitis builds
      
      * Various fixes for floorplanning
      
      * removed partition definition - moved to finn-base
      
      * Add some attribute/argument documentation
      63f29c93
    • Lucian Petrica's avatar
      Updates to resource estimates (#213) · 07e7955a
      Lucian Petrica authored
      
      * Added transform to set mem modes
      
      * Add transform to set folding (SIMD/PE)
      
      * Implemented resource allocation transform and test
      
      * Reverted to version in dev
      
      * Updated expected resource counts in res estimate test
      
      * Added URAM and DSP resource estimates; changed FC layer resType to lut/dsp, made it optional, and made lut the default
      
      * Correct handling of URAM
      
      * Fixed resource estimation for fc layer
      
      * Fixed uram estimation in SWU
      
      * Fixed res estimate test
      
      * Added resource estimation to VVAU, and changed resType to same pattern in FClayer; fixed DSP estimation in FClayer
      
      * Fixes for VVAU resource estimation
      
      * Updated SWU memory estimate; modified folding transform for correct depthwise SWU folding
      
      * Moved folding transforms out of PR branch
      
      * Removed files added by mistake in merge
      
      * Fixed test
      
      * [Deps, Refactor] update finn-base, move create.py back into finn
      
      * [Deps] update finn-base to get optional, restricted-value attributes
      
      * [HLSCustomOp] specify allowed values for HLSCustomOps where appropriate
      
      * [Deps] update finn-base and Brevitas
      
      Co-authored-by: default avatarYaman Umuroglu <maltanar@gmail.com>
      07e7955a
  11. Oct 28, 2020
    • Yaman Umuroglu's avatar
      Refactor custom op system (#245) · 4225faac
      Yaman Umuroglu authored
      * [Refactor] use getCustomOp instead of direct registry access
      
      * [Refactor] move HLSCustomOp base to own file
      
      * [Refactor] register all HLSCustomOps in new style
      
      * [Refactor] use correct domain for custom ops acc. to new style
      
      * [Deps] update finn-base to get new-style customop domains
      
      * [Refactor] more domain fixes
      
      * [Test] fix ipstitch expected io values in rtlsim
      
      * [Deps] update finn-base and brevitas
      
      * [Docs] link to CustomOp reorg PR
      4225faac
  12. Oct 27, 2020
  13. Oct 26, 2020
    • Yaman Umuroglu's avatar
      Decoupled and runtime-writable thresholds (#244) · 2fcb3f1b
      Yaman Umuroglu authored
      * [CustomOp] groundwork for decoupled Thresholding op
      
      * [Thresholding] more decoupled mode preparation
      
      - new attributes for "weight" (really threshold) datatype + n_steps
      - move thres datatype into acc minimization function and call in convert_to_hls
      - other helper functions
      
      * [Refactor] add make_weight_file for Thresholding layer + wire up
      
      * [Threshold] first attempt at Thresholding_Stream_Batch
      
      * [Threshold] wire up more decoupled functionality, add test
      
      test does not yet pass for multi-PE
      
      * [Threshold] use 2 layers of slicers, all decoupled cppsim passes now
      
      * [Threshold] more decoupled fixes, most rtlsim tests pass
      
      * [Threshold] add unroll to decoupled thresholding, remove unused vars
      
      * [ConvertToHLS] allow specifying mem_mode in InferThresholdingLayer
      
      * [Threshold] expose interfaces for runtime weight writing
      
      * [Test] add runtime threshold test
      
      not yet passing
      
      * [Threshold] use std::less_equal also for decoupled
      
      * [Threshold] use flipped PE axis for decoupled-more rtl thresholds
      
      * [Test] runtime threshold reading works
      
      * [Test] runtime writable thresholds test working
      
      * [ConvertToHLS] fix threshold shape
      2fcb3f1b
  14. Oct 21, 2020
  15. Oct 20, 2020
  16. Oct 19, 2020
  17. Oct 15, 2020
  18. Oct 14, 2020
  19. Oct 13, 2020
Loading