Commit Graph

282 Commits

Author SHA1 Message Date
Hanchen Ye 0b8c03d300 [EmitHLSCpp] Support to emit stream.channel/read/write op; [HLSCpp] stream.write must take a value as input now; [CreateTokenFlow][HoistStreamChannel] Update these passes accordingly 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 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 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 bdb6f08dbd Register DLTI dialect by default 2022-03-18 22:56:31 -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 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 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 7dc360838a [Transforms] Remove the tileOrderOpt and unrollPointLoops option from applyAffineTiling API 2022-03-01 16:13:50 -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 b01dd9990a [CreateRuntimeMain] Start of this pass; [Transforms] Update the description of passes 2022-02-24 00:53:15 -06:00
Hanchen Ye 02dcdd1438 [PyTorchPipeline] Rename from scalehls-pipeline to scalehls-pytorch-pipeline; [QoREstimation] Remove the depAnalysis option, always set to true 2022-02-23 17:09:09 -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 543356dac5 [ConvertCopyToAffineLoops] Implement this pass; Enable more passes in the scalehls pipeline 2022-02-23 03:49:11 -06:00
Hanchen Ye 4c1e8f177f Remove onnx front-end option from scalehls pipeline; Deprecate onnx-mlir samples 2022-02-22 23:46:10 -06:00
Hanchen Ye 0d8e73c09c [Conversions] Remove this directory 2022-02-22 23:35:32 -06:00
Hanchen Ye 875f04a4c1 [LegalizeDataflow][SplitFunction] Support adopt TOSA IR from torch-mlir 2022-02-22 23:25:05 -06:00
Hanchen Ye 1f11eb3ce9 Bump LLVM to af6b993 2022-02-22 01:18:14 -06:00
Paul Jeong 310d9c6981 [IP_Integration] collapse_shape emitter implemented 2022-02-21 21:58:38 -06:00
Hanchen Ye cc324c4b45 [SimplifyGraph] Implement this pass 2022-02-20 19:28:33 -06:00
Hanchen Ye c621ee0464 [Transforms] Add pipeline option to specify front-end: torch or onnx 2022-02-20 18:24:56 -06:00
Hanchen Ye bdc607600c [Transforms] Enable optimization level in the scalehls-pipeline 2022-02-17 22:15:28 -06:00