Commit Graph

163 Commits

Author SHA1 Message Date
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
Hanchen Ye 03b2695fe7 [Samples] fix bugs in ablation study script 2020-12-07 13:06:43 -06:00
Hanchen Ye 89eadd6102 [Samples] support output test result summary 2020-12-07 12:09:34 -06:00
Hanchen Ye cf364bb5e0 [Readme] update ablation study part 2020-12-07 00:12:27 -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 1996c05840 [AffineLoopPerfection] support variable lower/upper loop bound; start of test cases of Transform/AffineLoopPerfection and benchmark-gen 2020-12-05 00:31:14 -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 b499026303 [HLSKernelToAffine] update lowering of all ops 2020-12-04 17:47:47 -06:00
Hanchen Ye 2ddf317e95 [BenchmarkGen] fix a small bug 2020-12-03 14:11:03 -06:00
Hanchen Ye fc1443e90a [HLSKernelToAffine] update TrmmOp lowering; update all BLASOps test cases 2020-12-03 14:03:09 -06:00
Hanchen Ye 7ec04a909a [Samples] add a script for reporting HLS result for the test cases under test/Conversion/HLSKernelToAffine; remove unrelated files 2020-12-02 18:54:59 -06:00
Hanchen Ye e66887f5aa [BenchmarkGen] update cnn-config.ini comments 2020-12-01 23:45:56 -06:00
Hanchen Ye 41b5cb32a8 [BenchmarkGen] update CNN benchmarkGen, now all kernels and biases become function arguments 2020-12-01 23:37:28 -06:00
Hanchen Ye 7d9ee1b965 [BenchmarkGen] support more CNN generation config 2020-12-01 22:58:19 -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 ea7b6a1495 [HLSKernelToAffine] ConvOp lowering supports padding 2020-12-01 13:03:43 -06:00
Hanchen Ye ac91499235 [HLSKernelToAffine] rewrite SymmOp lowering with if statement 2020-12-01 11:22:35 -06:00
Hanchen Ye ac4f3725d1 [HLSKernelToAffine] impl of SyrkOp, Syr2kOp, and TrmmOp lowering 2020-12-01 00:49:50 -06:00