Commit Graph

182 Commits

Author SHA1 Message Date
Hanchen Ye 0ea2f79303 [CreateAxiInterface] Implement this pass; [FuncDataflow][HoistStreamChannel] Fix several bugs 2022-03-20 17:02:11 -05:00
Hanchen Ye e0a844c63d [CreateAxiInterface] Factor out this pass from LegalizeToHLSCpp; [Transforms] Add a new Rntime directory to hold runtime-related passes; Move CreateRuntimeMain to the new directory; Remove redundant pass initialization methods; [Support] Add new getTopFunc/getRuntimeFunc APIs 2022-03-20 17:02:11 -05:00
Hanchen Ye c013e74627 [FuncDataflow] Support to handle graphs containing call nodes 2022-03-20 17:02:11 -05:00
Hanchen Ye 93ebdb5412 [HLSCpp] Add StreamChannel/Read/Write/BufferOp; Rename Mul/CastPrimOp to PrimMul/CastOp; Rename AssignOp to BufferOp 2022-03-20 17:02:11 -05:00
Hanchen Ye f9880d3b2b [HeuristicNodeFusion] Refactor this pass following a more flexible outlining + fusing manner; [Support] Factor out a localizeConstants API 2022-03-17 22:43:21 -05:00
Hanchen Ye 07ed805316 [TosaToLinalgCleanup] Add this pass to lower tosa::ReshapeOp and tensor::PadOp 2022-03-17 16:56:33 -05:00
Hanchen Ye 816f62cca8 [AffineLoopDataflow] Implement this pass; [Transforms] Rename min-gran and insert-copy to gran and balance, respectively 2022-03-16 16:12:00 -05:00
Hanchen Ye ec77976bd7 [Test] Reorganize file structure according to the lib/Transforms folder 2022-03-16 15:54:50 -05:00
Hanchen Ye 47f9f0ee4c [FuncDataflow] Merge LegalizeDataflow and SplitFunction into this pass; [Transforms] Add applyDataflow API for both function and loop dataflow 2022-03-16 15:52:39 -05:00
Hanchen Ye c4927c8157 [Transforms] Add a getTileAndPointLoopBand helper; [AffineLoopOrderOpt] Permute loop order separately on tile and point loop band; [AffineLoopUnrollJam] Rename from AffineLoopUnrollAndPipeline and remove the pipeline feature finally 2022-03-09 20:05:46 -06:00
Hanchen Ye 2613174689 [Transforms] Add a scalehls prefix to all passes 2022-03-09 18:35:16 -06:00
Hanchen Ye e3d7294984 [Test] Add test cases for new passes; Update test cases according to the recent changes, inluding legalize-dataflow, split-function, etc 2022-03-01 23:47:30 -06:00
Hanchen Ye 43ad11eef2 [HLSCpp] Factor out parallel and top_func attribute from loop_directive and func_directive, respectively, as they are actually not directives 2022-03-01 01:10:51 -06:00
Hanchen Ye 690a2d2eaa [Transforms] Refactor the applyLoopTiling API to make it more robust 2022-02-28 20:05:20 -06:00
Hanchen Ye 81d48fe584 [Readme] Update c++ and pytorch test instructions; Fix some small errors 2022-02-23 18:03:46 -06:00
Hanchen Ye a4e1d05626 [EmitHLSCpp][SplitFunction] Support tensor/memref reshape ops 2022-02-23 17:02:25 -06:00
Hanchen Ye 1eed2a95ab [AffineLoopUnrollAndPipeline] Rename this pass from PartialAffineLoopTile, always execute loop pipelining now 2022-02-23 04:15:34 -06:00
Hanchen Ye 0d8e73c09c [Conversions] Remove this directory 2022-02-22 23:35:32 -06:00
Hanchen Ye 1f11eb3ce9 Bump LLVM to af6b993 2022-02-22 01:18:14 -06:00
Hanchen Ye 577fa54c49 [Support] Include transfer load/store when getting the memref access map 2022-02-17 16:01:39 -06:00
Hanchen Ye 3100f042f3 [EmitHLSCpp] Support max/min ops 2022-02-16 19:12:51 -06:00
Hanchen Ye 887424942b [HLSCpp] Remove unused operations from the visitor; [EmitHLSCpp] Start the emissionts of vector load/store, transfer read/write, broadcast, mul primitive 2022-02-16 14:57:09 -06:00
Hanchen Ye b0cb590fb6 [Transforms] Enable the pass pipeline with tunable dataflow granularity and loop tiling size 2022-02-16 02:28:52 -06:00
Hanchen Ye 5c8e1ebda2 [QoREstimator] Improve the accuracy when resource can be shared between multiple loop bands 2022-02-13 23:21:22 -06:00
Hanchen Ye 1be6af93d8 [QoREstimator] Support fexp op; Start to specify dsp usage in config.json 2022-02-11 05:56:38 -06:00
Hanchen Ye 97c33324b8 [LoopPerfection] Fix the issue when the loop contains local buffer allocs 2022-02-02 15:02:03 -06:00
Hanchen Ye d356071a53 Improve error messeges of json parsing; Add comments to each item in config.json 2022-01-28 02:12:56 -06:00
Hanchen Ye 817620d5a0 [QoREstimation][MultipleLevelDSE] Use JSON file for configuration 2022-01-21 22:13:55 -06:00
Hanchen Ye 9ef646f768 [LoopPerfectization] Support to create alloca for local data buffering 2022-01-21 12:54:23 -06:00
Hanchen Ye d5d3899367 [Test] Add test cases for LegalizeDataflow and SplitFunction pass 2022-01-21 04:22:42 -06:00
Hanchen Ye 5e7171e9ac [HLSKernel] Remove this dialect from the repo 2022-01-21 03:55:49 -06:00
Hanchen Ye 5fc4d2682b [QuantizeONNX] Remove from the repo 2022-01-21 03:22:56 -06:00
Hanchen Ye 153941cd33 Fix test cases 2022-01-21 03:14:04 -06:00
Hanchen Ye 22e59877cb [Samples] Update all polybench samples 2021-11-12 02:09:50 -06:00
Hanchen Ye 2fdba859f7 [PartialAffineLoopTiling] Support to simplify loop structure after tiling 2021-11-12 01:51:15 -06:00
Hanchen Ye 70d898d9a3 [RemoveVariableBound] Support lower variable bound removal 2021-11-10 22:38:24 -06:00
Hanchen Ye aaf11f432d Add build-scalehls.sh script; [README] Update build and test instructions; [Polygeist] Update polygeist submodule to avoid gettimeofday failure 2021-11-09 00:49:06 -06:00
Hanchen Ye 99ce81ce68 [BindingsPython] Add get_trip_count API to LoopBand class; [README] Add a note for the use of help() in python 2021-11-06 19:26:36 -05:00
Hanchen Ye 491ba1c2e8 [pyscalehls] Use array_partition python API; [BindingsPython] Add MlirValue pybind adapter 2021-11-06 18:02:03 -05:00
Hanchen Ye fcf3d5c323 [BindingsPython] Support to parse nparray argument; Support LoopTile API 2021-11-03 20:34:39 -05:00
Hanchen Ye b422ef16ee [BindingsPython] Support PyAffineLoopBand and PyAffineLoopBandIterator utility; Support applyAffineLoopPerfection API 2021-11-03 00:21:14 -05:00
Hanchen Ye 7359ec02c0 Update Polygeist to daeb952 2021-11-01 16:27:57 -05:00
Hanchen Ye 513fdf582d [pyscalehls] Support to parse C as input; Add corresponding lit test 2021-10-08 05:06:17 -05:00
Hanchen Ye 4d3e9fa9c8 Include pyscalehls into cmake 2021-10-03 23:18:23 -05:00
Hanchen Ye 0492347bef Add pyscalehls tool; Python binding for applyArrayPartition 2021-10-03 10:18:25 -05:00
Hanchen Ye ddd973f90b Add pybind emit_hlscpp regression test 2021-09-30 17:55:36 -05:00
Hanchen Ye 681e7acb52 remove benchmark-gen command line tool 2021-09-30 02:24:13 -05:00
Hanchen Ye ab9d20a6eb Support to import scalehls in python; Move analysis utils to support folder; Move qor estimator to transform folder 2021-09-30 02:18:31 -05:00
Hanchen Ye f13dbc72ad Unified install for MLIR, Clang, Polygeist, and ScaleHLS, prepare for Python binding feature 2021-09-29 23:33:33 -05:00
Hanchen Ye a033ec2640 update README; update polybench C test cases 2021-08-23 16:16:20 -05:00