Interface class to query overall system performance values and statistics.
More...
#include <iperformance_values.h>
Inherits mi::base::Interface_declare< 0xa3ed753a, ... >.
|
virtual mi::Uint64 | get (const char *type_name, mi::Uint32 host_id=0) const =0 |
| Returns the value of the given performance counter. More...
|
|
virtual mi::Float32 | get_time (const char *type_name, mi::Uint32 host_id=0) const =0 |
| Returns the value of the given performance value, interpreted as time in milliseconds. More...
|
|
virtual mi::Uint32 | get_nb_type_names () const =0 |
| Returns the number of different performance value types. More...
|
|
virtual const char * | get_type_name (mi::Uint32 index) const =0 |
| Returns the name of the given performance value type. More...
|
|
virtual mi::Size | get_nb_host_ids () const =0 |
| Returns the size of host id array. More...
|
|
virtual void | get_host_id_array (mi::Uint32 host_id_array[]) const =0 |
| Returns the host id array. More...
|
|
virtual IPer_span_statistics * | get_per_span_statistics (mi::Uint32 span_id) const =0 |
| Returns performance statistics for the given horizontal span. More...
|
|
Interface class to query overall system performance values and statistics.
◆ get()
virtual mi::Uint64 nv::index::IPerformance_values::get |
( |
const char * |
type_name, |
|
|
mi::Uint32 |
host_id = 0 |
|
) |
| const |
|
pure virtual |
Returns the value of the given performance counter.
The following types of performance counters are available:
- nb_subcubes_rendered: Number of subcubes that were rendered, i.e., are visible and not empty.
- size_volume_data_rendered: Size (in bytes) of the volume data accessed during rendering.
- size_horizon_data_rendered: Size (in bytes) of the heightfield data accessed during rendering.
- nb_horizon_triangles_rendered: Approximation of the number of horizon triangles rendered.
- time_rendering_horizon: Time just for rendering the horizon data.
- time_rendering_volume: Time just for rendering the volume data.
- time_rendering_volume_and_horizon: Time just for rendering volume and heightfield data (in the same subcube).
- time_rendering_only: Time just for the basic rendering call without per-subcube initialization (sum of time_rendering_*).
- time_gpu_upload: Time for uploading data to the GPU (e.g. volume data).
- time_gpu_download: Time for downloading data from the GPU (e.g. rendering results).
- time_rendering: Time for rendering the subcubes, with per-subcube initialization.
- time_rendering_total_sum: Summed-up rendering time of all GPU or CPU threads.
- size_volume_data_upload: Size (in bytes) of the uploaded volume data.
- size_rendering_results_download: Size (in bytes) of the downloaded rendering results.
- size_pinned_host_memory: Size (in bytes) of the allocated page-locked (pinned) host memory.
- size_unpinned_host_memory: Size (in bytes) of the allocated normal (unpinned) host memory.
- size_gpu_memory_used: Size (in bytes) of the device memory on the GPUs that is allocated by IndeX.
- size_gpu_memory_total: Size (in bytes) of the total device memory on the GPUs.
- size_gpu_memory_available: Size (in bytes) of the available (free) device memory on the GPU.
- size_system_memory_usage: Size (in bytes) of the allocated system memory (on the host). The approximate value is queried using a system call.
- size_transfer_compositing: Amount of image data (in bytes) sent to remote hosts for compositing.
- nb_fragments: Total number of GPUs or number of CPU threads used for rendering.
- is_using_gpu: Number of GPUs used for rendering, zero for all-CPU rendering.
- time_total_rendering: Time for the entire rendering, including all initialization.
- time_total_compositing: Time for compositing the rendering results into the final image.
- time_total_final_compositing: Time for compositing the final result into the user-defined framebuffer.
- time_complete_frame: Time for generating a complete frame, includes initialization, rendering and compositing.
- time_frame_setup: Time for global initialization before rendering is finished.
- time_frame_finish: Time for global deinitialization after compositing.
- time_avg_rendering: Average rendering time per GPU or CPU thread.
- frames_per_second: Rendered frames per second (corresponding to time_complete_frame).
- nb_horizontal_spans: Number of horizontal spans used.
- size_zbuffer_transfer: Size of the depth buffer used for application rendering integration.
- size_zbuffer_transfer_compressed: Size of the compressed depth buffer that is transferred over the network.
- time_zbuffer_serialize: Time taken for processing the depth buffer, e.g. compression.
The types that have names starting with "time_" as well as the type "frames_per_second" are to be accessed using get_time()
, for all other types get()
should be used.
- Parameters
-
type_name | Name of the performance counter type |
host_id | If 0, request globally accumulated values, else return per-host values for the given host id. |
- Returns
- Raw integer value of the performance counter, or INVALID_VALUE if the given type does not exist. For time values you need to multiply the result with TIME_RESOLUTION to get milliseconds (or just call get_time()).
◆ get_host_id_array()
virtual void nv::index::IPerformance_values::get_host_id_array |
( |
mi::Uint32 |
host_id_array[] | ) |
const |
|
pure virtual |
Returns the host id array.
- Parameters
-
[out] | host_id_array | A host id array to be filled by this method. The application must pre-allocate the array before calling this method. The size must be at least the size of the value returned by get_nb_host_ids() . |
◆ get_nb_host_ids()
virtual mi::Size nv::index::IPerformance_values::get_nb_host_ids |
( |
| ) |
const |
|
pure virtual |
Returns the size of host id array.
- Returns
- size of the host id array.
◆ get_nb_type_names()
virtual mi::Uint32 nv::index::IPerformance_values::get_nb_type_names |
( |
| ) |
const |
|
pure virtual |
Returns the number of different performance value types.
- Returns
- number of performance value types
◆ get_per_span_statistics()
virtual IPer_span_statistics * nv::index::IPerformance_values::get_per_span_statistics |
( |
mi::Uint32 |
span_id | ) |
const |
|
pure virtual |
Returns performance statistics for the given horizontal span.
The range of span_id is [0, nb_horizontal_spans], where nb_horizontal_spans can be accessed with the get()
method.
- Parameters
-
[in] | span_id | The requested span id. |
- Returns
- per span statistics object associated with the span_id, or 0 when span_id is invalid.
◆ get_time()
virtual mi::Float32 nv::index::IPerformance_values::get_time |
( |
const char * |
type_name, |
|
|
mi::Uint32 |
host_id = 0 |
|
) |
| const |
|
pure virtual |
Returns the value of the given performance value, interpreted as time in milliseconds.
See get()
for a description of the supported performance counter types.
- Parameters
-
type_name | Name of the performance counter type |
host_id | If 0, request globally accumulated values, else return per-host values for the given host id. |
- Returns
- milliseconds of the given performance counter, or INVALID_VALUE_FLOAT if the given type does not exist
◆ get_type_name()
virtual const char * nv::index::IPerformance_values::get_type_name |
( |
mi::Uint32 |
index | ) |
const |
|
pure virtual |
Returns the name of the given performance value type.
- Parameters
-
- Returns
- name of the specified type, or 0 for invalid index
◆ INVALID_VALUE_FLOAT()
static mi::Float32 nv::index::IPerformance_values::INVALID_VALUE_FLOAT |
( |
| ) |
|
|
inlinestatic |
Value returned by get_time()
when an invalid type was specified.
- Returns
- invalid time value
◆ INVALID_VALUE
const mi::Uint64 nv::index::IPerformance_values::INVALID_VALUE = ~0ULL |
|
static |
Value returned by get()
when an invalid type was specified.
◆ TIME_RESOLUTION
const mi::Uint64 nv::index::IPerformance_values::TIME_RESOLUTION = 1000000 |
|
static |
Internal resolution of time values (in 1/milliseconds).
The documentation for this class was generated from the following file: