Calling magma_dgeqrf_mgpu and magma_dpotrf_mgpu

Open discussion for MAGMA library (Matrix Algebra on GPU and Multicore Architectures)
Post Reply
dalal
Posts: 14
Joined: Thu Feb 20, 2014 4:30 am

Calling magma_dgeqrf_mgpu and magma_dpotrf_mgpu

Post by dalal » Wed Apr 09, 2014 3:12 pm

Hello,
Is it possible to call magma_dgeqrf_mgpu and magma_dpotrf_mgpu on the same matrix? Where nb for dpotrf_mgpu is different than nb for dgeqrf_mgpu, and hence the allocation of the matrix for the two routines on multiple gpus will be different.
Thanks

ichitaro
Posts: 9
Joined: Fri Jul 12, 2013 11:11 am

Re: Calling magma_dgeqrf_mgpu and magma_dpotrf_mgpu

Post by ichitaro » Thu Apr 10, 2014 2:48 pm

MAGMA multi-GPU interface assumes the matrix is distributed using the block size specified by the get_nb routine. If the matrix is distributed using a block size different from get_nb(), then the code will either give a wrong result or will crash. You may be able to this by modifying control/get_nb.cpp so that get_nb_dpotrf() and get_nb_dgetrf() will return the same value. Also, for dpotrf, the matrix is distributed in a 1D block row cyclic for computing the Cholesky factor in a lower triangle, while it uses 1D block column cyclic for an upper triangle. So, you will need to do it in an upper triangular form.

By the way, why are you calling dgetrf and dpotrf on the same matrix?

Please let me know if you need more clarification, or if this did not work.

Ichi

Post Reply