Skip to content

Tracking issue: Add Array API standard support #21

Open
@mtsokol

Description

@mtsokol

Hi @willow-ahrens @hameerabbasi,
This issue is meant to track progress of implementing Array API standard for finch-tensor.
I thought that we could try adding short notes to bullet-points, saying which Finch.jl functions should be called to implement given entry. I think we already had some ideas during one of our first calls.
Array API: https://data-apis.org/array-api/latest/index.html

A note to those who edit this list in the future: Convert bullets to issues, not subissues, as you complete them. Otherwise they get removed from the list.

Backlog

main namespace

linalg namespace

(I copied those from the benchmark suite. If something turns out to be unfeasible we can drop it.)

  • linalg.vecdot - finch.tensordot
    -[+] [x] linalg.vector_norm - finch.norm - https://github.com/finch-tensor/finch-tensor-python/pull/94[/+][-] [ ] linalg.vector_norm - finch.norm[/-]
  • linalg.trace - eager
  • linalg.tensordot - implemented in the main namespace. Just needs an alias
  • linalg.outer #89
  • linalg.cross - eager for now
  • linalg.matrix_transpose - lazy
  • linalg.matrix_power - eager (call matmul on sparse matrix until it gets too dense)
  • linalg.matrix_norm - for nuc or 2, call external library. For fro, inf, 1, 0, -1, -inf, call jl.norm.
  • xp.linalg.diagonal - finch.tensordot(finch.diagmask(), mtx) #110
  • xp.linalg.cholesky - call CHOLMOD or something
  • xp.linalg.det - call EIGEN or something
  • xp.linalg.eigh - call external library
  • xp.linalg.eigvalsh - call external library
  • xp.linalg.inv - call external library - scipy.sparse.linalg.inv
  • xp.linalg.matrix_rank - call external library
  • xp.linalg.pinv - call external library

Tensor methods and attributes

  • Tensor.to_device() - finch.moveto

miscellaneous

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions