Skip to content
Snippets Groups Projects
  1. Feb 26, 2021
  2. Feb 23, 2021
  3. Feb 06, 2021
  4. Feb 04, 2021
  5. Jan 29, 2021
  6. Jan 17, 2021
    • Yaman Umuroglu's avatar
      Switch hlslib comparison functions (#263) · 8497814b
      Yaman Umuroglu authored
      * [Test] add lfc to end2end tests
      
      * [Deps] update hlslib to get comp:: fxns
      
      * [HLS] use comp:: comparators instead of std::
      
      * [VVAU] hlslib now uses inner prod dim instead of K
      
      * [Thres] manually workaround vivado_hls bug for T[0][0]=0
  7. Dec 17, 2020
    • Yaman Umuroglu's avatar
      4fee6ffd
    • alinavalinav's avatar
      Feature/cybersecurity notebook (#259) · 004475a4
      alinavalinav authored
      
      * Created cybersecurity notebook and downloaded data with wget
      
      * Reorganized the cybersecurity notebook
      
      * Read the entire dataset as a pytorch tensor and trained a simple MLP on the UNSW_NB15 dataset
      
      * small changes to markdown
      
      * Training and testing have the same integer encoding
      
      * Added debugger tool
      
      * added loss visualization
      
      * aded 1hot encoder and separated dataloader
      
      Added 1-hot encoder with scikit learn.
      Seperated the dataloader into a python file.
      
      * changes to get 99.998% accuracy
      
      * changed loss plot
      
      * accuracy at 70% after 50 epochs
      
      However, loss is not ok
      
      * got 75% accuracy
      
      * see loss
      
      * added scheduled statistics
      
      * added iterator over all possible parameters
      
      * updates on automation
      
      debugging model error
      
      * Delete cybersecurity-checkpoint.ipynb
      
      * Delete cybersecurity_2-checkpoint.ipynb
      
      * Delete exemplofixe-checkpoint.ipynb
      
      * Delete UNSW_NB15_testing-set.csv
      
      * Delete UNSW_NB15_train.csv
      
      * Delete UNSW_NB15_training-set.csv
      
      * Delete UNSW_NB15_val.csv
      
      * general cleanup
      
      * general cleanup
      
      * updates with 75.7238% accuracy
      
      * added quantization of the dataset
      
      * debugging the quantization of the dataset
      
      * added plots for the debugging
      
      * debugging the quantization. Show the differences
      
      * update debugging
      
      * updates on debugging
      
      * updates on debugging quantization
      
      * updates on debug, uint32 df added
      
      * updates on debugging
      
      * added 2 pictures for the debugging
      
      * Added quantization of the dataset
      
      * aded results for training the model with the quantized dataset
      
      * added quantization of the dataset
      
      * added new notebook with model definition with brevitas
      
      * cleaning up documents
      
      * modified the model definition
      
      * Changed the loss function
      
      * Added debug with pdb
      
      * Successfully created neural network with Brevitas
      
      * Correctly quantize the dataset
      
      * Added export of onnx model
      
      * Added FINN validation of the Brevitas model
      
      * improved dataloader
      
      * general cleanup
      
      * General Cleanup
      
      * General Cleanup
      
      * Completed verifying the FINN model against Brevitas
      
      * Added new layer to MLP - Debugging
      
      * verified that the MLP model with new layer (QuantIdentity) outputs the same in Brevitas and in FINN for all 82332 test inputs
      
      * verified that the MLP model with new layer (QuantIdentity) outputs the same in Brevitas and in FINN for all 82332 test inputs
      
      * verified that model with new layer (QuantIdentity) outputs the same in Brevitas and in FINN for all 82332 inputs
      
      * verified that model with new layer and input shifted to accept {-1,1}, outputs the same in Brevitas (input is in {-1,+1}) and in FINN (input is in {-1,+1})  for the 82332 inputs
      
      * General cleanup and added text
      
      * General cleanup: improved text
      
      * General cleanup: fixed text typos
      
      * General cleanup: Added text
      
      * Delete cybersecurity.ipynb
      
      * Delete dataloader.py
      
      * Rename cybersecurity_Brevitas_1bit.ipynb to 1-cybersecurity-Brevitas-1bit.ipynb
      
      * Rename cybersecurity_Brevitas_Verification.ipynb to 2-cybersecurity-finn-verification.ipynb
      
      * Added the last notebook
      
      * Added last notebook describing the finn build
      
      * Added changed parameters to see differences
      
      * Added changed parameters and added text
      
      * Fixed typo
      
      * [Notebooks] reorganize into folders, add README for cybsec
      
      * [Notebook] add license header and refs to cybsec dataset quantizer
      
      * [Notebooks] rename cybsec notebook files
      
      * [Notebook] first pass thru cybsec part 1
      
      * [Notebook] refactor more of cybsec part 1
      
      * [Notebook] add option to use pretrained weights
      
      * fixed outline and typo
      
      * [Notebook] update cybsec notebook #2 and gitignore
      
      * [Notebook] start refactoring cybsec part 3
      
      * [ConvertToHLS] allow out_scale=2 for bipolar MT
      
      * [Build] add alternative set of steps for estimation only
      
      * [Transform] attempt to handle padding for IODMAs
      
      * [Transform] explicitly ignore IODMA nodes for InsertDWC
      
      * [Notebook] full pass over cybsec notebook 3
      
      * [Util] move vivado utils into finn-base
      
      * fixed outline
      
      * [HLSCustomOp] better err msg on ipgen failure
      
      Co-authored-by: default avatarAlina Vasilciuc <alinav@xlnx.xilinx.com>
      Co-authored-by: default avatarYaman Umuroglu <yamanu@xilinx.com>
  8. Dec 13, 2020
    • Yaman Umuroglu's avatar
      Driver data packing + improvements (#261) · e202bca2
      Yaman Umuroglu authored
      * [Driver] add driver_base.py as own template file + comments
      
      * [Driver] also move validation to won template + use in transform
      
      * [Driver] more comments
      
      * [Driver] suggested updates from PYNQ team + async mode exec_on_buffers
      
      * [Driver] allow smaller batchsize in execute_on_buffers
      
      * [Driver] optimize buffer alloc a bit
      
      * [Driver] wait condition fix
      
      * [Deps] update finn-base
      
      * [Deps] update finn-base
      
      * [Driver] enable fast_mode, expose more benchmarks
      
      * [Deps] update finn-base
  9. Dec 08, 2020
    • 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
  10. 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
  11. Dec 01, 2020
    • 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>
  12. Nov 24, 2020
  13. 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
  14. 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
  15. Nov 05, 2020
  16. Oct 30, 2020
    • 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>
  17. 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
  18. Oct 19, 2020
  19. Oct 13, 2020
  20. Oct 08, 2020
  21. Oct 06, 2020
  22. Oct 05, 2020
  23. Sep 27, 2020
  24. Sep 26, 2020
  25. Sep 25, 2020
  26. Sep 24, 2020
  27. Sep 21, 2020
  28. Sep 20, 2020
  29. Sep 17, 2020
  30. Sep 16, 2020
  31. Sep 15, 2020
  32. Sep 10, 2020
  33. Sep 01, 2020
  34. Aug 30, 2020
Loading