问题
In LAPACK there is this function for diagonalization
SUBROUTINE DSPGVX( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU,
$ IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK,
$ IFAIL, INFO )
*
I am looking for its GPU implementation. I am trying to find whether this function has been already implemented in CUDA (or OpenCL), but have only found CULA, which is not open source.
Therefore and side CUBLAS exists, I wonder how could I know whether a BLAS or CUBLAS equivalent of this subroutine is available.
回答1:
BLAS doesn't include eigenvalue solvers, and CUBLAS is no different in that regard. The UTK developed Magma library includes a couple of GPU accelerated eigenvalue problem routines. I don't think xSPGV is implemented, but several other are. Depending on the characteristics of your matrix have, there might be something you could use.
回答2:
MAGMA includes source code. CUDA + CPU only (for now?)
"The MAGMA project aims to develop a dense linear algebra library similar to LAPACK but for heterogeneous/hybrid architectures, starting with current "Multicore+GPU" systems."
http://icl.cs.utk.edu/magma/index.html
http://web.eecs.utk.edu/~luszczek/pubs/parcocudaopencl.pdf (MAGMA for OpenCL is underway)
EDIT: I stumbled upon this library when I was searching for OCL stuff... http://viennacl.sourceforge.net/ I'm going to give it a closer look. (You can kinda tell it's good by the style of the site)
来源:https://stackoverflow.com/questions/9165299/blas-equivalent-of-a-lapack-function-for-gpus