Skip to content
Snippets Groups Projects
  1. Feb 06, 2021
  2. Feb 01, 2021
  3. Jan 26, 2021
  4. Jan 21, 2021
  5. Jan 20, 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
      8497814b
  7. Jan 15, 2021
  8. Dec 17, 2020
    • Yaman Umuroglu's avatar
      [Docs] bring back missing images · af783db8
      Yaman Umuroglu authored
      af783db8
    • Yaman Umuroglu's avatar
      [Docs] bring back missing img · 61e80f2d
      Yaman Umuroglu authored
      61e80f2d
    • Yaman Umuroglu's avatar
      4fee6ffd
    • Yaman Umuroglu's avatar
      [Docs] update README for v0.5b · e6236e38
      Yaman Umuroglu authored
      e6236e38
    • Yaman Umuroglu's avatar
      [Docs] apidocs updates · b7da30f7
      Yaman Umuroglu authored
      b7da30f7
    • Yaman Umuroglu's avatar
      [Docs] make stack image local · 5224f12a
      Yaman Umuroglu authored
      5224f12a
    • Yaman Umuroglu's avatar
      [Docs] round of updates · fafde712
      Yaman Umuroglu authored
      fafde712
    • Yaman Umuroglu's avatar
      be5fd122
    • 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>
      004475a4
  9. Dec 16, 2020
  10. Dec 14, 2020
  11. Dec 13, 2020
    • Yaman Umuroglu's avatar
      0fdc690b
    • Yaman Umuroglu's avatar
      [Driver] handle case with no rt weights · 72bd1487
      Yaman Umuroglu authored
      72bd1487
    • 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
      e202bca2
    • Yaman Umuroglu's avatar
      Build step: measure rtlsim performance (#262) · 72b11ca6
      Yaman Umuroglu authored
      * [Build] introduce step_measure_rtlsim_performance
      
      * [Docs] document the rtlsim performance step
      
      * [Docs] add comments on CPU/RAM/storage recommandations
      
      * [Build, Test] enable rtlsim perf as part of build test too
      
      * [Build] print where intermediate outputs are generated
      
      * [Docs] remove ghpages content, add note
      
      * [Docker] use -c continue for build_custom mode
      
      * [Docs] minor fixes
      72b11ca6
  12. Dec 09, 2020
  13. Dec 08, 2020
    • Yaman Umuroglu's avatar
    • Yaman Umuroglu's avatar
    • Yaman Umuroglu's avatar
    • Yaman Umuroglu's avatar
      [Build] add verification to build steps · 4d496031
      Yaman Umuroglu authored
      4d496031
    • Yaman Umuroglu's avatar
    • Yaman Umuroglu's avatar
      f7bc42b1
    • 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
  14. 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
  15. 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
  16. Nov 24, 2020
  17. 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
Loading