CMS 3D CMS Logo

requireDevices.cc
Go to the documentation of this file.
1 #include <cstdlib>
2 #include <iostream>
3 
4 #include <cuda_runtime.h>
5 
7 
8 namespace cms::cudatest {
9  bool testDevices() {
10  int devices = 0;
11  auto status = cudaGetDeviceCount(&devices);
12  if (status != cudaSuccess) {
13  std::cerr << "Failed to initialise the CUDA runtime, the test will be skipped."
14  << "\n";
15  return false;
16  }
17  if (devices == 0) {
18  std::cerr << "No CUDA devices available, the test will be skipped."
19  << "\n";
20  return false;
21  }
22  return true;
23  }
24 
25  void requireDevices() {
26  if (not testDevices()) {
27  exit(EXIT_SUCCESS);
28  }
29  }
30 } // namespace cms::cudatest
bool testDevices()
In presence of CUDA devices, return true; otherwise print message and return false.
void requireDevices()
Print message and exit if there are no CUDA devices.
std::vector< alpaka::Dev< TPlatform > > const & devices()
Definition: devices.h:36
def exit(msg="")