|
Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website |
A whole time step (time-step reduction, halo exchanges, stages) as one CUDA graph, launched once per step. More...
#include "solver.h"#include <limits>#include <stdexcept>#include <string>#include <Kokkos_Core.hpp>#include "device_comm.h"#include "log.h"A whole time step (time-step reduction, halo exchanges, stages) as one CUDA graph, launched once per step.
The step's kernels are captured once and replayed: dt then lives on the device (computed there with the host's arithmetic), the halo exchanges and the dt reduction are NCCL operations on the same stream, and the host waits once per step, for dt. Steps whose host work depends on the time (boundary or source expressions of t, characteristic boundaries, average-pressure outlets) or that need host decisions inside the step (gas mixtures, chemistry) run kernel by kernel as before.