Skip to content
  1. May 05, 2021
  2. May 04, 2021
  3. May 03, 2021
  4. May 02, 2021
  5. May 01, 2021
  6. Apr 30, 2021
    • Ahmed Taei's avatar
      Add patterns to lower vector.multi_reduction into a sequence of vector.reduction · 499e89fc
      Ahmed Taei authored
      Three patterns are added to convert into vector.multi_reduction into a
      sequence of vector.reduction as the following:
      
      - Transpose the inputs so inner most dimensions are always reduction.
      - Reduce rank of vector.multi_reduction into 2d with inner most
      reduction dim (get the 2d canical form)
      - 2D canonical form is converted into a sequence of vector.reduction.
      
      There are two things we might worth in a follow up diff:
      
      - An scf.for (maybe optionally) around vector.reduction instead of unrolling it.
      - Breakdown the vector.reduction into a sequence of vector.reduction
      (e.g tree-based reduction) instead of relying on how downstream dialects
      handle it.
        Note: this will requires passing target-vector-length
      
      Differential Revision: https://reviews.llvm.org/D101570
      499e89fc
    • Aart Bik's avatar
      [mlir][sparse] migrate sparse operations into new sparse tensor dialect · 319072f4
      Aart Bik authored
      This is the very first step toward removing the glue and clutter from linalg and
      replace it with proper sparse tensor types. This revision migrates the LinalgSparseOps
      into SparseTensorOps of a sparse tensor dialect. This also provides a new home for
      sparse tensor related transformation.
      
      NOTE: the actual replacement with sparse tensor types (and removal of linalg glue/clutter)
      will follow but I am trying to keep the amount of changes per revision manageable.
      
      Differential Revision: https://reviews.llvm.org/D101573
      319072f4
  7. Apr 29, 2021
    • Mehdi Amini's avatar
      Revert "[mlir][sparse] migrate sparse operations into new sparse tensor dialect" · 086e0f05
      Mehdi Amini authored
      This reverts commit a6d92a97.
      
      The build with -DBUILD_SHARED_LIBS=ON is broken.
      086e0f05
    • Aart Bik's avatar
      [mlir][sparse] migrate sparse operations into new sparse tensor dialect · a6d92a97
      Aart Bik authored
      This is the very first step toward removing the glue and clutter from linalg and
      replace it with proper sparse tensor types. This revision migrates the LinalgSparseOps
      into SparseTensorOps of a sparse tensor dialect. This also provides a new home for
      sparse tensor related transformation.
      
      NOTE: the actual replacement with sparse tensor types (and removal of linalg glue/clutter)
      will follow but I am trying to keep the amount of changes per revision manageable.
      
      Reviewed By: bixia
      
      Differential Revision: https://reviews.llvm.org/D101488
      a6d92a97
    • Alex Zinenko's avatar
      [mlir] support max/min lower/upper bounds in affine.parallel · 6841e6af
      Alex Zinenko authored
      This enables to express more complex parallel loops in the affine framework,
      for example, in cases of tiling by sizes not dividing loop trip counts perfectly
      or inner wavefront parallelism, among others. One can't use affine.max/min
      and supply values to the nested loop bounds since the results of such
      affine.max/min operations aren't valid symbols. Making them valid symbols
      isn't an option since they would introduce selection trees into memref
      subscript arithmetic as an unintended and undesired consequence. Also
      add support for converting such loops to SCF. Drop some API that isn't used in
      the core repo from AffineParallelOp since its semantics becomes ambiguous in
      presence of max/min bounds. Loop normalization is currently unavailable for
      such loops.
      
      Depends On D101171
      
      Reviewed By: bondhugula
      
      Differential Revision: https://reviews.llvm.org/D101172
      6841e6af
    • Alex Zinenko's avatar
      [mlir] Affine: parallelize affine loops with reductions · 545fa378
      Alex Zinenko authored
      Introduce a basic support for parallelizing affine loops with reductions
      expressed using iteration arguments. Affine parallelism detector now has a flag
      to assume such reductions are parallel. The transformation handles a subset of
      parallel reductions that are can be expressed using affine.parallel:
      integer/float addition and multiplication. This requires to detect the
      reduction operation since affine.parallel only supports a fixed set of
      reduction operators.
      
      Reviewed By: chelini, kumasento, bondhugula
      
      Differential Revision: https://reviews.llvm.org/D101171
      545fa378
    • Lorenzo Chelini's avatar
      [mlir] Fix top-level comments (NFC) · de94b185
      Lorenzo Chelini authored
      de94b185
    • Tres Popp's avatar
      b863af5a
    • Tres Popp's avatar
      [mlir] Support complex numbers in Linalg promotion · 42e5f422
      Tres Popp authored
      FillOp allows complex ops, and filling a properly sized buffer with
      a default zero complex number is implemented.
      
      Differential Revision: https://reviews.llvm.org/D99939
      42e5f422
    • Nicolas Vasilache's avatar
      [mlir][Linalg] Generalize linalg vectorization · b6113db9
      Nicolas Vasilache authored
      This revision adds support for vectorizing more general linalg operations with projected permutation maps.
      
      This is achieved by eagerly broadcasting the intermediate vector to the common size
      of the iteration domain of the linalg op. This allows a much more natural expression of
      generalized vectorization but may introduce additional computations until all the
      proper canonicalizations are implemented.
      
      This generalization modifies the vector.transfer_read/write permutation logic and
      exposes the fact that the logic employed in vector.contract was too ad-hoc.
      
      As a consequence, changes occur in the permutation / transposition logic for contraction. In turn this prompts supporting more cases in the lowering of contract
      to matrix intrinsics, which is required to make the corresponding tests pass.
      
      Differential revision: https://reviews.llvm.org/D101165
      b6113db9
  8. Apr 28, 2021
Loading