I am trying to compare the CPU and GPU versions of VASP.6.3.0, it seems that the GPU version consumes a lot of time on the STRESS item, does it represent the time for calculation stress tensor?

Here is the time statistic of the GPU version for running an electronic step:

    CHARGE:  cpu time      1.9418: real time      1.9387
    FORLOC:  cpu time      0.0368: real time      0.0368
    FORNL :  cpu time     12.8479: real time     12.8406
    STRESS:  cpu time     40.6397: real time     40.6181
    FORCOR:  cpu time      0.0939: real time      0.0936
    FORHAR:  cpu time      0.0465: real time      0.0465
    MIXING:  cpu time      0.2403: real time      0.2405
    OFIELD:  cpu time      0.0000: real time      0.0000

Here is the time statistic of the CPU version:

    CHARGE:  cpu time      0.3036: real time      0.3050
    FORLOC:  cpu time      0.0392: real time      0.0393
    FORNL :  cpu time      1.3977: real time      1.4043
    STRESS:  cpu time      4.2436: real time      4.2663
    FORCOR:  cpu time      0.2220: real time      0.2232
    FORHAR:  cpu time      0.0584: real time      0.0587
    MIXING:  cpu time      0.0468: real time      0.0469
    OFIELD:  cpu time      0.0000: real time      0.0000
  • $\begingroup$ I'm not familiar with how VASP handles this, but could it be that there's a lot of shuffling of data between system memory and GPU memory? That tends to be the main cause of GPU calculation slowdowns. $\endgroup$
    – Anyon
    May 22, 2022 at 18:11
  • 1
    $\begingroup$ I would guess that you're right, and it is the stress tensor. Stress calculations can be time-consuming, especially any non-local contributions. It may be that this calculation has not yet been offloaded to the GPU, or that the offloading has not been optimised. $\endgroup$ Jun 1, 2022 at 15:57


Browse other questions tagged .