I am trying to get eigenvalues and eigenvectors of a real symmetric matrix A.
It seems that torch.symeig() is faster than torch.svd().
With torch.svd(), program worked well.
With torch.symeig(), it shows below message a lot.
CUBLAS error: memory mapping error (11) in magma_ssytrd2_gpu at /data/users/soumith/miniconda2/conda-bld/magma-cuda80-2.1.0_1476154064021/work/magma-2.1.0/src/ssytrd2_gpu.cpp:280
CUBLAS error: memory mapping error (11) in magma_ssytrd2_gpu at /data/users/soumith/miniconda2/conda-bld/magma-cuda80-2.1.0_1476154064021/work/magma-2.1.0/src/ssytrd2_gpu.cpp:285
It seems that both messages point out the line with
magma_sgetmatrix( kk, kk, dA(0, 0), ldda, A(0, 0), lda, queue );
magma_ssetmatrix( kk, kk, A(0, 0), lda, dA(0, 0), ldda, queue );
I just updated with the command
conda install pytorch torchvision cuda80 -c soumith
which seems to install from binary.
Now version is torch 0.1.10+ac9245a
On the way to solve other error, that problem seems to be solved.
I don’t see that error message anymore.
Because I changed a lot, I cannot reproduce that error, unfortunately.
The modification which seems the most relevant to this error is following.
I used to run torch.svd(A) and torch.symeig(A) with just symmetric matrix A
In modified code, I use torch.svd(A + cI) and torch.symeig(A + cI).
I added some diagonal matrix to have some numerical stability.
I am guessing whether if a matrix has an eigenvalue close to zero then this cause some problem in torch.symeig.
If I have the same problem, I will continue this post with reproduced code.