10 #if defined(KOKKOS_ENABLE_CUDA)
12 CudaInfo::CudaInfo() : initialized_(false), mediumPrio_(0) {}
16 #if defined(KOKKOS_ENABLE_CUDA)
17 if (!cudaInfo.initialized_) {
18 cudaInfo.initialized_ =
true;
19 TPETRA_DETAILS_SPACES_CUDA_RUNTIME(cudaEventCreateWithFlags(
20 &cudaInfo.execSpaceWaitEvent_, cudaEventDisableTiming));
21 TPETRA_DETAILS_SPACES_CUDA_RUNTIME(cudaDeviceGetStreamPriorityRange(
22 &cudaInfo.lowPrio_, &cudaInfo.highPrio_));
29 if (!(cudaInfo.lowPrio_ >= cudaInfo.mediumPrio_ &&
30 cudaInfo.mediumPrio_ >= cudaInfo.highPrio_)) {
32 ss <<
"CUDA stream priority does not follow assumptions."
33 <<
" low=" << cudaInfo.lowPrio_ <<
" medium=" << cudaInfo.mediumPrio_
34 <<
" high=" << cudaInfo.highPrio_
35 <<
" Please report this to the Tpetra developers.";
36 throw std::runtime_error(ss.str());
46 #if defined(KOKKOS_ENABLE_CUDA)
47 InstanceLifetimeManager<Kokkos::Cuda> cudaSpaces;
50 #ifdef KOKKOS_ENABLE_SERIAL
51 InstanceLifetimeManager<Kokkos::Serial> serialSpaces;
53 #ifdef KOKKOS_ENABLE_OPENMP
54 InstanceLifetimeManager<Kokkos::OpenMP> openMPSpaces;
56 #ifdef KOKKOS_ENABLE_HIP
57 InstanceLifetimeManager<Kokkos::HIP> HIPSpaces;
59 #ifdef KOKKOS_ENABLE_SYCL
60 InstanceLifetimeManager<Kokkos::Experimental::SYCL> SYCLSpaces;