MAGMA is for a single node. Multiple GPUs can be used. The memory requirement
is that the matrix can fit in VRAM but also that it can fit in the GPUs’ memory.
In particular, the requirement for a GPU is:
nb*(1 + n/(nb*ngpu)) * (ldda + 3*lddw*nb) + ldda*( magma_ceildiv( n, nb ) + 1),
where n is the matrix size, ldda is the leading dimension (n + possibly a little bit
to have better alignment), and nb is the block size, and ngpu is the number of GPUs.
So, you need about n^2/ngpu x 8 (for double precision) bytes memory per GPU.
So, you would not be able to solve this with MAGMA as your matrix is about
580 GB and the 4 GPUs have only 128 GB. MAGMA has linear solvers that can be used
for problems exceeding the GPU memories but we haven’t developed these for eigensolvers.
for distributed-memory systems and supports GPUs. You can scale and use a number of nodes so
that the matrix fits into the GPU memories. SLATE is under development now and has eigenvalue
computation for dsyevd, but SLATE doesn't yet compute vectors (coming up).