Commit Graph

545 Commits

Author SHA1 Message Date
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 48d90f2e62 [HoistStreamChannel] Implement this pass 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 e680e83dee [CreateTokenFlow] Implement this pass, should be applied after heuristic-node-fusion pass" 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 9f8df6f437 [HLSCpp] Add stream type 2022-03-20 17:02:11 -05:00
Hanchen Ye 3d1605ebbf [CreateTokenFlow][HoistStreamChannel] Start of these two passes 2022-03-20 17:02:11 -05:00
Hanchen Ye cf7c39fe14 [Docs] Update scalehls architecture figure 2022-03-20 17:01:30 -05:00
Hanchen Ye bdb6f08dbd Register DLTI dialect by default 2022-03-18 22:56:31 -05:00
Hanchen Ye af8ee12337 Bump polygeist to 3bfc5726456be032fd4fc5c0fc5781b81af57ede 2022-03-18 15:49:31 -05:00
Hanchen Ye ab33f68f55 [RaiseImplicitCopy] Implement this pass, convert-copy-to-affine-loops should be used afterward to canonicalize away redundant copy ops and lower remained ones back 2022-03-18 13:01:35 -05:00
Hanchen Ye 9500860fb6 [RaiseImplicitCopy] Start of this pass 2022-03-18 11:16:54 -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 d9583689d5 [HeuristicNodeFusion] Implement this pass 2022-03-17 16:57:08 -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 f2024e4855 Bump polygeist to 6588ff6101da038c68255a62a16dae8bd06280cb 2022-03-17 01:55:08 -05:00
Hanchen Ye f068e633d7 [ConvertCopyToAffineLoops] Support intern-copy-only as an option; [AffineLoopDataflow] Only dataflow innermost loop that has more than one child loops; [applyDataflow] Fix an issue when handling loop dataflowing; Remove linalg support 2022-03-17 01:17:01 -05:00
Hanchen Ye 6f12eb391a [Transforms] Rename simplificationOpts to memoryOpts; Reorganize code structure of Utils.h and Passes.h 2022-03-16 16:23:12 -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 8059ed5080 [Transfroms] Reorganize file structure 2022-03-16 15:09:39 -05:00
Hanchen Ye 8e6a21f1ad [Transforms] Factor out applyLegalizeDataflow and applySplitFunction as APIs targeting a block whose parent can be both function or affine loop 2022-03-12 15:38:58 -06:00
Hanchen Ye ded1c5727b [LoopUnrollJam] Expose pointLoopOnly option when initializing the pass; [ConvertCopyToAffineLoops] Support the optional lowering of AXI interface-associated copy ops 2022-03-10 23:36:23 -06:00
Hanchen Ye 482711615e [Transforms] Add a scalehls-test-pipeline for the local buffer flow 2022-03-10 18:18:13 -06:00
Hanchen Ye 265ec1c3da [LoopUnrollAndJam] Support to only unroll point loop bands 2022-03-10 18:17:22 -06:00
Hanchen Ye d09be1a0a0 [PromoteBuffer] Factor out this pass from LegalizeToHLSCpp 2022-03-10 17:34:16 -06:00
Hanchen Ye 1d5d43d057 [CreateMemrefSubview] Implement this pass; [Transforms] Update the getBoundOfAffineMap API to serve more users 2022-03-10 03:16:59 -06: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 3025b838d6 [Transforms] Enhance the applyLoopTiling API to support the annotation of parallel loops and point loops 2022-03-09 18:19:26 -06:00
Hanchen Ye 36f748175e [Transforms] Rename from setParallel/Point/TopFunc to setParallel/Point/TopFuncAttr 2022-03-09 17:45:00 -06:00
Hanchen Ye bc4dc1cf84 [AffineLoopTileAndAnnotate] Implement this pass 2022-03-09 17:39:49 -06:00
Hanchen Ye d92495af40 [LegalizeDataflow] Support insertCopy as an optional argument when initializing this pass; [Transforms] Trun off insertCopy in scalehls-dse-pipeline 2022-03-09 02:31:01 -06:00
Hanchen Ye 8626ca3ed5 [Build] Disable python binding by default; Add a pybind option to build-scalehls.sh; [Readme] Update readme accordingly 2022-03-09 02:11:32 -06:00
Hanchen Ye 564c413385 [Samples] Remove the separate readme under the rosetta directory 2022-03-08 01:21:53 -06:00
Hanchen Ye d9f2909ce6 [Transforms] Add scalehls-dse-pipeline and corresponding options; Support to hide the latency of AXI load/store with function dataflow 2022-03-08 00:56:56 -06:00
Hanchen Ye 626cfea264 [LegalizeHLSCpp] Support to create AXI interfaces as an optional transform; [QoREstimation][EmitHLSCpp] Support memref CopyOp; [DSE] Move applyLegalizeToHLSCpp to the begining of the pass 2022-03-07 22:39:51 -06:00
Hanchen Ye ad2bf8b7c6 [Readme] Add a figure for the overall architecture 2022-03-04 02:45:25 -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 7dc360838a [Transforms] Remove the tileOrderOpt and unrollPointLoops option from applyAffineTiling API 2022-03-01 16:13:50 -06:00
Hanchen Ye a808fdb65a [FakeQuantize] Support matmul and pool2d op; [EmitHLSCpp] Support truncate and extend 2022-03-01 15:48:25 -06:00
Hanchen Ye a77a093fa5 [CreateRuntimeMain] Move this pass out from Graph transforms folder 2022-03-01 01:26:49 -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 10252043d4 [FakeQuantize] Implement this pass; Add fake-quantize option to the pytorch pipeline 2022-02-28 18:26:37 -06:00
Hanchen Ye c360f7e702 [CreateRuntimeMain] Relocate buffers in sub-functions to the runtime main function 2022-02-25 00:51:58 -06:00
Hanchen Ye 637a101bf7 [ConvertCopyToAffineLoops] Support to lower tensor reshape ops 2022-02-24 19:09:41 -06:00
Hanchen Ye 65e2949e39 [EmitHLSCpp] Stop to emit the runtime main function, which should be emitted separately 2022-02-24 02:07:06 -06:00
Hanchen Ye a2770c8c85 [CreateRuntimeMain] Implement this pass 2022-02-24 01:46:22 -06:00