[all-commits] [llvm/llvm-project] 0b1764: [mlir][sparse] sparse tensor storage implementation

Aart Bik via All-commits all-commits at lists.llvm.org
Wed Feb 10 11:57:50 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0b1764a3d79a33e155e19c6a698992ed1949ca33
      https://github.com/llvm/llvm-project/commit/0b1764a3d79a33e155e19c6a698992ed1949ca33
  Author: Aart Bik <ajcbik at google.com>
  Date:   2021-02-10 (Wed, 10 Feb 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/IR/CMakeLists.txt
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
    A mlir/include/mlir/Dialect/Linalg/IR/LinalgSparseOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    A mlir/integration_test/Sparse/CPU/sparse_sum.mlir
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
    M mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/Linalg/Transforms/SparseLowering.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Sparsification.cpp
    M mlir/lib/ExecutionEngine/SparseUtils.cpp
    M mlir/test/Dialect/Linalg/sparse_1d.mlir
    M mlir/test/Dialect/Linalg/sparse_2d.mlir
    M mlir/test/Dialect/Linalg/sparse_3d.mlir
    A mlir/test/Dialect/Linalg/sparse_lower.mlir
    A mlir/test/Dialect/Linalg/sparse_lower_calls.mlir
    M mlir/test/Dialect/Linalg/sparse_nd.mlir
    A mlir/test/Dialect/Linalg/sparse_roundtrip.mlir
    M mlir/test/lib/Transforms/TestSparsification.cpp

  Log Message:
  -----------
  [mlir][sparse] sparse tensor storage implementation

This revision connects the generated sparse code with an actual
sparse storage scheme, which can be initialized from a test file.
Lacking a first-class citizen SparseTensor type (with buffer),
the storage is hidden behind an opaque pointer with some "glue"
to bring the pointer back to tensor land. Rather than generating
sparse setup code for each different annotated tensor (viz. the
"pack" methods in TACO), a single "one-size-fits-all" implementation
has been added to the runtime support library.  Many details and
abstractions need to be refined in the future, but this revision
allows full end-to-end integration testing and performance
benchmarking (with on one end, an annotated Lingalg
op and, on the other end, a JIT/AOT executable).

Reviewed By: nicolasvasilache, bixia

Differential Revision: https://reviews.llvm.org/D95847




More information about the All-commits mailing list