Skip to content

[Sparse] Support sparse matrix computation #1291

@liangfu

Description

@liangfu

Objective

  • To reduce unnecessary work load in computing convolution over large amount of zeros.
  • To reduce memory/cache footprint

TODOs

  • Step 0 : Summarize the design decision
  • Step 1 : Update the PR ([Sparse] add sparse tensor computation support #1289) to support the following features
  • Create tvm.contrib.sparse.CSRNDArray and tvm.contrib.sparse.placeholder for creating sparse tensor.
  • Provide conversion between numpy.ndarray and tvm.contrib.sparse.CSRNDArray
  • Implement topi.sparse.csrmv and topi.sparse.csrmm as SpMV and SpMM, and check correctness with dense tensor operations
  • Support some other sparse tensor computation (e.g. relu, batch_norm, flatten)
  • Demonstrate sparse approximation based on MobileNetV2, and compare performance with dense matrix computation baseline.
  • Write a blogpost introducing this feature.

Proposed API Changes

  • There will no change to original Tensor object.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions