| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[NFC][mlir][mesh,shard] Fixing misnomers in mesh dialect, renaming 'mesh' dialect to 'shard' (#150177) Dialect to 'shard' (discourse 87053) - dialect name mesh -> shard - (device) mesh -> (device) grid - spmdize -> partition A lot of diffs, but simple renames only. @tkarna @yaochengji | 1 年前 | |
[MLIR] Fix MSVC build: long != int64_t on some platforms (NFC) | 11 个月前 | |
[mlir] Remove unused includes (NFC) (#147206) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[MLIR][Linalg] Rename convolution pass (#154400) Rename the pass LinalgNamedOpConversionPass to SimplifyDepthwiseConvPass to avoid conflating it with the new morphisms we are creating between the norms. | 11 个月前 | |
[mlir] Remove unused includes (NFC) (#147206) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[mlir][linalg] Propagate filter tensor encoding in im2col (#160099) In the im2col decomposition, propagate the filter tensor encoding (if specified) through the tensor.collapse_shape op, so that it can be used by the consuming linalg.generic matmul op. Signed-off-by: Fabrizio Indirli <Fabrizio.Indirli@arm.com> | 10 个月前 | |
[MLIR] Apply clang-tidy fixes for bugprone-argument-comment in ConvertToDestinationStyle.cpp (NFC) | 11 个月前 | |
[mlir][linalg] Use ub.poison in data layout propagation if a packed operand requires padding. (#159467) In the past, it was hard to set padding values because we did not have ub.poison. It is not always correct if we set zeros as padding values. Now we can use ub.poison in this case. The revision adds the support for setting padding value using ub.poison when padding is required in the propagation. Otherwise, it creates an invalid pack op. Additionally the revision adds a control option for allowing padding in the pattern which is false by default. To correctly do this, a new requirePaddingValueStrict method is added which assumes dynamic dims would mean padding is required. The revision also removes trailing white space in the lit test file. Co-authored-by : Nirvedh Meshram <nirvedh@gmail.com> --------- Signed-off-by: hanhanW <hanhan0912@gmail.com> Signed-off-by: Nirvedh Meshram <nirvedh@gmail.com> Co-authored-by: Nirvedh Meshram <nirvedh@gmail.com> | 10 个月前 | |
[MLIR] Apply clang-tidy fixes for readability-container-size-empty in DecomposeGenericByUnfoldingPermutation.cpp (NFC) | 11 个月前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir] Update builders to use new form. (#154132) Mechanically applied using clang-tidy. | 11 个月前 | |
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in ElementwiseOpFusion.cpp (NFC) | 10 个月前 | |
[mlir] Add helper to check elementwise-mappable ops with tensors and scalars (#154872) This patch introduces a more general helper for identifying elementwise-mappable operations. The existing utility, isElementwiseMappableOpOnRankedTensors, only accepted operations when all operands were ranked tensors. In practice, many elementwise operations in MLIR allow mixing tensor operands with scalars. The new helper relaxes the restriction by accepting operands that are either ranked tensors or “scalar-like” types. | 11 个月前 | |
[mlir] Remove unused includes (NFC) (#147206) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[mlir] Use llvm::make_pointer_range (NFC) (#167833) llvm::map_range(..., [](OpOperand &o) { return &o; }) is equivalent to llvm::make_pointer_range, and the latter is shorter. | 8 个月前 | |
[MLIR][Linalg] Pattern to fold AddOp to accumulation via contraction op's dest (#110514) Replaces a linalg.add with one operand the single user of a contraction, which has a zero-filled, "identity-mapped" destination and is dominated by the other operand, by the contraction with other as its dest. Benefits include elision of an elementwise op, namely the linalg.add, and removing a tensor.empty as a destination which is likely to require an allocation upon bufferization. | 1 年前 | |
[mlir] Remove unused includes (NFC) (#147206) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][linalg] Genericize MapOp (#162742) This PR modifies the definition of linalg::MapOp so that it has the same structure of linalg::GenericOp and all other linalg ops. Mainly, it adds an out bbarg for the body of the op. Although the out arg is never used in the body, there doesn't seem to be much benefit in specializing the op to exclude it. In fact it only makes things more complicated because it doesn't align with the GenericOp structure. For example, linalg-generalize-named-ops avoided converting linalg.map purely because it didn't have the structure to do so. Moreover, although some fusion patterns are applied explicitly to GenericOp, we can change them to be applied to the base LinalgOp which will enable fusion for any fusion-compatible linalg op, but that requires the op having a generic structure. So these changes will enable us to use existing generic transformation patterns on MapOp that weren't possible before. They can either be applied to MapOp directly or applied after converting to GenericOp. | 9 个月前 | |
[mlir] Use llvm::copy (NFC) (#168213) Identified with llvm-use-ranges. | 8 个月前 | |
[mlir][vector] Use source as the source argument name (#158258) This patch updates the following ops to use source (instead of vector) as the name for their source argument: * vector.extract * vector.scalable.extract * vector.extract_strided_slice This change ensures naming consistency with the "builders" for these Ops that already use the name source rather than vector. It also addresses part of: * https://github.com/llvm/llvm-project/issues/131602 Specifically, it ensures that we use source and dest for read and write operations, respectively (as opposed to vector and dest). | 10 个月前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir] Simplify unreachable type switch cases. NFC. (#162032) Use DefaultUnreachable from https://github.com/llvm/llvm-project/pull/161970. | 10 个月前 | |
[mlir][linalg] Morphism across linalg -- named, category and generic ops. (#148424) Adds linalg-morph-ops pass to convert an op from one representation to another: named-op <--> category_op (elementwise, contraction, ..) <--> generic e.g. mlir %exp = linalg.exp ins(%A : tensor<16x8xf32>) outs(%B : tensor<16x8xf32>) -> tensor<16x8xf32> After mlir-opt -linalg-morph-ops=named-to-category .. ``mlir %0 = linalg.elementwise kind=#linalg.elementwise_kind<exp> ins(%arg0 : tensor<16x8xf32> .. Note: this is generalization of --linalg-generalize-named-ops is the path named-op --> generic-op --linalg-specialize-generic-ops is the path named-op <-- generic-op` email: quic_mabsar@quicinc.com | 1 年前 | |
[mlir] Simplify unreachable type switch cases. NFC. (#162032) Use DefaultUnreachable from https://github.com/llvm/llvm-project/pull/161970. | 10 个月前 | |
[MLIR] Apply clang-tidy fixes for performance-unnecessary-copy-initialization in PackAndUnpackPatterns.cpp (NFC) | 11 个月前 | |
[mlir][linalg] Do not set insertion point inside padding function (#165420) Remove insertion point in rewriteAsPaddedOp. There is no gurantee that the sizes provided by the user are before the operation to pad. It's better to let the user handle where to insert the newly created operations, as long as they are after the origin operation to pad. | 9 个月前 | |
[mlir][NFC] update mlir/Dialect create APIs (32/n) (#150657) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir] Simplify Default cases in type switches. NFC. (#165767) Use default values instead of lambdas when possible. std::nullopt and nullptr can be used now because of https://github.com/llvm/llvm-project/pull/165724. | 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] 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... | 10 个月前 | |
[mlir] Simplify Default cases in type switches. NFC. (#165767) Use default values instead of lambdas when possible. std::nullopt and nullptr can be used now because of https://github.com/llvm/llvm-project/pull/165724. | 9 个月前 | |
[Linalg] Add *Conv1D* matchers (#168050) -- This commit is the second in the series of adding matchers for linalg.*conv*/*pool*. Refer: https://github.com/llvm/llvm-project/pull/163724 -- In this commit all variants of Conv1D convolution ops have been added. -- For sake of completion for a specific infra required for those ops which don't require dilations/strides information during their creation, this commit also includes a basic Conv2D and Conv3D op as part of the lit test. Signed-off-by: Abhishek Varma <abhvarma@amd.com> | 8 个月前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
| 1 年前 | ||
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][NFC] update mlir/Dialect create APIs (17/n) (#149924) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir] Remove unused local variables (NFC) (#167107) Identified with bugprone-unused-local-non-trivial-variable. | 9 个月前 | |
[mlir][linalg] Update vectorization of linalg.pack (#163539) This patch changes vectorizeAsTensorPackOp to require users to specify **all** write-side vector sizes for linalg.pack (not just the outer dimensions). This makes linalg.pack vectorization consistent with linalg.unpack (see https://github.com/llvm/llvm-project/pull/149293 for a similar change). Conceptually, linalg.pack consists of these high-level steps: * **Read** from the source tensor using vector.transfer_read. * **Re-associate** dimensions of the read value, as specified by the op (via vector.shape_cast) * **Transpose** the re-associated value according to the permutation in the linalg.pack op (via vector.transpose). * **Write** the result into the destination tensor via vector.transfer_write. Previously, the vector sizes provided by the user were interpreted as write-vector-sizes for PackOp **_outer_** dims (i.e. the final step above). These were used to: * Infer read-vector-sizes using the inner_tiles attribute of PackOp. * Deduce vector sizes for the transpose and shape cast operations. * Ultimately determine the vector shape for the read. However, this logic breaks when one or more tile sizes are dynamic (*). In such cases, vectorizePackOpPrecondition would currently fail (see @pack_with_dynamic_dims_and_dynamic_inner_tile added in this PR - without this change it will crash). This patch updates the contract: users now directly specify _all_ the "write-vector-sizes", which inherently encode all inner tile sizes - including dynamic ones. It becomes the user's responsibility to provide valid sizes. In practice, since linalg.pack is typically constructed, tiled, and vectorized by the same transformation pipeline, the necessary "write-vector-sizes" should be recoverable. Notes for reviewers: * See test updates for user-facing impact. * Review vectorizeAsTensorPackOp as a new implementation rather than a diff. * Comments and variable names were updated to align with vectorizeAsTensorUnPackOp. (*) As a concrete example, "scalable" tile sizes are represent as dynamic values. Note, support for "scalable" vectorisation will be added in a separate PR. | 9 个月前 | |
[mlir][NFC] update mlir/Dialect create APIs (32/n) (#150657) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir] Update builders to use new form. (#154132) Mechanically applied using clang-tidy. | 11 个月前 | |
[mlir][vector] Missing indices on vectorization of 1-d reduction to 1-ranked memref (#166959) Vectorization of a 1-d reduction where the output variable is a 1-ranked memref can generate an invalid vector.transfer_write with no indices for the memref, e.g.: vector.transfer_write"(%vec, %buff) <{...}> : (vector<f32>, memref<1xf32>) -> () This patch solves the problem by providing the expected amount of indices (i.e. matching the rank of the memref). | 8 个月前 | |
[MLIR][Linalg] Fix winograd op lowering for types smaller than f32 (#158500) The winograd transform constant array is always emitted as f32, but previously the creation would pass through the original type. If this type was smaller (like f16), you would get an assertion failure during attribute creation. This fixes this by ensuring that the types match and adding a test for this case. | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 11 个月前 | ||
| 10 个月前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 10 个月前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 11 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 8 个月前 | ||
| 10 个月前 |