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

Feature request : Support multiple rhs in SGS efficiently #488

Closed
srajama1 opened this issue Oct 31, 2019 · 8 comments
Closed

Feature request : Support multiple rhs in SGS efficiently #488

srajama1 opened this issue Oct 31, 2019 · 8 comments

Comments

@srajama1
Copy link
Contributor

srajama1 commented Oct 31, 2019

Feature request : Support multiple rhs in MT-SGS efficiently. Currently, it is implemented but it could be better if we pass the multivector to Kokkos Kernels, which accepts and iterates on all the vectors. Based on comment by @mhoemmen serial SGS also does the same.

Customer: Exawind

@brian-kelley : One more thing when you are at SGS.

@iyamaza found this was not implemented. @lucbv

@mhoemmen
Copy link
Contributor

It's implemented, but it's slow (it just loops over columns on the outside). I'm pretty sure Ichi was talking about the not-multithreaded case.

@brian-kelley
Copy link
Contributor

@mhoemmen Are you talking about inside Ifpack2 Relaxation? It looks like Relaxation::MTGaussSeidel() does a loop over vectors. There would be a significant win there from moving that loop all the way inside the KK SGS implementation, from fewer kernel launches and better locality with the matrix accesses.

@lucbv
Copy link
Contributor

lucbv commented Oct 31, 2019

@brian-kelley You would probably gain time on a GPU by not having to load the matrix in memory multiple times.

@mhoemmen
Copy link
Contributor

@iyamazaki Are we talking about MTGaussSeidel or the non-MT Gauss-Seidel?

@iyamazaki
Copy link
Contributor

Hi, @mhoemmen. I was looking at MTGaussSeidel, which seems to loop over the vectors in Ifpack2? But, I did not look at what the KokkosKernel does.

@srajama1
Copy link
Contributor Author

srajama1 commented Oct 31, 2019

I checked the MT-SGS case and I should have been clear in the original posting. It is implemented but it not in an optimal way. I will edit the description above.

@mhoemmen
Copy link
Contributor

Non-MT Gauss-Seidel has the same issue but it's separate code.

@srajama1 srajama1 changed the title Feature request : Support multiple rhs in SGS Feature request : Support multiple rhs in SGS efficientlt Oct 31, 2019
@srajama1 srajama1 changed the title Feature request : Support multiple rhs in SGS efficientlt Feature request : Support multiple rhs in SGS efficiently Oct 31, 2019
@brian-kelley
Copy link
Contributor

Within KokkosKernels MT-SGS multiple RHS doesn't exist at all. Within Ifpack2 the inefficient implementation (outermost loop over vectors) exists.

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

No branches or pull requests

6 participants