| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[MLIR] Extend vector.scatter to accept tensor as base (#165548) This PR makes the following improvements to vector.scatter and its lowering pipeline: - In addition to memref, accept a ranked tensor as the base operand of vector.scatter, similar to vector.transfer_write. - Implement bufferization support for vector.scatter, so that tensor-based scatter ops can be fully lowered to memref-based forms. It's worth to complete the functionality of map_scatter decomposition. Full discussion can be found here: https://github.com/iree-org/iree/issues/21135 --------- Signed-off-by: Ryutaro Okada <1015ryu88@gmail.com> | 8 个月前 | |
[mlir] Move vector.{to_elements,from_elements} unrolling to VectorUnroll.cpp (#159118) This PR moves the patterns that unroll vector.to_elements and vector.from_elements into the file with other vector unrolling operations. This PR also adds these unrolling patterns into the populateVectorUnrollPatterns. And renames populateVectorToElementsLoweringPatterns populateVectorFromElementsLoweringPatterns to populateVectorToElementsUnrollPatterns populateVectorFromElementsUnrollPatterns. | 10 个月前 | |
[mlir][NFC] update mlir/Dialect create APIs (24/n) (#149931) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][Vector] Add support for scalable vectors to ScanToArithOps (#123117) Note, scalable reductions dims are left as a TODO. | 8 个月前 | |
[mlir] Use llvm accumulate wrappers. NFCI. (#162957) Use wrappers around std::accumulate to make the code more concise and less bug-prone: https://github.com/llvm/llvm-project/pull/162129. With std::accumulate, it's the initial value that determines the accumulator type. llvm::sum_of and llvm::product_of pick the right accumulator type based on the range element type. Found some funny bugs like a local accumulate helper that calculated a sum with initial value of 1 -- we didn't hit the bug because the code was actually dead... | 9 个月前 | |
[mlir] Switch uses of deprecated .create methods to free function. NFC. (#164635) See https://discourse.llvm.org/t/psa-opty-create-now-with-100-more-tab-complete/87339. | 9 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][vector] Avoid use of vector.splat in transforms (#150279) This is part of vector.splat deprecation Reference: https://discourse.llvm.org/t/rfc-mlir-vector-deprecate-then-remove-vector-splat/87143/5 Instead of creating vector::SplatOp, create vector::BroadcastOp | 1 年前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][vector] Standardize base Naming Across Vector Ops (NFC) (#137859) [mlir][vector] Standardize base Naming Across Vector Ops (NFC) This change standardizes the naming convention for the argument representing the value to read from or write to in Vector ops that interface with Tensors or MemRefs. Specifically, it ensures that all such ops use the name base (i.e., the base address or location to which offsets are applied). Updated operations: * vector.transfer_read, * vector.transfer_write. For reference, these ops already use base: * vector.load, vector.store, vector.scatter, vector.gather, vector.expandload, vector.compressstore, vector.maskedstore, vector.maskedload. This is a non-functional change (NFC) and does not alter the semantics of these operations. However, it does require users of the XFer ops to switch from op.getSource() to op.getBase(). To ease the transition, this PR temporarily adds a getSource() interface method for compatibility. This is intended for downstream use only and should not be relied on upstream. The method will be removed prior to the LLVM 21 release. Implements #131602 | 1 年前 | |
[mlir][vector][xegpu] Accept uniform values in getDistributedType (#163887) Uniform values should not be distributed during vector distribution. Example would be a reduction result where reduction happens across lanes. However, current getDistributedType does not accept a zero result affine map (i.e. no distributed dims) when describing the distributed dimensions. This result in null type being returned and crashing the vector distribution in some cases. An example case would be a scf.for op (about to be distributed) in which one of the for result is a uniform value and it does not have a user outside the warp op. This necessitates querying the getDistributedType to figure our the distributed type of this value. | 9 个月前 | |
[mlir] Use llvm accumulate wrappers. NFCI. (#162957) Use wrappers around std::accumulate to make the code more concise and less bug-prone: https://github.com/llvm/llvm-project/pull/162129. With std::accumulate, it's the initial value that determines the accumulator type. llvm::sum_of and llvm::product_of pick the right accumulator type based on the range element type. Found some funny bugs like a local accumulate helper that calculated a sum with initial value of 1 -- we didn't hit the bug because the code was actually dead... | 9 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[MLIR][Vector] Remove vector.splat (#162167) vector.splat has been deprecated (user: please use the very similar vector.broadcast instead) with the last PR landing about 6 weeks ago. The discourse discussion is at https://discourse.llvm.org/t/rfc-mlir-vector-deprecate-then-remove-vector-splat/87143/1 The last PR was #152230 This PR completely removes vector.splat. In addition to removing vector.splat from VectorOps.td, it - Updates the few remaining places where vector::SplatOp is created (now vector::BroadcastOp is created) - Removes temporary patterns where vector.splat is replaced by vector.broadcast The only place 'vector.splat' appears is now the files https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/test/corpus/op.txt and https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/dialect/vector.js --------- Signed-off-by: James Newling <james.newling@gmail.com> | 9 个月前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][Vector] Pattern to linearize broadcast (#163845) The PR https://github.com/llvm/llvm-project/pull/162167 removed a pattern to linearize vector.splat, without adding the equivalent pattern for vector.broadcast. This PR adds such a pattern, hopefully brining vector.broadcast up to full parity with vector.splat that has now been removed. --------- Signed-off-by: James Newling <james.newling@gmail.com> | 9 个月前 | |
[mlir][NFC] update mlir/Dialect create APIs (24/n) (#149931) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][vector] Simplify op rewrite pattern inheriting constructors. NFC. (#161670) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][NFC] update mlir/Dialect create APIs (32/n) (#150657) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[MLIR][Vector] Remove vector.splat (#162167) vector.splat has been deprecated (user: please use the very similar vector.broadcast instead) with the last PR landing about 6 weeks ago. The discourse discussion is at https://discourse.llvm.org/t/rfc-mlir-vector-deprecate-then-remove-vector-splat/87143/1 The last PR was #152230 This PR completely removes vector.splat. In addition to removing vector.splat from VectorOps.td, it - Updates the few remaining places where vector::SplatOp is created (now vector::BroadcastOp is created) - Removes temporary patterns where vector.splat is replaced by vector.broadcast The only place 'vector.splat' appears is now the files https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/test/corpus/op.txt and https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/dialect/vector.js --------- Signed-off-by: James Newling <james.newling@gmail.com> | 9 个月前 | |
[MLIR][Vector] Add unroll pattern for vector.shape_cast (#167738) This PR adds pattern for unrolling shape_cast given a targetShape. This PR is a follow up of #164010 which was very general and was using inserts and extracts on each element (which is also LowerVectorShapeCast.cpp is doing). After doing some more research on use cases, we (me and @Jianhui-Li ) realized that the previous version in #164010 is unnecessarily generic and doesn't fit our performance needs. Our use case requires that targetShape is contiguous in both source and result vector. This pattern only applies when contiguous slices can be extracted from the source vector and inserted into the result vector such that each slice remains in vector form with targetShape (and not decompose to scalars). In these cases, the unrolling proceeds as: vector.extract_strided_slice -> vector.shape_cast (on the slice unrolled) -> vector.insert_strided_slice | 8 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 8 个月前 |