Skip to content

Vlasiator GPU pre-release v1

Pre-release
Pre-release
Compare
Choose a tag to compare
@markusbattarbee markusbattarbee released this 04 Jun 09:57
· 201 commits to vlasiator_gpu since this release
afba532

This pre-release is a functional first release of Vlasiator with support for NVIDIA GPUs via CUDA and AMD GPUs via HIP/ROCm. The same branch also supports building for CPUs just as before. Slight differences in output show up as a result of differing summation orders in e.g. moments reduction, but testpackage tests all pass with acceptable numerical diffs.

Known issues:

  • Block adjustment in acceleration can still be slow.
  • VDF-based data reducers are somewhat slow.
  • AMD performance is low and requires a mempool for operations (e.g. https://github.com/sfantao/vlasiator-mempool). Planned improvements include support for more robust memory management libraries.
  • Field solver and ionospheric grid solver have not yet been ported to GPUs.
  • GPU RDMA may not work on all systems, leading to poor MPI performance.
  • CUDA compute-sanitizer reports several invalid context errors on launch; these can be ignored.

This introduces the Hashinator library (https://github.com/fmihpc/hashinator) as a required submodule. Make sure to initialize and pull it as well. GPU compilation should use a GPU-compatible compiler for all objects; see e.g. MAKE/Makefile.mahti_cuda for instructions on how to set up a compiler.