Hanchen Ye
|
3d1bcb906e
|
[MultipeLevelDSE, LoopPipeline] fix bugs; [QoREstimation] fix no_touch attribute support; [LegalizeToHLSCpp] split out callable API;
|
2021-04-21 21:59:47 -05:00 |
Hanchen Ye
|
6b0255366a
|
[Analysis] remove AnalysisBase class, update emitter, estimator, and optimizer accordingly; [MultipleLevelDSE] update with new attributes
|
2021-04-21 03:26:37 -05:00 |
Hanchen Ye
|
68b1895d31
|
[HLSCpp] update definition of attributes, hope this is the final version...; [LegalizeToHLSCpp, QoREstimation] update with new attributes
|
2021-04-21 00:29:52 -05:00 |
Hanchen Ye
|
cb2df2dc37
|
[HLSCpp] update ScheduleAttr to TimingAttr; [QoREstimation] using HLSCpp attribute for representing resource and timing annotations
|
2021-04-19 00:11:10 -05:00 |
Hanchen Ye
|
2fda888955
|
[HLSCpp] use ODS for the dialect declaration
|
2021-04-16 09:58:08 -05:00 |
Hanchen Ye
|
a26b6d0518
|
[HLSCpp] update all attributes; add attribute parser and printer; [QoREstimation] update with ScheduleAttr
|
2021-04-16 01:07:08 -05:00 |
Hanchen Ye
|
c798c28717
|
[HLSCpp] start to add structure attributes for representing directives, scheduling, and resource info
|
2021-04-15 14:12:46 -05:00 |
Hanchen Ye
|
d1786aeed7
|
[QuantizeOnnx] update the pass name
|
2021-04-06 20:35:32 -05:00 |
Hanchen Ye
|
ea9467cfe5
|
[QuantizeDNNModel] add support of div op and some cast ops
|
2021-04-06 18:47:30 -05:00 |
Hanchen Ye
|
d14f8718d0
|
[QuantizeDNNModel] impl this pass for quantizing onnx model to 8/32 bits representation; [HLSCpp] add MulOp and AddOp
|
2021-04-06 17:25:57 -05:00 |
Hanchen Ye
|
d0b847c26a
|
[MultipleLevelDSE] support to specify the maximum exploration and loop parallelism; [Samples] add trmm test case, update the problem size of all benchmarks to 1024
|
2021-03-31 22:45:14 -05:00 |
Hanchen Ye
|
cd03a1def3
|
[MultipleLevelDSE] support to explore directive-only design space
|
2021-03-31 19:32:56 -05:00 |
Hanchen Ye
|
a9d93f0ed2
|
[MultipleLevelDSE] support to specify sample number; [EmitHLSCpp] stop to emit interface pragma if array is fully partitioned; [Samples] update polybench test script
|
2021-03-31 15:56:00 -05:00 |
Hanchen Ye
|
1d00ea9812
|
[ArrayPartition] fix a bug; add applyArrayPartition() to transform utils; [Samples] update dnn test target fpga
|
2021-03-30 15:54:53 -05:00 |
Hanchen Ye
|
1e1b50df06
|
[MultipleLevelDSE] support to sample pareto points and dump to mlir files
|
2021-03-29 20:09:02 -05:00 |
Hanchen Ye
|
6bf2845742
|
[MultipleLevelDSE] support to dump all design spaces (loops and funcs); begin of exporting pareto design points C++ files; [Samples] reconstruct the file structure
|
2021-03-29 18:53:55 -05:00 |
Hanchen Ye
|
58bd312356
|
[ArrayPartition] update to target FuncOp rather than ModuleOp; [MultipleLevelDSE] add resConstraint option; [Samples] update polybench benchmarks
|
2021-03-29 15:52:34 -05:00 |
Hanchen Ye
|
dec53d8e36
|
[SplitFunction] support to further split sub-functions into multiple single-loop-function
|
2021-03-26 22:38:07 -05:00 |
Hanchen Ye
|
a040ce5009
|
[PartialAffineLoopTile] support loop order opt immediately after loop tiling; [AffineLoopOrderOpt] fix a small bug; [Samples] update the ablation study script
|
2021-03-26 12:23:28 -05:00 |
Hanchen Ye
|
b6534145a1
|
[ArrayPartition] support to handle top functions containing multiple sub-functions
|
2021-03-23 21:58:09 -05:00 |
Hanchen Ye
|
b0c331f44c
|
[PartialAffineLoopTile] add appy-pipeline option
|
2021-03-23 11:53:14 -05:00 |
Hanchen Ye
|
1fe0475195
|
update to LLVM f178c13fa899; [ArrayPartition] fixed a bug; [Samples] remove array initialization in atax, bicg, and gesummv
|
2021-03-22 17:29:43 -05:00 |
Hanchen Ye
|
dc3ef5ee67
|
[ArrayPartition] resolve an issue that non-pipelined loops are not considered; [Transforms] add an applyFullyUnrollAndPartition() until; [Samples] reverse gemm, syrk, syr2k back...
|
2021-03-16 23:57:18 -05:00 |
Hanchen Ye
|
4c9708d239
|
[Analysis] add a getAverageTripCount() util for estimation and dse
|
2021-03-16 17:31:19 -05:00 |
Hanchen Ye
|
1d39291a92
|
[MultipleLevelDSE] fixed a small issue; [Samples] update the problem sizes of polybench test cases
|
2021-03-04 19:58:46 -06:00 |
Hanchen Ye
|
17d34f0563
|
[MultipleLevelDSE] evaluate the tile config that fully unrolls all sequential loops in the design space initialization
|
2021-03-02 18:51:48 -06:00 |
Hanchen Ye
|
15bc2ff8f2
|
update to LLVM c68d289
|
2021-03-02 14:31:08 -06:00 |
Hanchen Ye
|
05681e4f34
|
[SimplifyMemrefAccess] significantly reduce the overall complexity
|
2021-03-01 22:27:02 -06:00 |
Hanchen Ye
|
2a7ceaf21b
|
[MultipleLevelDSE] dse params passed in through target-spec.ini rather than pass options; update debug info emission format
|
2021-03-01 00:33:06 -06:00 |
Hanchen Ye
|
d1e87c7af7
|
[QoREstimation] improve estimation speed by using parallel loop information; [Transforms] update utils to apply LegalizeToHLSCpp after loop tiling; [MultipleLevelDSE] add topFunc as pass option
|
2021-02-28 23:30:57 -06:00 |
Hanchen Ye
|
66f932c9db
|
[LegalizeToHLSCpp] support to annotate parallel loops; [Transforms] improve the speed of SimplifyMemrefAccess and AffineStoreForward by using the parallel information
|
2021-02-28 20:52:10 -06:00 |
Hanchen Ye
|
6b6b07e764
|
[AffineStoreForward] rewrite this pass to improve the speed
|
2021-02-18 18:23:29 -06:00 |
Hanchen Ye
|
a580fe4239
|
[QoREstimation] add dep-analysis option to improve the estimation speed
|
2021-02-18 00:48:01 -06:00 |
Hanchen Ye
|
dbf65620df
|
[MultipleLevelDSE] support to combine loop design spaces and conduct function-level optimization
|
2021-02-17 21:45:12 -06:00 |
Hanchen Ye
|
5b3848291a
|
[MultipleLevelDSE] update the code structure; add FuncDesignPoint and FuncDesignSpace class; [QoREstimation] bypass the estimation of loops marked as no_touch
|
2021-02-17 12:53:24 -06:00 |
Hanchen Ye
|
22aea10608
|
[MultipleLevelDSE] support explore design space method
|
2021-02-13 12:53:34 -06:00 |
Hanchen Ye
|
9658ab6938
|
[MultipleLevelDSE] update code structure
|
2021-02-12 15:14:07 -06:00 |
Hanchen Ye
|
3e3435dc84
|
[MultipleLevelDSE] support ds initialization and pareto frontier update; support ds dump; remove ProfileDesignSpace pass; [PartialAffineLoopTile] become fully in-place tiling
|
2021-02-12 14:54:36 -06:00 |
Hanchen Ye
|
390333e5ec
|
[MultipleLevelDSE] add new DesignPoint and DesignSpace class for representing and iterating in the design space, remove the TileSpace class; [LoopPipelining] pass loop band into this pass and make optimization to happen in place
|
2021-02-12 01:25:56 -06:00 |
Hanchen Ye
|
d7a3456fc2
|
[MultipleLevelDSE] remove greedy dse algorithm; [ProfileDesignSpace] move this pass to Transforms folder due to dependence issue; update all CMakeLists
|
2021-02-10 20:04:46 -06:00 |
Hanchen Ye
|
a55495582c
|
[Transforms] use loop band as input for all loop transforms; update the method description of Utils
|
2021-02-10 08:50:56 -06:00 |
Hanchen Ye
|
265d888f5f
|
add pthread support in cmake; [Transforms] support apply per-loop opt strategy in Utils; [Samples] increase problem size of some polybench test cases
|
2021-02-10 01:20:00 -06:00 |
Hanchen Ye
|
c76938dccc
|
[Readme] update test instructions; fixed several small bugs
|
2021-02-08 01:48:59 -06:00 |
Hanchen Ye
|
fa2b63f958
|
rename HLSCppEstimator/Optimizer/Emitter to ScaleHLSXXX; [Transforms] op builder is no longer passed around but generated locally; [applyOptStrategy] update and optimize the implementation
|
2021-02-08 01:32:33 -06:00 |
Hanchen Ye
|
69ec8c0b4a
|
[Transforms] move all transformation APIs to Transforms/Utils
|
2021-02-04 20:01:50 -06:00 |
Hanchen Ye
|
55d7c17d02
|
[ProfileDesignSpace] factor out a new pass for profiling; distribut test cases in test/Transforms into different sub-directories
|
2021-02-04 11:56:09 -06:00 |
Hanchen Ye
|
80bf2ceba4
|
[Transforms] distribute transform passes into 4 different folders; move HLSKernelBufferize pass to Dialect/HLSKernel folder
|
2021-02-02 19:22:15 -06:00 |
Hanchen Ye
|
7eb1ce40ce
|
[MultipleLevelDSE] start to support profiling mode to profile the performance and resource utilization of the whole design space
|
2021-02-02 18:46:38 -06:00 |
Hanchen Ye
|
f083e3c663
|
[QoREstimation] support per-loop estimation; annotate with/without resourc-sharing dsp utilization to pipelined loops
|
2021-02-02 17:48:00 -06:00 |
Hanchen Ye
|
0b7fde18d9
|
support to specify targeted II for pipelined loop/function
|
2021-02-02 15:04:45 -06:00 |
Hanchen Ye
|
44dd4723cd
|
[QoREstimation] update depII calculation logic for improving estimation speed
|
2021-02-01 15:25:28 -06:00 |
Hanchen Ye
|
a96223268a
|
[QoREstimation] memory dependency are checked locally in estimateBlock() for improving estimation speed; update class structure, FuncOp is no longer a global variable but is passed in estimateFunc() as an argument
|
2021-02-01 13:15:08 -06:00 |
Hanchen Ye
|
06dcdde06f
|
[LoopPipelining] add applyFullyLoopUnrolling() method and rewrite this pass; [QoREstimation] update dependency related logic; mechanical rewrite from getLoopBody().front() to getBody()
|
2021-01-31 21:25:40 -06:00 |
Hanchen Ye
|
87035ff760
|
[SimplifyAffineIf] move redundant if op elimination into this pass; remove redundant getOperation() call
|
2021-01-30 20:43:49 -06:00 |
Hanchen Ye
|
8871d2fbe2
|
[MultipleLevelDSE] apply function-level optimizations through pass manager rather than customized apply() methods
|
2021-01-30 16:57:28 -06:00 |
Hanchen Ye
|
225f465065
|
[MultipleLevelDSE] impl of a more advanced dse algorithm; [RedundantOpRemoval] merge SimplifyMemrefAccess to this pass
|
2021-01-29 02:01:05 -06:00 |
Hanchen Ye
|
545b5aff53
|
[ArrayPartition] fix bugs when mux is generated; [MultipleLevelDSE] fix bugs when the innermost loop is fully tiled
|
2021-01-28 13:24:29 -06:00 |
Hanchen Ye
|
c137cacb59
|
update to LLVM afd483
|
2021-01-28 11:37:34 -06:00 |
Hanchen Ye
|
d44dfe68c2
|
[QoREstimation] update the logic of estimating resource minimum II
|
2021-01-27 20:42:53 -06:00 |
Hanchen Ye
|
f584b82a96
|
[QoREstimation] resolve the issue of load operation scheduling and resource-aware II estimation
|
2021-01-27 16:53:42 -06:00 |
Hanchen Ye
|
76af224a46
|
[QoREstimation] support a temporary approach to estimate variable trip count
|
2021-01-25 13:55:07 -06:00 |
Hanchen Ye
|
9cd80630e0
|
[MultipleLevelDSE] support more fine-grained tiling strategy searching
|
2021-01-23 23:25:13 -06:00 |
Hanchen Ye
|
7641af0c04
|
[PartialAffineLoopTile] update tiling strategy and api design; [MultipleLevelDSE] simplify debugging info emission, start of gine-grained loop tiling dse
|
2021-01-23 17:07:36 -06:00 |
Hanchen Ye
|
f6034a6883
|
[QoREstimation] resolve the issue when the partition index of one dimension is uncertain, the resource estimation is incorrect
|
2021-01-23 02:50:33 -06:00 |
Hanchen Ye
|
9b527faf0c
|
simplify scalehls-opt and scalehls-translate tool; add InitAllDialects and InitAllPasses methods; remove ablation_test_run.sh and update readme as well
|
2021-01-21 16:14:13 -06:00 |
Hanchen Ye
|
2489d1baf9
|
[MultipleLevelDSE] update tiling strategy, fix several bugs; [AffineLoopOrderOpt] support reverse permutation
|
2021-01-21 04:07:13 -06:00 |
Hanchen Ye
|
57dc6c62a5
|
[MergeAffineIf] implement of this pass
|
2021-01-20 23:19:19 -06:00 |
Hanchen Ye
|
d36201ce66
|
[MultipleLevelDSE] support automatic tiling strategy dse; [AffineStoreForward] fix a major bug; [PartialAffineLoopTile] fix the issue when constant trip count is not power of 2
|
2021-01-20 21:11:07 -06:00 |
Hanchen Ye
|
e0c3b2ad8e
|
[PartialAffineLoopTiling] factor out applyPartialAffineLoopTiling() method, reimplement the tiling strategy
|
2021-01-20 16:45:11 -06:00 |
Hanchen Ye
|
1e1cd2f828
|
[AffineLoopOrderOpt] complete the impl of this pass; move getLoopBandFromLeaf/Root to analysis utils, update several pass accordingly
|
2021-01-20 00:56:40 -06:00 |
Hanchen Ye
|
d3d13e0bd0
|
fix bugs related to dependency analysis; [AffineLoopOrderOpt] add initial impl of applyAffineLoopOrderOpt method
|
2021-01-19 15:55:36 -06:00 |
Hanchen Ye
|
7c1130452e
|
[AffineLoopOrderOpt] start of this pass; update test case names
|
2021-01-19 01:53:57 -06:00 |
Hanchen Ye
|
847d50b829
|
add copyright header; remove redundant includes and usings; move EmitHLSCpp to Tanslation directory
|
2021-01-19 01:36:00 -06:00 |
Hanchen Ye
|
4a594c9303
|
[LoopPipelining] recursively fully unroll all inner loops until no failure are met
|
2021-01-18 17:27:24 -06:00 |
Hanchen Ye
|
53c9e141e0
|
[Analysis] update getLayoutMap() method in utils
|
2021-01-12 14:01:16 -06:00 |
Hanchen Ye
|
9025bd5091
|
[SplitFunction] support to remove redundant copy nodes, factor out applySplitFunction() method; [LegalizeDataflow] factor out applyLegalizeDataflow() method (#20)
|
2021-01-11 15:26:00 -06:00 |
Hanchen Ye
|
dd57e01069
|
[QoREstimation] update getDSPMap() method name and some value names
|
2021-01-11 03:51:41 -06:00 |
Paul Jeong
|
5b8b38b732
|
[QoREstimation] Basic bram estimation with array partitioning
|
2021-01-11 03:42:28 -06:00 |
Hanchen Ye
|
e47205e779
|
[QoREstimation] when partition factor is more than 2 and partition index cannot be determined for a memory access operation, a function call will be generated and change the original dependency relationship, this patch is intended to support this mechanism
|
2021-01-11 02:48:56 -06:00 |
Hanchen Ye
|
996c9cff8a
|
[QoREstimation] consider loop/function interval in the DSP resource estimation
|
2021-01-10 20:48:54 -06:00 |
Hanchen Ye
|
9cc5f3abdc
|
[FuncPipelining] comprehensively support function pipelining in emitter, estimator, and array partition pass
|
2021-01-10 18:43:40 -06:00 |
Hanchen Ye
|
5bf4d7943e
|
[FuncPipelining] support function pipelining; fix some small bugs
|
2021-01-09 23:31:33 -06:00 |
Hanchen Ye
|
ba3ca07833
|
[QoREstimation] factor out QoREstimation.h (#20); [MultipleLevelDSE] start of auto dse
|
2021-01-08 02:20:11 -06:00 |
Hanchen Ye
|
9f31dd663d
|
[AffineStoreForward] factor out applyAffineStoreForward() method; [SimplifyMemrefAccess] factor out applySimplifyMemrefAccess() method
|
2021-01-08 01:13:41 -06:00 |
Hanchen Ye
|
07d77f7193
|
[ArrayPartition] support multi-loops array partition; factor out applyArrayPartition() method (#20)
|
2021-01-07 23:29:49 -06:00 |
Hanchen Ye
|
a01b440a95
|
[LoopPipelining] factor out applyLoopPipelining() method (#20)
|
2021-01-07 20:36:05 -06:00 |
Hanchen Ye
|
5b2af8e248
|
[AffineLoopPerfection] factor out applyAffineLoopPerfection() method (#20)
|
2021-01-07 18:38:11 -06:00 |
Hanchen Ye
|
94d6d57dda
|
[RemoveVariableBound] factor out applyRemoveVariableBound() method (#20)
|
2021-01-07 16:44:09 -06:00 |
Hanchen Ye
|
13f6f83120
|
update tabalegen description for all operations and passes
|
2021-01-04 13:51:15 -06:00 |
Hanchen Ye
|
1353100dad
|
[Analysis] fixed a bug in Utils
|
2021-01-03 23:35:52 -06:00 |
Hanchen Ye
|
cf581f2694
|
[HLSCpp] remove all uses of ArrayOp, now all of the array-related pragmas are represented with MemRefType, fixed related bugs
|
2021-01-03 22:49:34 -06:00 |
Hanchen Ye
|
f052331cbc
|
[QoREstimation] estimate based on memref type rather than ArrayOp attributes
|
2021-01-03 17:48:36 -06:00 |
Hanchen Ye
|
ff6e7f0c4c
|
[ArrayPartition] use memref layout map to represent partition type rather than ArrayOp attributes
|
2021-01-03 16:16:55 -06:00 |
Hanchen Ye
|
34f32ab2f2
|
[AffineLoopPerfection] add a constraint for a legal perfection; [HLSCpp] update some attribute definitions; an important flaw is introduing hlscpp.array operation causes storing to argument memrefs has semantic incorrectness. Although this flaw can be handled by hlscpp emitter, and has not caused malignant issues by now, this should be carefully considered and refactored
|
2021-01-01 13:21:12 -06:00 |
Hanchen Ye
|
d086c3a2e8
|
update some passes name; [RemoveVariableBound] support single result expr variable bound; [Samples] fix syrk and syr2k error
|
2020-12-30 14:27:33 -06:00 |
Hanchen Ye
|
98060b98fe
|
[LegalizeDataflow] support to legalize loop and other operations simultaneously, support insert-copy and min-gran option for controlling whether CopyOps are inserted and the minimum granularity of dataflow
|
2020-12-25 23:40:33 -06:00 |
Hanchen Ye
|
c9599e11bf
|
[QoREstimation] update UI32 attribute to I64 for meeting the requirement of estimating super large designs
|
2020-12-25 15:25:24 -06:00 |
Hanchen Ye
|
1b6e00b303
|
Update LLVM to latest (7d246cb)
|
2020-12-25 02:41:38 -06:00 |
Hanchen Ye
|
9652bee260
|
[LegalizeDataflow] update impl structure and fix bugs, support resnet18 legalization; [EmitHLSCpp] emit bool rather than ap_int<1>
|
2020-12-25 00:04:10 -06:00 |
Hanchen Ye
|
fef0cdc3fe
|
[LegalizeDataflow] support loop-based dataflow legalization; [SplitFunction] include live-in analysis
|
2020-12-24 14:18:14 -06:00 |
Hanchen Ye
|
f02955c284
|
[Readme] add onnx-mlir integration test instructions; add mnist.onnx, resnet18 test case; [EmitHLSCpp] support cast ops emission
|
2020-12-24 00:15:47 -06:00 |
Hanchen Ye
|
e0ca62e238
|
[EmitHLSCpp] support TensorToMemrefOp emission; fixed related bugs
|
2020-12-23 17:48:21 -06:00 |
Hanchen Ye
|
21347b2665
|
[LegalizeOnnx] support to legalize the output of onnx-mlir flow to pure standard/affine IR
|
2020-12-23 16:45:38 -06:00 |
Hanchen Ye
|
4c1cc9e4b1
|
[QoREstimator] support DSP estimation (#18)
|
2020-12-22 15:33:12 -06:00 |
Hanchen Ye
|
85c47e98e3
|
[QoREstimation] support function call estimation, a known issue is CallOps inside of loops are not comprehensively considered; estimation refinement for multiple loops and select op (#5); fix related bugs
|
2020-12-21 19:02:39 -06:00 |
Hanchen Ye
|
b0bf044c9a
|
[QoREstimation] support scheduling reverse (#5); update scheduling emission style
|
2020-12-21 11:32:25 -06:00 |
Hanchen Ye
|
53550db33a
|
[EmitHLSCpp] support to emit line number and schedule information; [HLSCpp] update all code related to storage_type attribute to align with Vivado 2019.1 settings
|
2020-12-20 17:52:56 -06:00 |
Hanchen Ye
|
1ef835680b
|
[SimplifyMemRefAccess] implement this pass; [QoREstimation] fix a bug in dep-II estimation
|
2020-12-19 21:02:27 -06:00 |
Hanchen Ye
|
b9af6f5355
|
[SimplifyMemRefAccess] start of this pass; [Analysis] update getLoadStoresMap method in utils
|
2020-12-19 17:36:17 -06:00 |
Hanchen Ye
|
6103dfba45
|
[StoreOpForward] impl of this pass; update checkSameLevel method in Analysis utils
|
2020-12-19 17:06:27 -06:00 |
Hanchen Ye
|
117a1bd0f4
|
[HLSCpp] eliminate PragmaOps, update ArrayOp definition; [Analysis] refactor Utils; [StoreForward] start of this pass
|
2020-12-18 23:42:41 -06:00 |
Hanchen Ye
|
2d943dd238
|
remove redundant includes in all files; [QoREstimation] refactor include structure
|
2020-12-18 21:16:22 -06:00 |
Hanchen Ye
|
cea67c2064
|
[QoREstimation] refactor the estimation from ASAP -> ALAP; [ArrayPartition] move partiton_num annotation from QoREstimation to this pass
|
2020-12-18 20:21:20 -06:00 |
Hanchen Ye
|
5d854f3b74
|
[QoREstimation] support profiling latency based estimation (#2)
|
2020-12-17 21:40:29 -06:00 |
Hanchen Ye
|
18e5f434bb
|
[QoREstimation] fix bugs and incorrect behaviors in the implementation; [Passes] add some TODOs
|
2020-12-17 17:05:26 -06:00 |
Hanchen Ye
|
512c842908
|
[QoREstimator] thoroughly rewrite the estimator with new strategy and structure
|
2020-12-17 06:10:48 -06:00 |
Hanchen Ye
|
fac1498067
|
[LoopPipelining] move automatic flattening to this pass; [QoREstimation] support AffineIfOp estimation, know issue: dependencies between load/store operations should be considered in scheduling
|
2020-12-14 23:41:08 -06:00 |
Hanchen Ye
|
2307b0141f
|
[QoREstimation] restructure qor estimator
|
2020-12-14 16:24:36 -06:00 |
Hanchen Ye
|
3f6d8e8560
|
[Passes] small bugs fixed; remove HLSCppAnalyzer; insert-pipeline-pragma to loop-pipelining
|
2020-12-14 13:45:13 -06:00 |
Hanchen Ye
|
31ce83be83
|
[RemoveVarLoopBound] simplify impl logic; [QoREstimation] update to FuncOp pass, remove op-latency configuration
|
2020-12-13 22:07:04 -06:00 |
Hanchen Ye
|
142ffadd14
|
[Passes] change target operation from ModuleOp to FuncOp if possible
|
2020-12-13 19:39:33 -06:00 |
Hanchen Ye
|
4e163d6edc
|
[LegalizeDataflow] start of this pass; [HLSKernel] add CopyOp and lowering
|
2020-12-11 00:10:58 -06:00 |
Hanchen Ye
|
0414489dfd
|
[HLSKernelBufferize] impl of this pass; a known issue is the unused return tensor can not be eliminated
|
2020-12-10 22:55:05 -06:00 |
Hanchen Ye
|
fa105e1746
|
[HLSKernel] support tensor output for CNNOps
|
2020-12-10 17:33:59 -06:00 |
Hanchen Ye
|
6b5d682df1
|
[ConvertToHLSCpp] support defining top function; [EmitHLSCpp] support to emit interface pragmas according to whether the current function is top function or not
|
2020-12-09 18:59:00 -06:00 |
Hanchen Ye
|
b01d469bf3
|
[SplitFunction] start of split-function pass
|
2020-12-09 13:04:51 -06:00 |
Hanchen Ye
|
f9bf38240e
|
[ArrayPartition] impl of this pass; note that due to the insufficient AffineExpr simplification mechanism in MLIR, this pass can't handle too complicated cases
|
2020-12-07 23:24:15 -06:00 |
Hanchen Ye
|
a06d34e837
|
[ArrayPartition] start of array partition pass
|
2020-12-07 00:03:51 -06:00 |
Hanchen Ye
|
7cb98f3a87
|
[Samples] add ablation test script; update Readme; bug fix in InsertPipelinePragma
|
2020-12-06 23:48:20 -06:00 |
Hanchen Ye
|
939f01cd05
|
[InsertPipelinePragma] imple of this pass; support to specify the insertion level
|
2020-12-05 23:53:18 -06:00 |
Hanchen Ye
|
1ba479f1e6
|
[RemoveValLoopBound] impl this pass; only support single-dim variable upper bound
|
2020-12-05 23:26:58 -06:00 |
Hanchen Ye
|
a57f014e6b
|
[PartialAffineLoopTile] add the impl of this pass
|
2020-12-05 21:18:49 -06:00 |
Hanchen Ye
|
8be4fd1211
|
[AffineLoopPerfection] add this new pass: now only support sequential nested loop and constant loop bound
|
2020-12-04 23:24:16 -06:00 |
Hanchen Ye
|
1fa7700ae8
|
[Conversion] update all conversion passes definition to TableGen
|
2020-12-04 18:34:24 -06:00 |
Hanchen Ye
|
a8a6d639e1
|
[HLSKernel] CNNOps verifiers (#16)
|
2020-12-01 22:44:00 -06:00 |
Hanchen Ye
|
192e3e3fd7
|
[BenchmarkGen] support generating the last dense layer, and impl corresponding affine lowering (#15)
|
2020-12-01 21:20:39 -06:00 |
Hanchen Ye
|
e5cd6673e7
|
[BenchmarkGen] support generate CNN benchmarks without considering the last dense layer (#15)
|
2020-12-01 18:31:23 -06:00 |
Hanchen Ye
|
ac4f3725d1
|
[HLSKernelToAffine] impl of SyrkOp, Syr2kOp, and TrmmOp lowering
|
2020-12-01 00:49:50 -06:00 |
Hanchen Ye
|
ac1c9966a8
|
[HLSKernelToAffine] impl of GemmOp and SymmOp lowering
|
2020-11-30 22:57:42 -06:00 |
Hanchen Ye
|
29aff5e6fb
|
[HLSKernel] update BLASOps def; [HLSKernelToAffine] start of BLASOps lowering
|
2020-11-30 21:02:11 -06:00 |
Hanchen Ye
|
8f1eadd913
|
[HLSKernel] rewrite def of CNNOps, all input and output are bufferized now; add mergeOp; [HLSKernelToAffine] update a compact lowering impl; [HLSKernelToLinalg] removed because this will not bring us significant simplification/convenience
|
2020-11-30 12:39:41 -06:00 |
Hanchen Ye
|
ba0b949477
|
[HLSKernel] add BLASOps and ISPOps
|
2020-11-18 22:56:07 -06:00 |
Hanchen Ye
|
c6ce8991d7
|
[HLSKernelToLinalg] add to linalg converter
|
2020-11-18 20:17:17 -06:00 |
Hanchen Ye
|
2fb35bdc68
|
[EmitHLSCpp] start of supporting scf ops; [scalehls-gen] start of benchmark generation
|
2020-11-05 18:20:17 -06:00 |
Hanchen Ye
|
cf4e36e626
|
[HLSKernelToAffine] impl lowering of maxpool, relu, gemm ops
|
2020-11-05 15:48:47 -06:00 |
Hanchen Ye
|
6adc65da7a
|
[HLSKernel] add maxpool, relu, and gemm operations
|
2020-11-04 22:40:29 -06:00 |
Hanchen Ye
|
41e3747b85
|
[HLSKernel] start of HLSKernel ops lowering; add ConvOp
|
2020-11-01 21:27:53 -06:00 |
Hanchen Ye
|
eb34f4ee7b
|
[HLSKernel] mechanical rename Benchmark to HLSKernel
|
2020-10-28 22:20:37 -05:00 |
Hanchen Ye
|
da05ac2d84
|
[Benchmark] start of implementing benchmark dialect and benchmark-to-affine lowering
|
2020-10-27 18:36:17 -05:00 |
Hanchen Ye
|
6bbb1be13c
|
[HLSCppEmitter] emit ArrayOp and loop/func pragmas; compatible with Vivado HLS 2019.1 for now.
|
2020-10-10 23:35:21 -05:00 |