BenchmarkExtension#
Benchmark related components in GXF.
UUID:
b53ebe0c-e427-4485-8ca2-a4ddc8664becVersion:
0.0.1Author:
NVIDIALicense:
LICENSE
Components#
nvidia::gxf::benchmark::BasicMetricsCalculator#
Calculates performance outcomes for basic metrics
Component ID:
135cc602-9a18-437b-8d1d-d4e0a1fbd45dBase Type:
nvidia::gxf::Component
nvidia::gxf::benchmark::AllocatorMetricsCalculator#
Calculates performance outcomes for allocator metrics
Component ID:
7a22ea90-af3f-4b2f-9a84-cbcae845eef2Base Type:
nvidia::gxf::benchmark::PerformanceCalculatorBase
nvidia::gxf::benchmark::EntityBuffer#
Buffers incoming message entities
Component ID:
a2e06c99-67d1-4f24-a393-dd3e0fb76242Base 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-6242dc4c6d6Base 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-b288ccf41f1Base 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-37d9459e903Base 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-87e6fd1679dBase 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-7b6ecb4b222Base 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>