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

[issue or Feature Request] extract the strictly lower part, diagonal, invert the diagonal, add-subtract matrices, deal with fill-inn? #366

Open
klausbu opened this issue Dec 9, 2023 · 1 comment
Assignees

Comments

@klausbu
Copy link

klausbu commented Dec 9, 2023

Does rocsparse support the following operations: I can't find them, I hope I have been looking in the wrong spot but ChatGPT couldn't find these operations either.

Given a sparse, SPD matrix A stored on the GPU in CSR format using rocThrust vectors, there will be no host-device transfers, the application runs on the GPU once the initial data has been transferred to the GPU. This is part of the development of an AINV preconditioner.

1: compute the matrix K1 = I-L*D⁻1 where I is the identity matrix, L the stricktly lower part of A, and D⁻1 the invers diagonal of A

2: compute the matrix K2 = I-D⁻1*L^T where I is the identity matrix, L^T the transpose of the stricktly lower part of A, and D⁻1 the invers diagonal of A

3: compute the matrix P = K1*K2 >> use rocsparse_dcsrmm(); this is possible how about 1: and 2: extract the strictly lower part, diagonal, invert the extracted diagonal, add-and-subtract matrices, deal with fill-inn (support thresholds)?

I am using ROCm 5.7.1 on (RHEL) Almalinux 9.3 and I tested rocALUTION for the application which uses all these operations but due to its host-device approach it's not suitable for the application which is about on-device computation over thousands of timesteps.

@ntrost57
Copy link
Contributor

We will look into adding subroutines to extract (strictly) lower and upper triangular matrices in one of our future releases.
It is however not clear to me, why rocalution does not work for you. You can exclusively work on the device when using rocalution. Data does not necessarily need to be copied e.g. from host.

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

No branches or pull requests

2 participants