Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
device_comm.h
Go to the documentation of this file.
1
13#ifndef DEVICE_COMM_H
14#define DEVICE_COMM_H
15
16#include <Kokkos_Core.hpp>
17
18#ifdef Mallard_HAS_NCCL
19#include <nccl.h>
20#endif
21
22namespace comm {
23
25constexpr bool nccl_available() {
26#ifdef Mallard_HAS_NCCL
27 return true;
28#else
29 return false;
30#endif
31}
32
33#ifdef Mallard_HAS_NCCL
35ncclComm_t nccl();
36
38void finalize_nccl();
39#endif
40
46void enqueue_wait(const Kokkos::DefaultExecutionSpace & waiter, const Kokkos::DefaultExecutionSpace & done);
47
48} // namespace comm
49
50#endif // DEVICE_COMM_H
KOKKOS_INLINE_FUNCTION rtype dot(const rtype *a, const rtype *b)
Compute the dot product of two arrays.
Definition common_math.h:32
Definition comm.cpp:24
constexpr bool nccl_available()
Whether this build can exchange device buffers with NCCL.
Definition device_comm.h:25
void enqueue_wait(const Kokkos::DefaultExecutionSpace &waiter, const Kokkos::DefaultExecutionSpace &done)
Make the work enqueued later on waiter wait for the work enqueued so far on done, without blocking th...
Definition device_comm.cpp:54