Commit Graph

187 Commits

Author SHA1 Message Date
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 a3b4ed185b [LegalizeOnnx] support convert add to apply, try to promote LoadOp to AffineOp; however, the LoadOp lowered from onnx pooling operation CANNOT be promoted, sad 2020-12-23 23:21:42 -06:00
Hanchen Ye bb182fd561 [LegalizeOnnx] support lowering of krnl.memcpy operation; fixed related bugs 2020-12-23 22:11:25 -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 9067cb6383 [Test] add benchmarks of comba 2020-12-22 22:43:53 -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 8c715623fb [EmitHLSCpp] support to print II and iteration latency info; [QoREstimation] detailed refinement 2020-12-20 23:45:03 -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 bf6c17f1ab [Readme] update instructions for testing ScaleHLS; [QoREstimation] remove getOpII method 2020-12-19 23:31:52 -06:00
Hanchen Ye ea5d2266ec [QoREstimation] fix the issue that the partition index after loop tiling cannot be correctly detected (#5) 2020-12-19 22:36:28 -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 a6c4ec403d [gitignore] update ignore list; [BenchmarkGen] add auto_gen_cnn.mlir test case 2020-12-18 20:22:38 -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 93b5a2641e [QoREstimation] support dep-aware II calculation (#4) 2020-12-14 20:48:59 -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 c24b418c4a [InsertPipelinePragma] move loop unrolling and canonicalization to this pass; inner loops of the pipelined loop are automatically fully unrolled now 2020-12-14 12:58:15 -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 77683ee618 [EmitHLSCpp] fix bugs in ArrayOp emission, this time the issue is completely solved by adding alias in addName() method 2020-12-13 17:36:01 -06:00
Hanchen Ye 2456efc28d [SplitFunction] update to support legalized dataflow; [HLSKernelBufferize] update logic using TensorToMemRefOp 2020-12-13 14:50:35 -06:00
Hanchen Ye 7cfd343dd4 [LegalizeDataflow] impl of this pass, currently only support HLSKernel CNNOps 2020-12-13 11:51:10 -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 2ab2a84b13 [EmitHLSCpp] fix a bug in TensorLoadOp and ArrayOp emission 2020-12-10 23:31:06 -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 1f740b15f7 [HLSKernel] update CNNOps verifiers; [BenchmarkGen] fix bugs in CNNOps generation 2020-12-10 19:07:11 -06:00
Hanchen Ye cbc7573c16 [BenchmarkGen] generate CNN benchmarks using tensors for passing hidden feature maps; this is for the covenience of dataflow analysis 2020-12-10 18:46:12 -06:00
Hanchen Ye fa105e1746 [HLSKernel] support tensor output for CNNOps 2020-12-10 17:33:59 -06:00
Hanchen Ye 3e1273803c [BenchmarkGen] support bypass path for CNN benchmark gen 2020-12-10 16:26:16 -06:00
Hanchen Ye 26cf81a103 [SplitFunction] impl of this pass; [EmitHLSCpp] fix bugs in AddAlias method 2020-12-10 01:02:20 -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 a17a1abeda [EmitHLSCpp] support CallOp emission; fixed a bug when emitting scalar s_axilite interface 2020-12-09 17:24:49 -06:00
Hanchen Ye b01d469bf3 [SplitFunction] start of split-function pass 2020-12-09 13:04:51 -06:00
Hanchen Ye cbadc8f831 [Samples] add array-partition into ablation study; [ArrayPartition] support AffineStoreOp; bug fixes in EmitHLSCpp and ConvertToHLSCpp 2020-12-08 12:35:44 -06:00
Hanchen Ye 6a504e576a [EmitHLSCpp] update ArrayOp emission logic 2020-12-07 23:32: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