[all-commits] [llvm/llvm-project] a10d67: [mlir][sparse] Enable explicit and implicit value ...

Yinying Li via All-commits all-commits at lists.llvm.org
Wed Apr 24 16:20:46 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a10d67f9fb559d0c35a12b2d26974636bbf642c0
      https://github.com/llvm/llvm-project/commit/a10d67f9fb559d0c35a12b2d26974636bbf642c0
  Author: Yinying Li <yinyingli at google.com>
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
    M mlir/include/mlir-c/Dialect/SparseTensor.h
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorAttrDefs.td
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h
    M mlir/lib/Bindings/Python/DialectSparseTensor.cpp
    M mlir/lib/CAPI/Dialect/SparseTensor.cpp
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
    M mlir/test/CAPI/sparse_tensor.c
    M mlir/test/Dialect/SparseTensor/roundtrip_encoding.mlir
    M mlir/test/python/dialects/sparse_tensor/dialect.py

  Log Message:
  -----------
  [mlir][sparse] Enable explicit and implicit value in sparse encoding (#88975)

1. Explicit value means the non-zero value in a sparse tensor. If
explicitVal is set, then all the non-zero values in the tensor have the
same explicit value. The default value Attribute() indicates that it is
not set.

2. Implicit value means the "zero" value in a sparse tensor. If
implicitVal is set, then the "zero" value in the tensor is equal to the
implicit value. For now, we only support `0` as the implicit value but
it could be extended in the future. The default value Attribute()
indicates that the implicit value is `0` (same type as the tensor
element type).

Example:

```
#CSR = #sparse_tensor.encoding<{
  map = (d0, d1) -> (d0 : dense, d1 : compressed),
  posWidth = 64,
  crdWidth = 64,
  explicitVal = 1 : i64,
  implicitVal = 0 : i64
}>
```

Note: this PR tests that implicitVal could be set to other values as
well. The following PR will add verifier and reject any value that's not
zero for implicitVal.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list