Commit Graph

143 Commits

Author SHA1 Message Date
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
Hanchen Ye e1b878e845 [HLSCppDialect] refine parameter operations definition; create seperate attributes tablegen 2020-09-20 02:05:58 -05:00
Hanchen Ye f472053e58 [README] update todos 2020-09-19 18:37:46 -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 c72afd4e8a update to the newest LLVM version 2020-09-19 01:58:58 -05:00
Hanchen Ye aa14c60a91 [README] add detailed build & test instruction; update TODOs list 2020-09-15 00:57:44 -05:00
Hanchen Ye 6ca221dfae [EmitHLSCpp] support to emit pragma operations 2020-09-15 00:29:35 -05:00
Hanchen Ye 5f2751c217 [EmitHLSCpp] add affine testcases; fix a small bug in getName method 2020-09-14 23:29:03 -05:00
Hanchen Ye cf995ba92b [EmitHLSCpp] update affine expr emitter for prettier sub operation; add affine_expr testcase 2020-09-14 22:11:21 -05:00
Hanchen Ye 38d1c79503 change lit report style 2020-09-14 19:56:06 -05:00
Hanchen Ye 44ccefa462 [ConvertToHLSCpp] handle a corner case when returning constant scalar/tensor/vector 2020-09-14 01:41:39 -05:00
Hanchen Ye df973a40be [EmitHLSCpp] support to emit hlscpp::AssignOp; add many new testcases except affine operations 2020-09-14 01:25:07 -05:00
Hanchen Ye 42693da685 update readme 2020-09-13 23:45:52 -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 417b10f68d [EmitHLSCpp] shaped-type related operation emitters are further optimized; AffineYieldOp supports shaped-type; update readme and TODOs 2020-09-06 16:47:40 -05:00