Skip to content

Preliminary support for AMD GPUs

Henri Menke requested to merge hip into main

Description

Essentially this is just a huge bunch of preprocessor #defines 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.

Merge request reports