Commit Graph

113 Commits

Author SHA1 Message Date
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 10050bc6a3 [HLSKernelToAffine] lowering impl of MergeOp 2020-11-30 12:45:34 -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 c9d694c65c [HLSKernelToLinalg] add SymmOp lowering 2020-11-23 15:42:36 -06:00
Hanchen Ye 78eecf18da [EmitHLSCpp] fix emitAllocOp bug; remove addAlias call when emitting arrayOp 2020-11-19 20:32:50 -06:00
Hanchen Ye cc0b6cb065 [HLSKernelToLinalg] impl of gemm op lowering 2020-11-19 18:06:31 -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 321dceafae [BenchmarkGen] start of cnn test case generation 2020-11-10 23:34:40 -06:00
Hanchen Ye 219bbf99a1 [BenchmarkGen] impl benchmark-gen tool command line entry (#12) 2020-11-09 22:39:34 -06:00
Hanchen Ye 9648b7dc0a [EmitHLSCpp] support scf if/for/yield emission (#14) 2020-11-05 21:05:44 -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 24cf815ee6 [Readme] add LLVM install instruction 2020-11-05 17:56:34 -06:00
Hanchen Ye 445fd5cb6a [Readme] update install instruction 2020-11-05 17:41:58 -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 e74dde111a [Readme] update install instruction 2020-11-03 10:06:04 -06:00
Hanchen Ye f8a9121469 Update to latest LLVM (035e12e6644) 2020-11-03 10:03:10 -06:00
Hanchen Ye c39676e400 small bug fixed 2020-11-02 18:31:31 -06:00
Hanchen Ye b2c9b5322c [HLSKernelToAffine] ConvOp lowering impl 2020-11-02 18:00:16 -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 a21319d95f [Readme] There are too many todos, they are moved to issues of the github repo 2020-10-27 19:19:27 -05:00
Hanchen Ye 52926ca233 [Readme] Update todos, in the next days the implementation around the benchmark dialect should have the highest priority 2020-10-27 18:47:31 -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 7b60aaae1b [README] update todos and quick start instruction 2020-10-10 23:42:42 -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 a2934a09a9 [ConvertToHLSCpp] support to recursively convert for loop body 2020-10-05 23:52:43 -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 3b98a97895 [SAMPLES] conv2d, maxpool2d, mnist samples emittable 2020-09-24 15:04:59 -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 9049f0cec8 [README] update todos 2020-09-23 14:15:21 -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