Preliminary support for AMD GPUs
Description
Essentially this is just a huge bunch of preprocessor #define
s to replace CUDA with HIP.
I compiled Octopus with the foss-min
BuildBot preset with some slight modifications via extra CMake options.
$ cmake --fresh --preset foss-min -DOCTOPUS_HIP:BOOL=On -DOCTOPUS_TESTS_REPORT:BOOL=OFF -DCMAKE_MODULE_PATH:PATH=$HIP_PATH/lib/cmake/hip
$ cmake --build --preset foss-min
$ ctest --preset foss-min --verbose
These are the tests that currently fail:
Test | Comment |
---|---|
components/26-batch_ops |
Tolerance |
finite_systems_1d/04-lithium |
Tolerance error in gs, Starting to diverge in td at step 1112 |
finite_systems_3d/29-pcm_chlorine_anion |
Tolerance (also fails on Raven with identical values) |
finite_systems_3d/33-cg |
Tolerance |
functionals/12-vdw_solid_c6 |
Tolerance |
functionals/22-vdw_d3_stress |
Tolerance? (needs to be cross-checked with testsuite app) |
linear_response/01-casida |
Tolerance (also fails on Raven with identical values) |
maxwell/02-external-current |
Tolerance (also fails on Raven with similar but different values) |
maxwell/08-restart-maxwell |
Tolerance (also fails on Raven with similar but different values) |
maxwell/11-leapfrog |
Tolerance (also fails on Raven with identical values) |
periodic_systems/06-h2o_pol_lr |
Tolerance? (needs to be cross-checked with testsuite app) |
periodic_systems/12-boron_nitride |
Test broken? (also fails on Raven with completely different values) |
periodic_systems/13-primitive |
Test broken? (also fails on Raven with completely different values) |
periodic_systems/14-silicon_shifts |
Divergence of total current in td |
periodic_systems/21-magnon |
Test broken? (also fails on Raven with completely different values) |
photo_electron/04-nfft |
Missing feature is not checked correctly. |
pseudopotentials/03-nlcc |
Tolerance? (needs to be cross-checked with testsuite app) |
pseudopotentials/12-mix_and_match |
Tolerance |
real_time/01-propagators |
Test broken? (also fails on Raven with completely different values) |
real_time/03-td_self_consistent |
Divergence of forces in td |
real_time/05-time_propagation |
Divergence of forces in td |
real_time/09-angular_momentum |
Tolerance or test broken? (also fails on Raven with different values) |
real_time/23-td_qedft_breit_pxlda_adiabatic |
Divergence of energy in td |
The full output of the testsuite can be downloaded here: testsuite-2024-05-22.log
News snippet
Octopus now has preliminary support for AMD GPUs using the Heterogeneous-Compute Interface for Portability (HIP). To compile Octopus with HIP-support configure it in CMake using -DOCTOPUS_HIP=ON
.
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.