Using TDVP on GPUs

Hi all,
I was wondering if there are some tests on the scalability and performances of time propagation using TDVP on GPUs.
Thanks
Lello

Basically, no we haven’t done careful benchmarking of running TDVP on GPUs, but have received anecdotal reports of speedups over running on CPUs. Try it out and let us know how it goes!

Thanks for the reply. I was just starting to bechmark, but I can’t understand which TDVP is currently supported. There seems to be the ITensorsTDVP.jl and the ITensorNetworks.jl package both providing the TDVP algorithm. Which one is going to be supported/removed?

The current stable version if TDVP is in ITensorTDVP.jl, that’s the one you should use for now. That one is built on top of the MPS/MPO types from ITensors.jl. The code in ITensorTDVP.jl is actually much more general than just being a TDVP code so the package name is a bit of a misnomer. The structure of various MPS algorithms like DMRG, DMRG-X (for computing MPS excited states), TDVP, and linear equation solving are all very similar, and the code we wrote in that package includes all of those options which are built on top of a common generic code structure.

The solver code in ITensorNetworks.jl is a more general TDVP code (and also DMRG, DMRG-X, linear equation solver, etc. like the ITensorTDVP.jl code) that works for tree tensor networks, built using the TTN type defined in ITensorNetworks.jl. An MPS is just a special case of a TTN, so that code implicitly supersedes the DMRG code in ITensors.jl and TDVP/general solver code in ITensorTDVP.jl.

The code in ITensorNetworks.jl will eventually replace the MPS/MPO code in ITensors.jl and ITensorTDVP.jl, but it’s not quite ready for that yet and is in a more experimental phase of development (it is used in internal research projects but not really meant for general external use yet).

However, for the sake of benchmarking, the performance of all of those codes will be about the same (the algorithms they implement are ultimately the same, it’s just that the code in ITensorNetworks.jl is more general).

1 Like

Thank you very much. I was intedded interested both in MPS and TTN but I see that the TTN package is going through a lot of refactorization at the moment so I am going to use ITensorTDVP.

1 Like