STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::mm::GpuDetails Class Reference

Pertinent aspects of one particular GPU. Condensing the data for each GPU in this manner helps to ensure that one cache line will obtain all statistics for a single GPU. More...

#include <gpu_details.h>

Public Member Functions

bool getAvailability () const
 Get the availability of the GPU.
 
bool getGpuSupported () const
 Get whether the architecture of the GPU is supported.
 
int getArchMajor () const
 Get the major architectural number of the GPU.
 
int getArchMinor () const
 Get the minor architectural number of the GPU.
 
int getSMPCount () const
 Get the number of streaming multiprocessors on the GPU.
 
int getCardRam () const
 Get the amount of RAM on the GPU, in megabytes (assuming that all of the device RAM is available for any given process)
 
int getMaxThreadsPerBlock () const
 Get the maximum number of threads per block supported by this GPU.
 
int getMaxThreadsPerSMP () const
 Get the maximum number of threads per streaming multiprocessor on this GPU.
 
int getMaxBlocksPerSMP () const
 Get the maximum number of blocks per streaming multiprocessor on this GPU.
 
int getMaxSharedPerBlock () const
 Get the maximum amount of L1 shared memory per block on this GPU.
 
int getMaxSharedPerSMP () const
 Get the available L1 shared memory per streaming multiprocessor on this GPU.
 
int getGlobalCacheSize () const
 Get the total amount of global cache (L2) on the card, in bytes.
 
int getRegistersPerBlock () const
 Get the maximum number of registers available per block on this GPU.
 
int getRegistersPerSMP () const
 Get the maximum number of registers available per streaming multiprocessor on this GPU.
 
std::string getCardName () const
 Get the name of the GPU.
 
void setSMPCount (int smp_count_in)
 Set the number of streaming multiprocessors. This is useful for experimentation in mock settings, or perhaps running STORMM on GPUs when MiG is engaged.
 
 GpuDetails ()
 Constructors include a blank constructor (which automatically labels the GPU as unavailable) and constructors based on cudaDeviceProp or hipDeviceProp.
 
bool operator== (const GpuDetails &right) const
 Overload the == and != operators to compare GpuDetails objects.
 
bool operator!= (const GpuDetails &right) const
 

Detailed Description

Pertinent aspects of one particular GPU. Condensing the data for each GPU in this manner helps to ensure that one cache line will obtain all statistics for a single GPU.

Constructor & Destructor Documentation

◆ GpuDetails()

stormm::card::GpuDetails::GpuDetails ( )

Constructors include a blank constructor (which automatically labels the GPU as unavailable) and constructors based on cudaDeviceProp or hipDeviceProp.

Parameters
devpropA CUDA device properties object reported by cudaGetDeviceProperties()
dev_indexIndex of the GPU in a longer list produced by the CUDA runtime library

Member Function Documentation

◆ operator==()

bool stormm::card::GpuDetails::operator== ( const GpuDetails & right) const

Overload the == and != operators to compare GpuDetails objects.

Parameters
rightThe other GPU to compare against

◆ setSMPCount()

void stormm::card::GpuDetails::setSMPCount ( int smp_count_in)

Set the number of streaming multiprocessors. This is useful for experimentation in mock settings, or perhaps running STORMM on GPUs when MiG is engaged.

Parameters
smp_count_inThe number of streaming multiprocessors

The documentation for this class was generated from the following files: