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

Can cuBLAS be supported? #8

Open
kimurayu45z opened this issue Apr 6, 2021 · 5 comments
Open

Can cuBLAS be supported? #8

kimurayu45z opened this issue Apr 6, 2021 · 5 comments

Comments

@kimurayu45z
Copy link

Can cuBLAS be supported in this library?
If it is able, it is very useful.

@kimurayu45z
Copy link
Author

https://github.com/rust-cuda/cuda-sys
I found this one.

I propose that:

  • Creating "cublas-src" repository
  • In the "cublas-src" repository, write the code of wrapper for "cublas-sys" with BLAS interface.
  • In the "blas-src" repository, make the crate enable to choose "cublas-src"

I can contribute. How about it?

@IvanUkhov
Copy link
Member

Hi, thank you for the note! Yes, absolutely. It is very much encouraged to keep on extending the list of sources as long as they conform to the standard BLAS/LAPACK interface. Please take a look at the architecture:

https://github.com/blas-lapack-rs/blas-lapack-rs.github.io/wiki#sources

Can you please clarify why cublas-sys is needed? Do you mean the set of functions is larger than what is in the standard?

@kimurayu45z
Copy link
Author

Sorry it was my misunderstanding. cublas-sys is not needed.
However, the interface of cuBLAS seems to be slightly different from it of BLAS, so I think we need the wrapper for using cuda with BLAS interface, instead of cublas-sys.

@IvanUkhov
Copy link
Member

It’s been a while. I think the main concern is that, if the APIs are drastically different, it would not fit into the current architecture, which is to have a small number of sys crates interfacing with different sources allowing one to build on top. Everything that is specific to a particular implementation should probably have its own sys create, as we discuss here.

@Pr0methean
Copy link

It might be more realistic to support NVBLAS, a library that Nvidia built on top of cuBLAS to be a drop-in replacement for BLAS. It also has heuristics about whether the GPU acceleration is worth the time it'd take to transfer the input to GPU memory and the output back.

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

No branches or pull requests

3 participants