Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-02-27 07:19:58

0001 #ifndef FWCore_AbstractServices_ResourceInformation_h
0002 #define FWCore_AbstractServices_ResourceInformation_h
0003 
0004 /** \class edm::ResourceInformation
0005 
0006   Description:
0007 
0008   Usage:
0009 
0010 \author W. David Dagenhart, created May 3, 2022
0011 */
0012 
0013 #include <string>
0014 #include <vector>
0015 
0016 #include "DataFormats/Provenance/interface/HardwareResourcesDescription.h"
0017 
0018 namespace edm {
0019 
0020   class ResourceInformation {
0021   public:
0022     ResourceInformation();
0023     ResourceInformation(ResourceInformation const&) = delete;
0024     ResourceInformation const& operator=(ResourceInformation const&) = delete;
0025     virtual ~ResourceInformation();
0026 
0027     virtual HardwareResourcesDescription hardwareResourcesDescription() const = 0;
0028 
0029     virtual std::vector<std::string> const& selectedAccelerators() const = 0;
0030     virtual std::vector<std::string> const& cpuModels() const = 0;
0031     virtual std::vector<std::string> const& gpuModels() const = 0;
0032 
0033     virtual bool hasGpuNvidia() const = 0;
0034 
0035     virtual std::string const& nvidiaDriverVersion() const = 0;
0036     virtual int cudaDriverVersion() const = 0;
0037     virtual int cudaRuntimeVersion() const = 0;
0038 
0039     // Same as cpuModels except in a single string with models separated by ", "
0040     virtual std::string const& cpuModelsFormatted() const = 0;
0041     virtual double cpuAverageSpeed() const = 0;
0042 
0043     virtual void setSelectedAccelerators(std::vector<std::string> const& selectedAccelerators) = 0;
0044     virtual void setCPUModels(std::vector<std::string> const&) = 0;
0045     virtual void setGPUModels(std::vector<std::string> const&) = 0;
0046 
0047     virtual void setNvidiaDriverVersion(std::string const&) = 0;
0048     virtual void setCudaDriverVersion(int) = 0;
0049     virtual void setCudaRuntimeVersion(int) = 0;
0050 
0051     virtual void setCpuModelsFormatted(std::string const&) = 0;
0052     virtual void setCpuAverageSpeed(double) = 0;
0053   };
0054 }  // namespace edm
0055 #endif