Commit Graph

622 Commits

Author SHA1 Message Date
Hanchen Ye 2a01425bc0
[Readme] Update paper info 2022-08-29 17:11:05 -05:00
Hanchen Ye 0f9627a9f2
[Transforms] Apply buffer-loop-hoisting after materialize-reduction in scalehls-dse-pipeline 2022-05-12 17:27:25 -05:00
Hanchen Ye 4acb879583 [AffineLoopPerfection] Avoid to perfectize loops with function calls in between two loop levels 2022-04-22 11:26:24 -05:00
Hanchen Ye 9312f95c76 [EmitHLSCpp] Emit functions by traversing the call graph in a post order 2022-04-21 16:22:21 -05:00
Hanchen Ye 5e92d8c1d0 [Samples] Add backprop benchmark from machsuite 2022-04-21 15:13:05 -05:00
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 27b616ef34 Update Polygeist version to support subindex-to-subview option 2022-04-21 01:40:59 -05:00
Hanchen Ye 8edd22a195 [EmitHLSCpp] Support PowFOp and ExtFOp 2022-04-19 22:52:40 -05:00
Hanchen Ye a0f19035cd [FuncProcess] Support to legalize getGlobalOp to PrimConstOp 2022-04-19 22:27:44 -05:00
Hanchen Ye f95d4554f5 [ArrayPartition] Fix an issue when detecting the function pipeline directive 2022-04-07 22:29:31 -05:00
Hanchen Ye fa6da08f8f [FuncPreprocess] Strip all loop directives 2022-04-06 22:26:22 -05:00
Hanchen Ye b4e650db89 [LegalizeDataflow] Apply dataflow directive only when the region contains dataflow node; [ConvertDataflowToFunc] Avoid to move constants across loops; [EmitHLSCpp] Support to emit array directives for PrimConstOp 2022-04-06 00:36:37 -05:00
Hanchen Ye f72f54672a [TosaNodeFusion] Change TransposeOp to backward fusion instead of forward fusion 2022-04-05 23:37:46 -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 d1c3cbe287 [Test] Fix failed test cases in Dataflow folder 2022-04-05 17:53:57 -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 02504fbea9 [CI] Remove polygeist test from buildAndTest workflow; Update badge to master branch 2022-04-02 17:23:45 -05:00
Hanchen Ye eb8743d3a9 [FuncPreprocess] Convert alloca to alloc and fold undef affine store 2022-04-02 09:55:29 -05:00
Hanchen Ye f1e5c42b6a Update license 2022-04-02 09:09:32 -05:00
Hanchen Ye efd5bb17a3 Remove redundant and transparent includes 2022-04-02 09:08:55 -05:00
Hanchen Ye 781b7ba9d8 [Transform] Fix some issues in ConvertDataflowToFunc and CreateRuntimeMain to enable the intra-node dataflowing of torch-pipeline-v2 2022-04-02 01:19:36 -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 b6403fdef2 [ConvertCopyToAffineLoops] Fix an issue that the memref to fold is not checked to be defined by alloc op 2022-04-02 00:26:14 -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 746ed0ad7a [Test] Fix failed test cases 2022-03-31 06:04:43 -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 55ef928631 [CreateAxiInterface] Support to demote buffer primitives to runtime main; Restructure this pass to make it more robust 2022-03-31 03:50:04 -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 465db3efad [AffineStoreForward] Erase memrefs that are only used by affine stores after the forwarding 2022-03-30 18:45:23 -05:00
Hanchen Ye 76c7c15183 [CreateRuntimeMain] Update this pass based on the dataflow representation 2022-03-30 17:42:30 -05:00
Hanchen Ye 9ac0314a2c [AffineLoopTile] Normalize tile loops after tiling 2022-03-30 14:58:28 -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 6fa4c49f8c [DataflowBufferize] Implement this pass 2022-03-29 16:04:13 -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 e9324ce8e8 [FuncDataflow] Start to refactor based on HLS dataflow ops 2022-03-29 09:32: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