I am evaluating to use MAGMA to port a specific kernel of a large FORTRAN application. This application (http://bit.ly/PbNZ9) already mixes CUDA explicit kernels, an ad-hoc GPU memory management and CUBLAS calls.
Fortunately, in the last version of MAGMA the routines ZHEGVD and DSYGVD have been introduced and after a "re-arrangement" of the diagonalization algorithm I am potentially able to plug MAGMA quite straightforward. However I have two questions:
- the routine magma_zhegvd (under "src/zhegvd.cpp") manages by itself all the memory transfers. Is there any plan to provide a function prototype where A, B, W, WORK, RWORK and IWORK are provided as pointer on memory already allocated on the device? (I would like to manage manually the data transfer to the device because some data structure may be already on the device)
- I do not find any magmaf_zhegvd in "control/magma_zfortran.f90" or magmaf_dsygvd in "control/magma_dfortran.f90" Is it correct? How I can easily call these MAGMA routines from a FORTRAN90 code?
Thank you very much in advance for any useful information, suggestion, hint or help.