Vlasiator GPU pre-release v1
Pre-release
Pre-release
markusbattarbee
released this
04 Jun 09:57
·
201 commits
to vlasiator_gpu
since this release
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.