Commit Graph

79 Commits

Author SHA1 Message Date
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
Hanchen Ye 1df6af6af6 update readme 2020-09-06 03:25:26 -05:00
Hanchen Ye cdb1c12c0b [EmitHLSCpp] update code structure to better handle shaped-type element-wise operations (e.g. standard unary/binary, tensor load/store); now all standard operations support shaped-types (if applicable) 2020-09-06 03:04:54 -05:00
Hanchen Ye bdcfa4efe1 [EmitHLSCpp] support tensor/vector function input/output; expand binary/unary operations emitter to handle tensor/vector input 2020-09-05 19:37:18 -05:00
Hanchen Ye d7556c8a0a [EmitHLSCpp] add legalization check for unranked/dynamic shaped tensor/memref; support DimOp and RankOp 2020-09-05 16:52:54 -05:00
Hanchen Ye 3e41770540 [EmitHLSCpp] support ranked tensor load and store 2020-09-05 13:25:31 -05:00
Hanchen Ye 5c95351a47 update readme TODO list 2020-09-05 00:05:34 -05:00
Hanchen Ye c4783f0205 [EmitHLSCpp] support tensor/vector ConstantOp 2020-09-04 23:49:21 -05:00
Hanchen Ye 45bf5ac5a7 [EmitHLSCpp] add many new op entries; support IndexCastOp and AllocaOp 2020-09-04 18:41:39 -05:00
Hanchen Ye 0bd2a2dbb0 [EmitHLSCpp] update ConstantOp handler: add future interface for tensor/vector value 2020-09-04 16:29:56 -05:00
Hanchen Ye f4b8baccd1 [EmitHLSCpp] support AffineParallelOp; enhance AffineYieldOp emitter to support reductions in AffineParallelOp 2020-09-03 22:12:30 -05:00
Hanchen Ye e6f539103d update readme and todo list; support select operation 2020-09-03 20:09:30 -05:00
Hanchen Ye 626f38e3e2 [EmitHLSCpp] support affine apply/max/min/load/store operations 2020-09-03 19:44:09 -05:00
Hanchen Ye 3a98c5efa5 [EmitHLSCpp] support AffineIfOp with explicit AffineYieldOp as terminator for returning results 2020-09-03 15:59:54 -05:00
Hanchen Ye c8500bcd85 [EmitHLSCpp] support AffineIfOp 2020-09-03 15:24:14 -05:00