Unverified Commit d816c221 authored by Aart Bik's avatar Aart Bik Committed by GitHub
Browse files

[mlir][sparse] complete migration to dim2lvl/lvl2dim in library (#69268)

This last revision completed the migration to non-permutation support in
the SparseTensor library. All mappings are now controlled by the MapRef
(forward and backward). Unused code has been removed, which simplifies
subsequent testing of block sparsity.
parent 760e7d00
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -201,10 +201,11 @@ public:
                   const uint64_t *lvl2dim) {
    const uint64_t dimRank = getRank();
    MapRef map(dimRank, lvlRank, dim2lvl, lvl2dim);
    auto *coo = readCOO<V>(map, lvlSizes);
    auto *lvlCOO = readCOO<V>(map, lvlSizes);
    auto *tensor = SparseTensorStorage<P, I, V>::newFromCOO(
        dimRank, getDimSizes(), lvlRank, lvlTypes, dim2lvl, lvl2dim, *coo);
    delete coo;
        dimRank, getDimSizes(), lvlRank, lvlSizes, lvlTypes, dim2lvl, lvl2dim,
        *lvlCOO);
    delete lvlCOO;
    return tensor;
  }

+80 −303

File changed.

Preview size limit exceeded, changes collapsed.

+3 −2
Original line number Diff line number Diff line
@@ -129,7 +129,8 @@ extern "C" {
      assert(ptr && "Received nullptr for SparseTensorCOO object");            \
      auto &coo = *static_cast<SparseTensorCOO<V> *>(ptr);                     \
      return SparseTensorStorage<P, C, V>::newFromCOO(                         \
          dimRank, dimSizes, lvlRank, lvlTypes, dim2lvl, lvl2dim, coo);        \
          dimRank, dimSizes, lvlRank, lvlSizes, lvlTypes, dim2lvl, lvl2dim,    \
          coo);                                                                \
    }                                                                          \
    case Action::kFromReader: {                                                \
      assert(ptr && "Received nullptr for SparseTensorReader object");         \
@@ -140,7 +141,7 @@ extern "C" {
    case Action::kToCOO: {                                                     \
      assert(ptr && "Received nullptr for SparseTensorStorage object");        \
      auto &tensor = *static_cast<SparseTensorStorage<P, C, V> *>(ptr);        \
      return tensor.toCOO(lvlRank, lvlSizes, dimRank, dim2lvl, lvl2dim);       \
      return tensor.toCOO();                                                   \
    }                                                                          \
    case Action::kPack: {                                                      \
      assert(ptr && "Received nullptr for SparseTensorStorage object");        \