Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Draft] Update sparse API for cuSPARSE/rocSPARSE support #1

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

Rbiessy
Copy link
Owner

@Rbiessy Rbiessy commented Feb 15, 2024

Update the sparse API to more easily support other backends. This is a work in progress, only the API related to the data types and the trsv operation is updated. Only the trsv buffer test is compiling currently. Some TODOs are remaining.

Main take away so far are:

  • The current API does not use templates for opaque pointer types. This makes supporting buffers difficult and adds a cost on the host side but makes the API closer to cuSPARSE.
  • The API will change a bit more:
    • Non-compute functions should be synchronous (not return an event and not take dependencies)
    • buffer_size function should take a reference to an unsigned value
    • functions to reset matrix and vector data are missing
    • It's not clear whether we will need some kind of view type. cuSPARSE does not have an equivalent but it may be needed for MKL backends?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant