spla icon indicating copy to clipboard operation
spla copied to clipboard

Library features

Open EgorOrachyov opened this issue 4 years ago • 0 comments

Features

List of features/operations/primitives to support in the library in the near/far future. Items written with priority, from higher to lower priority.

Core

Data primitives

  • [x] Matrix
  • [x] Vector
  • [x] Scalar

Functional primitives

  • [x] Function binary
  • [x] Function unary
  • [x] Function select

Storage formats

  • [x] CPU LIL
  • [x] CPU DOK
  • [x] CPU COO
  • [x] CPU CSR
  • [x] Dense
  • [x] CL CSR
  • [ ] CL COO

Operations

  • [x] Mask & complement mask
  • [x] Matrix read/write
  • [x] Vector read/write
  • [x] Scalar read/write
  • [ ] Matrix eadd
  • [x] Vector eadd
  • [ ] MxM
  • [x] VxM
  • [ ] Matrix assign
  • [x] Vector assign
  • [x] Matrix reduce (to vector)
  • [x] Matrix reduce (to scalar)
  • [x] Vector reduce (to scalar)
  • [ ] Extract sub matrix
  • [ ] Extract sub vector
  • [ ] Extract matrix row
  • [ ] Extract matrix col
  • [ ] Kron
  • [x] MxV
  • [ ] Matrix transpose
  • [ ] Matrix emult
  • [ ] Vector emult
  • [ ] Matrix select
  • [ ] Vector select

Python package

~~Dec 2021~~ ~~March 2022~~ April 2023

Foundation

  • [ ] Type wrapper
  • [ ] Auto type packing/unpacking
  • [x] Import C functions
  • [ ] Built-in types
  • [ ] Built-in functions

Data primitives

  • [ ] Matrix wrapper
  • [ ] Vector wrapper
  • [ ] Scalar wrapper

Operations

  • [ ] Empty matrix/vector/scalar
  • [ ] Generate matrix/vector/scalar
  • [ ] From values matrix/vector/scalar
  • [ ] Property query
  • [ ] To lists
  • [ ] Index subscription
  • [ ] To string

Performance

~~Feb 2022~~ March 2023

  • [ ] High-performance memory saving SpGEMM
  • [ ] Two-pass merge-path based element-wise addition
  • [x] Direction optimized mxv

Additional

~~Jan 2022~~ April 2023

  • [ ] Built-in extra values types
  • [ ] Built-in extra function type

EgorOrachyov avatar Nov 09 '21 20:11 EgorOrachyov