Skip to content

Commit 88badf0

Browse files
authored
Merge pull request #29061 from makortel/fixCUDAESProduct
Fix cms::cuda::ESProduct for zero devices
2 parents ac10cf6 + e752b87 commit 88badf0

File tree

5 files changed

+26
-19
lines changed

5 files changed

+26
-19
lines changed

HeterogeneousCore/CUDACore/interface/ESProduct.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
#include <vector>
88

99
#include "FWCore/Utilities/interface/thread_safety_macros.h"
10+
#include "HeterogeneousCore/CUDAServices/interface/numberOfDevices.h"
1011
#include "HeterogeneousCore/CUDAUtilities/interface/EventCache.h"
1112
#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h"
12-
#include "HeterogeneousCore/CUDAUtilities/interface/deviceCount.h"
1313
#include "HeterogeneousCore/CUDAUtilities/interface/currentDevice.h"
1414
#include "HeterogeneousCore/CUDAUtilities/interface/eventWorkHasCompleted.h"
1515

@@ -18,7 +18,7 @@ namespace cms {
1818
template <typename T>
1919
class ESProduct {
2020
public:
21-
ESProduct() : gpuDataPerDevice_(deviceCount()) {
21+
ESProduct() : gpuDataPerDevice_(numberOfDevices()) {
2222
for (size_t i = 0; i < gpuDataPerDevice_.size(); ++i) {
2323
gpuDataPerDevice_[i].m_event = getEventCache().get();
2424
}

HeterogeneousCore/CUDAServices/interface/numberOfCUDADevices.h

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#ifndef HeterogeneousCore_CUDAServices_numberOfDevices_h
2+
#define HeterogeneousCore_CUDAServices_numberOfDevices_h
3+
4+
namespace cms {
5+
namespace cuda {
6+
// Returns the number of CUDA devices
7+
// The difference wrt. the standard CUDA function or
8+
// cms::cuda::deviceCount() is that if CUDAService is disabled,
9+
// this function returns 0.
10+
int numberOfDevices();
11+
} // namespace cuda
12+
} // namespace cms
13+
14+
#endif

HeterogeneousCore/CUDAServices/src/numberOfCUDADevices.cc

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "HeterogeneousCore/CUDAServices/interface/numberOfDevices.h"
2+
#include "HeterogeneousCore/CUDAServices/interface/CUDAService.h"
3+
#include "FWCore/ServiceRegistry/interface/Service.h"
4+
5+
namespace cms::cuda {
6+
int numberOfDevices() {
7+
edm::Service<CUDAService> cs;
8+
return cs->enabled() ? cs->numberOfDevices() : 0;
9+
}
10+
} // namespace cms::cuda

0 commit comments

Comments
 (0)