BenchmarkExtension#

Benchmark related components in GXF.

  • UUID: b53ebe0c-e427-4485-8ca2-a4ddc8664bec

  • Version: 0.0.1

  • Author: NVIDIA

  • License: LICENSE

Components#

nvidia::gxf::benchmark::BasicMetricsCalculator#

Calculates performance outcomes for basic metrics

  • Component ID: 135cc602-9a18-437b-8d1d-d4e0a1fbd45d

  • Base Type: nvidia::gxf::Component

nvidia::gxf::benchmark::AllocatorMetricsCalculator#

Calculates performance outcomes for allocator metrics

  • Component ID: 7a22ea90-af3f-4b2f-9a84-cbcae845eef2

  • Base Type: nvidia::gxf::benchmark::PerformanceCalculatorBase

nvidia::gxf::benchmark::EntityBuffer#

Buffers incoming message entities

  • Component ID: a2e06c99-67d1-4f24-a393-dd3e0fb76242

  • Base Type: nvidia::gxf::Codelet

Parameters#

receiver

Entity buffer receiver.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver

nvidia::gxf::benchmark::BenchmarkPublisher#

Publishes buffered benchmark messages

  • Component ID: 52d9e7c7-2a39-4dd6-9b10f-6242dc4c6d6

  • Base Type: nvidia::gxf::Codelet

Parameters#

transmitter

Benchmark publisher’s transmitter. Transmitter to publish benchmark messages

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver


entity_buffer

Benchmark message entity buffer. Component that holds buffered benchmark message entities

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::EntityBuffer


benchmark_publisher_async_scheduling_term

Benchmark publisher execution control scheduling term. A async scheduling term to control execution of the benchmark publisher

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::AsynchronousSchedulingTerm

nvidia::gxf::benchmark::BenchmarkSink#

Records message arrival timestamps

  • Component ID: 35885a99-e29a-4cdb-a08d7-b288ccf41f1

  • Base Type: nvidia::gxf::benchmark::BenchmarkSinkBase

Parameter#

receiver

A receiver for retrieving incoming messages

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver


benchmark_publisher

A benchmark publisher for retrieving published timestamps

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::BenchmarkPublisher


performance_calculators

A list of associated performance calculators for the incoming message flow

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<PerformanceCalculatorBase>>


use_received_acqtime_as_published

Use acqtime from incoming messages as published message timestamps

  • Flags: GXF_PARAMETER_FLAGS_NONE (false = default)

  • Type: GXF_PARAMETER_TYPE_BOOL

nvidia::gxf::benchmark::BenchmarkController#

Controls benchmark flow

  • Component ID: 763b5541-5b65-4b84-a6ee8-37d9459e903

  • Base Type: nvidia::gxf::Codelet

Parameters#

data_source_boolean_scheduling_terms

Boolean scheduling terms for perminately stopping data sources

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<gxf::BooleanSchedulingTerm>>


data_source_async_scheduling_terms

Scheduling terms to control execution of data source

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<gxf::AsynchronousSchedulingTerm>>


benchmark_controller_boolean_scheduling_term

A boolean scheduling term for perminately stopping this controller

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: gxf::Handle<gxf::BooleanSchedulingTerm>


benchmark_controller_target_time_scheduling_term

A target time scheduling term for enforcing timeout during benchmarking

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: gxf::Handle<gxf::TargetTimeSchedulingTerm>


graph_boolean_scheduling_terms

Boolean scheduling terms that will be disabled when benchmark ends

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<gxf::BooleanSchedulingTerm>>


dependent_components

A list of components whose states must be ready before starting to benchmark

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<gxf::Component>>


data_replay_control_transmitter

Transmitter to send replay command to the connected data replayer

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: gxf::Handle<gxf::Transmitter>


benchmark_publishers

A list of benchmark publishers that buffer and publish benchmark messages

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<BenchmarkPublisher>>


benchmark_sinks

A list of benchmark sinks that record message arrival timestamps

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<BenchmarkSinkBase>>


resource_profilers

A list of associated resource profilers to generate resource profiling reports**

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<ResourceProfilerBase>>


trial_run

Enable a trial run when set to true

  • Flags: GXF_PARAMETER_FLAGS_NONE (true = default)

  • Type: GXF_PARAMETER_TYPE_BOOL


kill_at_the_end

Kill this process when the benchmark ends

  • Flags: GXF_PARAMETER_FLAGS_NONE (false = default)

  • Type: GXF_PARAMETER_TYPE_BOOL


title

Benchmark title to generate benchmark reports

  • Flags: GXF_PARAMETER_FLAGS_NONE (“Undefined Benchmark Title” = default)

  • Type: GXF_PARAMETER_TYPE_STRING


exported_report

File to store exported report

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: gxf::Handle<gxf::File>


entity_buffer_size

The number of messages to be buffered in each entity buffer

  • Flags: GXF_PARAMETER_FLAGS_NONE (5 = default)

  • Type: GXF_PARAMETER_TYPE_SIZE_T


benchmark_duration_ms

The duration of each benchmark iteration in miliseconds

  • Flags: GXF_PARAMETER_FLAGS_NONE (5000 = default)

  • Type: GXF_PARAMETER_TYPE_UINT64_T


benchmark_iterations

The number of benchmark iterations to be conducted for each benchmark test case

  • Flags: GXF_PARAMETER_FLAGS_NONE (5 = default)

  • Type: GXF_PARAMETER_TYPE_SIZE_T


benchmark_buffering_timeout_s

The max wait time in seconds before stopping the benchmark buffering stage

  • Flags: GXF_PARAMETER_FLAGS_NONE (5 = default)

  • Type: GXF_PARAMETER_TYPE_UINT64_T


post_trial_benchmark_iteration_delay_s

The wait time in seconds after a trial benchmark iteration before summarizing results

  • Flags: GXF_PARAMETER_FLAGS_NONE (2 = default)

  • Type: GXF_PARAMETER_TYPE_UINT64_T


post_benchmark_iteration_delay_s

The wait time in seconds after each benchmark iteration before summarizing results

  • Flags: GXF_PARAMETER_FLAGS_NONE (2 = default)

  • Type: GXF_PARAMETER_TYPE_UINT64_T

nvidia::gxf::benchmark::BenchmarkAllocatorSink#

Records allocate/free duration for allocator component

  • Component ID: 2c9a44d3-63f8-40f0-9225e-87e6fd1679d

  • Base Type: nvidia::gxf::benchmark::BenchmarkSinkBase

Parameters#

receiver

A receiver for retrieving incoming messages

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: gxf::Handle<gxf::Receiver>


performance_calculators

A list of associated performance calculators for the incoming message flow

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: std::vector<gxf::Handle<PerformanceCalculatorBase>>


benchmark_allocator

Benchmark Allocator allocation and free calls

  • Flags: GXF_PARAMETER_FLAGS_NONE (false = default)

  • Type: GXF_PARAMETER_TYPE_BOOL

BenchmarkAllocator#

Benchmarks allocator component

  • Component ID: f559d7cc-bdf4-49b6-8ec0a-7b6ecb4b222

  • Base Type: nvidia::gxf::Codelet

Parameters#

storage_type

  • Flags: GXF_PARAMETER_FLAGS_NONE (MemoryStorageType::kHost = default)

  • Type: GXF_PARAMETER_TYPE_INT32_T


clock

Used to add timestamp in the messages

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: Handle<Clock>


output

Transmitter channel publishing messages

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: Handle<Transmitter>


block_size

The size of one block of memory in byte

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64_T


number_of_blocks

The total number of blocks which are allocated by the pool

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32_T


number_of_iterations

The total number of iterations for which allocation and free will be called

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32_T


allocator

Memory allocator for benchmarking

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: Handle<Allocator>


in

The channel for incoming messages

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: Handle<Receiver>