Commit Graph

318 Commits

Author SHA1 Message Date
Hanchen Ye 1b342cf6f1 [FuncDuplication] Implement this pass, which supports the subview sink after duplication; [Transforms] Move FuncPreprocess out of the Loop directory 2022-04-21 14:57:51 -05:00
Hanchen Ye 8edd22a195 [EmitHLSCpp] Support PowFOp and ExtFOp 2022-04-19 22:52:40 -05:00
Hanchen Ye 119d5bd894 [HLS] Add PrimConstOp; [BufferizeDataflow] Support tconvert ConstantOp to PrimConstOp; [CreateAxiinterface] Move PrimConstOp to runtime main; [EmitHLSCpp] Support to emit PrimConstOp 2022-04-05 23:16:20 -05:00
Hanchen Ye 717f80a83f [LegalizeDataflow] Fix several issues; Enable the pytorch-pipeline-v2 2022-04-05 17:43:24 -05:00
Hanchen Ye a66ff397bc [CreateDataflow] Implement this pass supporting create-func-dataflow and create-loop-dataflow pass 2022-04-05 13:23:13 -05:00
Hanchen Ye 4d2592c48e [CreateTokenDepends] Refactor this pass with pattern rewritter; Rename from CreateTokenFlow to avoid the confusion with the upcoming CreateDataflow pass 2022-04-05 02:06:55 -05:00
Hanchen Ye 455f2b8434 [HLS] Add verifier and a level optional attribute to DataflowBufferOp; [DataflowLegalize] Support buffer split and schedule; Support function dataflow merging 2022-04-05 01:27:05 -05:00
Hanchen Ye 4f8eafc1ae [HLS] Add verifier, a level optional attribute, and several utils to DataflowNodeOp; [DataflowLegalize] Start of this pass by support three rewriting patterns 2022-04-05 00:19:02 -05:00
Hanchen Ye adc508a7ef [HLS] Add canonicalize to DataflowNodeOp to remove unused results; [Transforms] Enhance the fuseOpsIntoNewNode API to support returning updated memrefs 2022-04-04 17:15:37 -05:00
Hanchen Ye 03c3f1a149 [Transforms] Move dataflow-related passes into the Dataflow sub-folder; Move localizeConstants and fuseOpsIntoNewNode method into transform utils 2022-04-04 13:20:45 -05:00
Hanchen Ye efd5bb17a3 Remove redundant and transparent includes 2022-04-02 09:08:55 -05:00
Hanchen Ye d45350a163 [Dataflower] Expand this class to support the dataflowing of tosa, affine for, and call operations 2022-04-02 00:37:44 -05:00
Hanchen Ye 12b371003b [TosaSimplifyGraph][TosaFakeQuantize] Rename these two passes to new names 2022-04-01 21:06:29 -05:00
Hanchen Ye 95e23ce639 [Transforms] Add Dataflower.h for the ScaleHLSDataflower class; Rename QoREstimation.h and MultipleLevelDSE.h to Estimator.h and Explorer.h; [DesignSpaceExplore] Rename from MultipleLevelDSE to new name 2022-04-01 20:55:27 -05:00
Hanchen Ye bbe88cc41a [HLS] Update the builder of DataflowOutputOp to make the parser work correctly; Remove some incorrectNoSideEffect traits; [Test] Add several test cases 2022-03-31 18:00:26 -05:00
Hanchen Ye e21af65023 [HLS] Remove buffer op; [ConvertCopyToAffineLoops][FuncPreprocess][EmitHLSCpp] Update accordingly 2022-03-31 16:43:03 -05:00
Hanchen Ye 12afe8c142 [Transforms] Renable torch-pipeline-v2, remove the original torch-pipeline; [Readme] Update accordingly 2022-03-31 05:05:33 -05:00
Hanchen Ye d6ffcd0c5b [Transforms] Make loopNormalize an option for the applyLoopTiling API 2022-03-31 04:58:53 -05:00
Hanchen Ye 9899afd713 [HLS] Add a buffer primitive op; [ConvertDataflowToFunc] Support to convert dataflow buffer to primitive buffer 2022-03-31 03:49:01 -05:00
Hanchen Ye 5a760e2175 [ConvertDataflowToFunc] Implement this pass; [TosaToLinalgCleanup] Use op conversion instead of rewriting; [Transforms] Support to specify a threshold size for localizeConstants API 2022-03-30 01:46:16 -05:00
Hanchen Ye 5f475ee12b [TosaToLinalgCleanup] Implement the tosa.reshape to linalg.generic lowering; [ConvertCopyToAffineLoops] Remove the lowering pattern of tensor.reshape op 2022-03-29 22:19:24 -05:00
Hanchen Ye aebca66a7e Bump Polygeist to e66f0df 2022-03-29 17:49:15 -05:00
Hanchen Ye aa1f741026 [CreateTokenFlow] Refactor this pass to avoid redundant token flow generated; [HLS] Start of a DataflowNodeRewriter class 2022-03-29 11:48:33 -05:00
Hanchen Ye 62d03ed865 [HLS] Remove StreamBufferOp which is no longer used; Remove HoistStreamChannel pass, which is substituted by DataflowBufferize 2022-03-29 09:44:04 -05:00
Hanchen Ye fceeba1d8b [HLS] Add fuseOpsIntoNewNode utils; [TosaNodeFusion] Update accordingly 2022-03-28 17:57:41 -05:00
Hanchen Ye 780e711c9f [HLS] Rename from HLSCpp dialect to HLS dialect 2022-03-28 16:13:42 -05:00
Hanchen Ye 7fc9c9c7f7 [FuncPreprocess] Rename from LegalizeToHLSCpp to new name 2022-03-28 15:49:30 -05:00
Hanchen Ye 62a2a33536 [CreateTokenFlow] Refactor this pass with DataflowNode/Output/Source/SinkOp; [TosaNodeFusion] Fix a small bug 2022-03-28 15:31:03 -05:00
Hanchen Ye 8a3c41d93f [HLSCpp] Rename StreamNode/Output/Buffer to DataflowNode/Output/Buffer; [ConvertDataflowToFunc][DataflowBuferize] Start of these two passes; [TosaNodeFusion] Rename from HeuristicNodeFusion to make it more precise 2022-03-28 12:44:19 -05:00
Hanchen Ye c39d249f9f [HLSCpp] Use hasVerifier in op definitions; Add assembly format to stream node op 2022-03-25 20:44:58 -05:00
Hanchen Ye 447be7f27a [HLSCpp] Add StreamNodeOp and StreamOutputOp 2022-03-25 11:15:37 -05:00
Hanchen Ye 4fcc43cd3c [HLSCpp] Add verifiers to stream ops; Add DeclaresStreamChannel Trait; Move hlscpp-associated methods from support/transform utils to hlscpp namespace 2022-03-23 21:08:41 -05:00
Hanchen Ye 8adb98a3bd [Transforms] Move qor-estimation to the directive folder; [TosaAndLinalgCleanup] Rename from tosa-to-linalg-cleanup to the new name to avoid confusion 2022-03-23 17:12:39 -05:00
Hanchen Ye c73e43cf81 [Transforms] Add pytorch-pipeline-v2 with inter/intra-node memory optimizations; Remove axi-interf option from dse-pipeline as we haven't been able to scale it; [FuncDataflow] Support to specify target-func during initialization 2022-03-22 17:57:10 -05:00
Hanchen Ye 28192bb053 [AffineLoopUnrollJam] Unroll from the innermost loop instead of the outermost 2022-03-22 16:50:14 -05:00
Hanchen Ye 8ed807fc5a [Transforms] Support to prefix the sub-functions generated by applyDataflow to distinguish different dataflows; [FuncDataflow][AffineLoopDataflow] Update these two passes accordingly 2022-03-22 16:25:44 -05:00
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