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 |
Hanchen Ye
|
3f7a58d55f
|
[QoREstimation] new resource-aware II analysis! memory port resources are taken into consideration
|
2020-10-10 22:53:52 -05:00 |
Hanchen Ye
|
cbfb623c67
|
[QoREstimation] unroll loops in IR now! support a real partition-aware loop scheduling
|
2020-10-10 02:33:26 -05:00 |
Hanchen Ye
|
28926c5cc2
|
[QoREstimation] impl of getAccessNum method, this will take partition information and count number of accesses for each partition of each dimension of each load/store op, which will help to better estimate II and iteration latency
|
2020-10-08 02:45:44 -05:00 |
Hanchen Ye
|
58655710f5
|
remove expired files and includes; update readme
|
2020-10-06 01:58:10 -05:00 |
Hanchen Ye
|
8365d24ded
|
[QoREstimation] update code with the new ArrayOp; add new HLSCppToolBase class
|
2020-10-06 01:36:51 -05:00 |
Hanchen Ye
|
f3c40918e3
|
[HLSCppDialect] add array operations, and corresponding modification in HLSCppEmitter, ConverToHLSCpp
|
2020-10-05 23:26:42 -05:00 |
Hanchen Ye
|
3555fb9d2d
|
[HLSCppDialect] use enum to update attributes definition; enhance pragma operations to support bind_storage, partition, and interface; [HLSCppEmitter] support all enhanced pragma operations
|
2020-10-04 20:14:22 -05:00 |
Hanchen Ye
|
4838b15b0f
|
update func_pragma definition; update readme
|
2020-10-01 20:10:51 -05:00 |
Hanchen Ye
|
e2c21ca9ab
|
[QoREstimation] support dependency-based II analysis
|
2020-10-01 16:16:02 -05:00 |
Hanchen Ye
|
46f444463e
|
[QoREstimator] a simple impl of estimator with lots of assumptions, can handle unroll and pipeline
|
2020-09-30 23:26:26 -05:00 |
Hanchen Ye
|
003a91472c
|
update to the newest version LLVM
|
2020-09-30 09:14:18 -05:00 |
Hanchen Ye
|
77eaacd030
|
[HLSCppDialect] update pragma operations definition, update corresponding emitters
|
2020-09-25 23:19:24 -05:00 |
Hanchen Ye
|
4470f6c232
|
[QoREstimation] move this pass to Analysis directory
|
2020-09-24 15:18:34 -05:00 |
Hanchen Ye
|
21968283d1
|
[QoREstimation] split out QoREstimation.h, StaticParam.h, and Visitor.h; refine QoREstimation code structure with new created classes; a relative completed searchLongestPath implementation
|
2020-09-24 00:30:03 -05:00 |
Hanchen Ye
|
ce293ee4c5
|
[QoREstimation] design parameters data structure; initial impl of longer path search
|
2020-09-23 18:23:43 -05:00 |
Hanchen Ye
|
b605503236
|
remove global dialect registration; update file structure
|
2020-09-23 14:10:34 -05:00 |
Hanchen Ye
|
9b7c1c1c69
|
[HLSCppDialect] pragma operations come back... eventually I found the analysis+estimate 2-step approach in COMBA is misleading, basically you can't clearly partition the task into two passes (StaticAnalysis and QoREstimation), so that I decide to merge the two into one QoREstimation pass. In this case, there's no need to move around estimated or extracted parameters between different passes, which means we can create an internal data structure in QoREstimation pass for decently holding all parameters, and pragma information will continue to be represented as pragma operation
|
2020-09-23 12:39:14 -05:00 |
Hanchen Ye
|
e06ba37001
|
[QoREstimation] initial implementation; add several config files for holding profiling data, resource constraint, and tool configuration. These config file can be passed to the compiler through QoREstimation pass option
|
2020-09-22 23:32:29 -05:00 |
Hanchen Ye
|
50b2a6c099
|
[HLSCppDialect] remove pragma operations: the functionality of pragma ops has been fully covered by param ops, and param ops is much more friendly to dse, hince there are no reason to maintain two groups of op with overlapped semantics; [README] update install & test instructions
|
2020-09-20 02:21:20 -05:00 |
Hanchen Ye
|
e1b878e845
|
[HLSCppDialect] refine parameter operations definition; create seperate attributes tablegen
|
2020-09-20 02:05:58 -05:00 |
Hanchen Ye
|
53a83dee09
|
[HLSCppDialect] add many new passes declaration; add parameter operations declaration; remove scalehls-estimator tool
|
2020-09-19 18:21:08 -05:00 |
Hanchen Ye
|
8a67b13b99
|
[HLSCppDialect] add Assign operation, ConvertToHLSCpp pass; [HLSCppEmitter] add two testcases
|
2020-09-13 23:40:24 -05:00 |
Hanchen Ye
|
c707e72a0a
|
[PragmaInsertion] simple initial implementation for testing new pragma operations
|
2020-09-13 18:08:46 -05:00 |
Hanchen Ye
|
565a8f15d0
|
update code structure: add scalehls-estimator, EstimateQoR, and hlscpp::PragmaInsertion pass
|
2020-09-13 16:35:47 -05:00 |
Hanchen Ye
|
a31192405d
|
[HLSCppDialect] add pipeline & unroll & array_partition pragma operation
|
2020-09-13 01:02:15 -05:00 |
Hanchen Ye
|
1a6491b4fd
|
[HLSCppDialect] add ApplyPragmasOp and PragmaOpInterface
|
2020-09-12 18:30:04 -05:00 |
Hanchen Ye
|
45fe55af67
|
add new HLSCpp dialect and scalehls-opt tool
|
2020-09-09 23:44:47 -05:00 |
Hanchen Ye
|
1f4200e88a
|
mechanical rename hlsld to scalehls; update file structure
|
2020-09-06 18:05:16 -05:00 |
Hanchen Ye
|
01baa10c97
|
[EmitHLSCpp] some basic classes; hlsld-translate entry; add testcase
|
2020-08-26 23:23:22 -05:00 |
Hanchen Ye
|
b35338e68e
|
build code structure; update readme; remove pymlir directory
|
2020-08-25 14:11:30 -05:00 |
hanchen8
|
0d548a41f4
|
Add FpgaKrnl Ops defination
|
2020-05-06 21:15:55 -05:00 |
hanchen8
|
dbe3466267
|
construct files structure
|
2020-04-21 17:29:35 -05:00 |