Hi Abdul,
Neither me, nor the rest of the Kwant team have spent much time
looking into the issue. The breakdown of how GPU can be used to speed
up the calculation is as follows: solving a scattering problem has a
step of computing modes in the leads, and solving the sparse linear
system. The asymptotic scaling of both parts is the same, and the
prefactors seem to be comparable as well, at least for 2D problems
with few orbitals and low degree.
The repetitive modes calculation can often be avoided by
precalculating the modes and storing the result if the energy or the
system parameters don't change. This calculation spends most time
either in solving an eigenproblem or a more complex generalized Schur
decomposition. As far as I can tell, the former is available in MAGMA,
the latter hasn't been ported to GPUs yet.
Finally speeding up the solution of the sparse problem also seems
possible on GPU's, but it's a matter of ongoing research, quick
googling yielded this for example:
https://www.oerc.ox.ac.uk/sites/default/files/uploads/sparse_direct_gpu.pdf
A person with sufficient time and technical knowledge could try and
replace the linear algebra currently used in Kwant with the
GPU-accelerated ones, and this likely would result in a speedup.
Hope this helps,
Anton
On Sun, Jan 24, 2016 at 8:35 PM, Abdulkareem Afandi
Hello,
My name is Abdul, a research student, and I’ve been using kwant to simulate transmission in quantum devices. I’ve been thinking about speeding up the process by using GPU matrix operations under PyCUDA or something similar, and was wondering if this would speed things at all? Many systems that I’m studying take hours to calculate transmission, and It would be great if this can be reduced.
I appreciate any help, especially with where sparse matrix operations take place in the source code. Kwant is a very useful piece of software, and making it faster would make my life much easier :)
Best regards, Abdul Afandi