14 #include <stk_algsup/CudaDeviceMgr.hpp> 18 CudaDeviceMgr& CudaDeviceMgr::get_singleton()
20 static CudaDeviceMgr cuda_device_mgr;
21 return cuda_device_mgr;
24 CudaDeviceMgr::CudaDeviceMgr(
int device)
28 cudaGetDeviceCount(&deviceCount);
29 if (deviceCount < 1) {
30 std::cout <<
"CudaDeviceMgr: no devices detected." << std::endl;
34 if (m_device >= deviceCount) {
35 std::cout <<
"CudaDeviceMgr: specified device not valid, using device 0." << std::endl;
42 int deviceAlreadyBeingUsed = -1;
43 cudaGetDevice( &deviceAlreadyBeingUsed );
44 if (deviceAlreadyBeingUsed >= 0 && deviceAlreadyBeingUsed < deviceCount) {
45 m_device = deviceAlreadyBeingUsed;
48 cudaSetDevice(m_device);
51 cudaDeviceProp deviceProp;
53 cudaGetDeviceProperties(&deviceProp, m_device);
56 std::cout <<
"\nCudaDeviceMgr attached to device #"<<m_device<<
" '" 57 << deviceProp.name <<
"', compute capability " << deviceProp.major <<
"." << deviceProp.minor