NVIDIA IndeX API nvidia_logo_transpbg.gif Up
nv::index::IAffinity_information Class Referenceabstract

Application-side control of data distribution to cluster machines and GPUs. More...

#include <iaffinity_information.h>

Inherits mi::base::Interface_declare< 0x3fbeb811, ... >.

Public Types

enum  Affinity_flags {
  ANY_GPU = 0xffffffffu ,
  ANY_HOST = 0u
}
 Flags for setting specific affinity modes. More...
 

Public Member Functions

virtual bool get_affinity (const mi::math::Bbox_struct< mi::Float32, 3 > &subregion, mi::Uint32 &host_id, mi::IString *host_name, mi::Uint32 &device_id) const =0
 Defines the affinity for a subregion with the given bounding box. More...
 

Detailed Description

Application-side control of data distribution to cluster machines and GPUs.

NVIDIA IndeX applies a sort-last spatial decomposition for rendering that is based on a given subregion size (see IConfig_settings::set_subcube_configuration) and that may be different to an application's decomposition scheme. This interface class enables the user to steer the data distribution and assign a subregion (or spatial region) to a certain machine and to a certain GPU in the cluster.

As a requirement for correct affinity usage the domain-specific subdivision and the spatial subdivision from NVIDIA IndeX have to result in the same spatial regions (bounding boxes). At least the domain-specific spatial regions for which an explicit affinity is given have to match or include (cover) one or a subset of bounding boxes that are created by NVIDIA IndeX. The sub cube configuration defines the size of the bounding boxes created by NVIDIA IndeX and allows to optimize the alignment of the internal spatial decomposition to a given domain-specific spatial decomposition.

Member Enumeration Documentation

 Affinity_flags

Flags for setting specific affinity modes.

Enumerator
ANY_GPU 

The GPU should be assigned automatically.

ANY_HOST 

The host should be assigned automatically.

Member Function Documentation

 get_affinity()

virtual bool nv::index::IAffinity_information::get_affinity ( const mi::math::Bbox_struct< mi::Float32, 3 > &  subregion,
mi::Uint32 &  host_id,
mi::IString *  host_name,
mi::Uint32 &  device_id 
) const
pure virtual

Defines the affinity for a subregion with the given bounding box.

The affinity includes the cluster machine as well as the CUDA device id on that machine. If neither the id of the cluster machine nor the id of the CUDA device is valid (e.g., the host is not listed in cluster) then the affinity definition is ignored.

Parameters
[in]subregionThe bounding box of the subregion. The affinity for this subregion is to be provided by the user.
[out]host_idThe id of the cluster machine/node where the subregion is supposed to be stored, processed and rendered. The id refers to the node identifier that the DiCE networking environment assigns/defines during startup automatically.
[out]host_nameThe name of the cluster machine/node where the subregion is supposed to be stored, processed and rendered. If host_id and name don't match, then host_name will be used to query the corresponding host id. That is, the name has priority over the host_id. If host_name is the empty string (which is the default), only host_id will be used.
[out]device_idThe CUDA device id on the given cluster machine where the subregion is supposed to be stored, processed and rendered. If set to ANY_GPU then the GPU will be chosen automatically.
Returns
true if affinity information is supplied, and false if host_id and gpu_id should be ignored.

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