Open discussion for MAGMA library (Matrix Algebra on GPU and Multicore Architectures)
Post Reply
Posts: 1
Joined: Thu Dec 15, 2011 5:53 am


Post by chrisa » Thu Dec 15, 2011 6:28 am


I have a quick question about workspace sizes. I'm using DGEEV in a legacy code which computes workspace requirements based on LAPACK documentation, using the minimum requirements that LWORK>=max(1,3N) or when eigenvectors are required LWORK>=max(1,4N). When I re-link the code to MAGMA_DGEEV it returns an error code indicating that LWORK is insufficient. For example for a N=102 eigenvector problem LWORK is 408, but MAGMA requires at least 3366 ((NB+1)*N). Should users expect the MAGMA CPU interfaces to exactly match LAPACK? Is there a real need for such a huge increase in workspace requirements?


Posts: 918
Joined: Fri Jan 06, 2012 2:13 pm

Re: Workspace

Post by mgates3 » Fri Jan 06, 2012 4:24 pm

To achieve any reasonable performance, MAGMA requires using a blocked algorithm, which requires using a workspace based on the block size. In some cases, MAGMA uses a larger block size or otherwise needs more workspace than LAPACK.

Incidentally, the LAPACK performance will also greatly increase if the workspace is allocated based on the block size. Otherwise, it must use an inefficient non-blocked version. Unfortunately, minimum workspace gives minimum performance.

Also, if your problems are really around size N=100, you will not see any improvement with MAGMA over LAPACK. There simply is not enough work for the GPU to do to overcome the cost of copying the matrix to the GPU. The matrix size needs to be >1000 before seeing real benefits of the GPU. You can use the executables in the testing directory to try different matrix sizes for performance comparison.


Post Reply