From c31541a4d881da79514adad0d829c0afbb3e620a Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Thu, 2 Sep 2021 10:42:17 +0200 Subject: [PATCH] Print the NVIDIA and CUDA driver and library versions --- HeterogeneousCore/CUDAServices/BuildFile.xml | 1 + .../CUDAServices/src/CUDAService.cc | 41 ++++++++++++++++--- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/HeterogeneousCore/CUDAServices/BuildFile.xml b/HeterogeneousCore/CUDAServices/BuildFile.xml index 5fcaf5e5527b0..a48e1c639eaf3 100644 --- a/HeterogeneousCore/CUDAServices/BuildFile.xml +++ b/HeterogeneousCore/CUDAServices/BuildFile.xml @@ -5,6 +5,7 @@ + diff --git a/HeterogeneousCore/CUDAServices/src/CUDAService.cc b/HeterogeneousCore/CUDAServices/src/CUDAService.cc index 1c0e1fc6d2516..a9156e1b1be9e 100644 --- a/HeterogeneousCore/CUDAServices/src/CUDAService.cc +++ b/HeterogeneousCore/CUDAServices/src/CUDAService.cc @@ -3,6 +3,8 @@ #include #include +#include +#include #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" @@ -10,13 +12,14 @@ #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/ReusableObjectHolder.h" #include "HeterogeneousCore/CUDAServices/interface/CUDAService.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" #include "HeterogeneousCore/CUDAUtilities/interface/EventCache.h" #include "HeterogeneousCore/CUDAUtilities/interface/StreamCache.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cachingAllocators.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/currentDevice.h" #include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #include "HeterogeneousCore/CUDAUtilities/interface/host_unique_ptr.h" -#include "HeterogeneousCore/CUDAUtilities/interface/currentDevice.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cachingAllocators.h" +#include "HeterogeneousCore/CUDAUtilities/interface/nvmlCheck.h" void setCudaLimit(cudaLimit limit, const char* name, size_t request) { // read the current device @@ -83,6 +86,10 @@ constexpr unsigned int getCudaCoresPerSM(unsigned int major, unsigned int minor) } } +std::string decodeVersion(int version) { + return std::to_string(version / 1000) + '.' + std::to_string(version % 1000 / 10); +} + namespace { template