StandardExtension

Most commonly used interfaces and components in Gxf Core.

  • UUID: 8ec2d5d6-b5df-48bf-8dee-0252606fdd7e

  • Version: 2.4.0

  • Author: NVIDIA

  • License: LICENSE

Interfaces

nvidia::gxf::Codelet

Interface for a component which can be executed to run custom code.

  • Component ID: 5c6166fa-6eed-41e7-bbf0-bd48cd6e1014

  • Base Type: nvidia::gxf::Component

  • Defined in: gxf/std/codelet.hpp

nvidia::gxf::Clock

Interface for clock components which provide time.

  • Component ID: 779e61c2-ae70-441d-a26c-8ca64b39f8e7

  • Base Type: nvidia::gxf::Component

  • Defined in: gxf/std/clock.hpp

nvidia::gxf::System

Component interface for systems which are run as part of the application run cycle.

  • Component ID: d1febca1-80df-454e-a3f2-715f2b3c6e69

  • Base Type: nvidia::gxf::Component

nvidia::gxf::Queue

Interface for storing entities in a queue.

  • Component ID: 792151bf-3138-4603-a912-5ca91828dea8

  • Base Type: nvidia::gxf::Component

  • Defined in: gxf/std/queue.hpp

nvidia::gxf::Router

Interface for classes which are routing messages in and out of entities.

  • Component ID: 8b317aad-f55c-4c07-8520-8f66db92a19e

  • Defined in: gxf/std/router.hpp

nvidia::gxf::Transmitter

Interface for publishing entities.

  • Component ID: c30cc60f-0db2-409d-92b6-b2db92e02cce

  • Base Type: nvidia::gxf::Queue

  • Defined in: gxf/std/transmitter.hpp

nvidia::gxf::Receiver

Interface for receiving entities.

  • Component ID: a47d2f62-245f-40fc-90b7-5dc78ff2437e

  • Base Type: nvidia::gxf::Queue

  • Defined in: gxf/std/receiver.hpp

nvidia::gxf::Scheduler

A simple poll-based single-threaded scheduler which executes codelets.

  • Component ID: f0103b75-d2e1-4d70-9b13-3fe5b40209be

  • Base Type: nvidia::gxf::System

  • Defined in: nvidia/gxf/system.hpp

nvidia::gxf::SchedulingTerm

Interface for terms used by a scheduler to determine if codelets in an entity are ready to step.

  • Component ID: 184d8e4e-086c-475a-903a-69d723f95d19

  • Base Type: nvidia::gxf::Component

  • Defined in: gxf/std/scheduling_term.hpp

nvidia::gxf::Allocator

Provides allocation and deallocation of memory.

  • Component ID: 3cdd82d0-2326-4867-8de2-d565dbe28e03

  • Base Type: nvidia::gxf::Component

  • Defined in: nvidia/gxf/allocator.hpp

nvidia::gxf::Monitor

Monitors entities during execution.

  • Component ID: 9ccf9421-b35b-8c79-e1f0-97dc23bd38ea

  • Base Type: nvidia::gxf::Component

  • Defined in: nvidia/gxf/monitor.hpp

Components

nvidia::gxf::RealtimeClock

A real-time clock which runs based off a system steady clock.

  • Component ID: 7b170b7b-cf1a-4f3f-997c-bfea25342381

  • Base Type: nvidia::gxf::Clock

Parameters

initial_time_offset

The initial time offset used until time scale is changed manually.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_FLOAT64


initial_time_scale

The initial time scale used until time scale is changed manually.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_FLOAT64


use_time_since_epoch

If true, clock time is time since epoch + initial_time_offset at initialize().Otherwise clock time is initial_time_offset at initialize().

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_BOOL

nvidia::gxf::ManualClock

A manual clock which is instrumented manually.

  • Component ID: 52fa1f97-eba8-472a-a8ca-4cff1a2c440f

  • Base Type: nvidia::gxf::Clock

Parameters

initial_timestamp

The initial timestamp on the clock (in nanoseconds).

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT64

nvidia::gxf::SystemGroup

A group of systems.

  • Component ID: 3d23d470-0aed-41c6-ac92-685c1b5469a0

  • Base Type: nvidia::gxf::System

nvidia::gxf::MessageRouter

A router which sends transmitted messages to receivers.

  • Component ID: 84fd5d56-fda6-4937-0b3c-c283252553d8

  • Base Type: nvidia::gxf::Router

nvidia::gxf::RouterGroup

A group of routers.

  • Component ID: ca64ee14-2280-4099-9f10-d4b501e09117

  • Base Type: nvidia::gxf::Router

nvidia::gxf::DoubleBufferTransmitter

A transmitter which uses a double-buffered queue where messages are pushed to a backstage after they are published.

  • Component ID: 0c3c0ec7-77f1-4389-aef1-6bae85bddc13

  • Base Type: nvidia::gxf::Transmitter

Parameters

capacity

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64

  • Default: 1


policy

0: pop, 1: reject, 2: fault.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64

  • Default: 2

nvidia::gxf::DoubleBufferReceiver

A receiver which uses a double-buffered queue where new messages are first pushed to a backstage.

  • Component ID: ee45883d-bf84-4f99-8419-7c5e9deac6a5

  • Base Type: nvidia::gxf::Receiver

Parameters

capacity

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64

  • Default: 1


policy

0: pop, 1: reject, 2: fault

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64

  • Default: 2

nvidia::gxf::Connection

A component which establishes a connection between two other components.

  • Component ID: cc71afae-5ede-47e9-b267-60a5c750a89a

  • Base Type: nvidia::gxf::Component

Parameters

source

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Transmitter


target

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver

nvidia::gxf::PeriodicSchedulingTerm

A component which specifies that an entity shall be executed periodically.

  • Component ID: d392c98a-9b08-49b4-a422-d5fe6cd72e3e

  • Base Type: nvidia::gxf::SchedulingTerm

Parameters

recess_period

The recess period indicates the minimum amount of time which has to pass before the entity is permitted to execute again. The period is specified as a string containing of a number and an (optional) unit. If no unit is given the value is assumed to be in nanoseconds. Supported units are: Hz, s, ms. Example: 10ms, 10000000, 0.2s, 50Hz.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_STRING

nvidia::gxf::CountSchedulingTerm

A component which specifies that an entity shall be executed exactly a given number of times.

  • Component ID: f89da2e4-fddf-4aa2-9a80-1119ba3fde05

  • Base Type: nvidia::gxf::SchedulingTerm

Parameters

count

The total number of time this term will permit execution.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT64

nvidia::gxf::TargetTimeSchedulingTerm

A component where the next execution time of the entity needs to be specified after every tick.

  • Component ID: e4aaf5c3-2b10-4c9a-c463-ebf6084149bf

  • Base Type: nvidia::gxf::SchedulingTerm

Parameters

clock

The clock used to define target time.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Clock

nvidia::gxf::DownstreamReceptiveSchedulingTerm

A component which specifies that an entity shall be executed if receivers for a certain transmitter can accept new messages.

  • Component ID: 9de75119-8d0f-4819-9a71-2aeaefd23f71

  • Base Type: nvidia::gxf::SchedulingTerm

Parameters

min_size

The term permits execution if the receiver connected to the transmitter has at least the specified number of free slots in its back buffer.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64


transmitter

The term permits execution if this transmitter can publish a message, i.e. if the receiver which is connected to this transmitter can receive messages.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Transmitter

nvidia::gxf::MessageAvailableSchedulingTerm

A scheduling term which specifies that an entity can be executed when the total number of messages over a set of input channels is at least a given number of messages.

  • Component ID: fe799e65-f78b-48eb-beb6-e73083a12d5b

  • Base Type: nvidia::gxf::SchedulingTerm

Parameters

front_stage_max_size

If set the scheduling term will only allow execution if the number of messages in the front stage does not exceed this count. It can for example be used in combination with codelets which do not clear the front stage in every tick.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_UINT64


min_size

The scheduling term permits execution if the given receiver has at least the given number of messages available.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64


receiver

The scheduling term permits execution if this channel has at least a given number of messages available.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver

nvidia::gxf::MultiMessageAvailableSchedulingTerm

A component which specifies that an entity shall be executed when a queue has at least a certain number of elements.

  • Component ID: f15dbeaa-afd6-47a6-9ffc-7afd7e1b4c52

  • Base Type: nvidia::gxf::SchedulingTerm

Parameters

min_size

The scheduling term permits execution if all given receivers together have at least the given number of messages available.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64


receivers

The scheduling term permits execution if the given channels have at least a given number of messages available.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver

nvidia::gxf::ExpiringMessageAvailableSchedulingTerm

A component which tries to wait for specified number of messages in queue for at most specified time.

  • Component ID: eb22280c-76ff-11eb-b341-cf6b417c95c9

  • Base Type: nvidia::gxf::SchedulingTerm

Parameters

clock

Clock to get time from.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Clock


max_batch_size

The maximum number of messages to be batched together.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT64


max_delay_ns

The maximum delay from first message to wait before submitting workload anyway.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT64


receiver

Receiver to watch on.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver

nvidia::gxf::BooleanSchedulingTerm

A component which acts as a boolean AND term that can be used to control the execution of the entity.

  • Component ID: e07a0dc4-3908-4df8-8134-7ce38e60fbef

  • Base Type: nvidia::gxf::SchedulingTerm

nvidia::gxf::AsynchronousSchedulingTerm

A component which is used to inform of that an entity is dependent upon an async event for its execution.

  • Component ID: 56be1662-ff63-4179-9200-3fcd8dc38673

  • Base Type: nvidia::gxf::SchedulingTerm

nvidia::gxf::GreedyScheduler

A simple poll-based single-threaded scheduler which executes codelets.

  • Component ID: 869d30ca-a443-4619-b988-7a52e657f39b

  • Base Type: nvidia::gxf::Scheduler

Parameters

clock

The clock used by the scheduler to define flow of time. Typical choices are a RealtimeClock or a ManualClock.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Clock


max_duration_ms

The maximum duration for which the scheduler will execute (in ms). If not specified the scheduler will run until all work is done. If periodic terms are present this means the application will run indefinitely.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_INT64


realtime

This parameter is deprecated. Assign a clock directly.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_BOOL


stop_on_deadlock

If enabled the scheduler will stop when all entities are in a waiting state, but no periodic entity exists to break the dead end. Should be disabled when scheduling conditions can be changed by external actors, for example by clearing queues manually.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_BOOL

nvidia::gxf::MultiThreadScheduler

A multi thread scheduler that executes codelets for maximum throughput.

  • Component ID: de5e0646-7fa5-11eb-a5c4-330ebfa81bbf

  • Base Type: nvidia::gxf::Scheduler

Parameters

check_recession_perios_ms

The maximum duration for which the scheduler would wait (in ms) when an entity is not ready to run yet.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT64


clock

The clock used by the scheduler to define flow of time. Typical choices are a RealtimeClock or a ManualClock.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Clock


max_duration_ms

The maximum duration for which the scheduler will execute (in ms). If not specified the scheduler will run until all work is done. If periodic terms are present this means the application will run indefinitely.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_INT64


stop_on_deadlock

If enabled the scheduler will stop when all entities are in a waiting state, but no periodic entity exists to break the dead end. Should be disabled when scheduling conditions can be changed by external actors, for example by clearing queues manually.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_BOOL


worker_thread_number

Number of threads.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT64

  • Default: 1

nvidia::gxf::BlockMemoryPool

A memory pools which provides a maximum number of equally sized blocks of memory.

  • Component ID: 92b627a3-5dd3-4c3c-976c-4700e8a3b96a

  • Base Type: nvidia::gxf::Allocator

Parameters

block_size

The size of one block of memory in byte. Allocation requests can only be fulfilled if they fit into one block. If less memory is requested still a full block is issued.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64


do_not_use_cuda_malloc_host

If enabled operator new will be used to allocate host memory instead of cudaMallocHost.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_BOOL

  • Default: True


num_blocks

The total number of blocks which are allocated by the pool. If more blocks are requested allocation requests will fail.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64


storage_type

The memory storage type used by this allocator. Can be kHost (0) or kDevice (1) or kSystem (2).

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32

  • Default: 0

nvidia::gxf::UnboundedAllocator

Allocator that uses dynamic memory allocation without an upper bound.

  • Component ID: c3951b16-a01c-539f-d87e-1dc18d911ea0

  • Base Type: nvidia::gxf::Allocator

Parameters

do_not_use_cuda_malloc_host

If enabled operator new will be used to allocate host memory instead of cudaMallocHost.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_BOOL

  • Default: True

nvidia::gxf::Tensor

A component which holds a single tensor.

  • Component ID: 377501d6-9abf-447c-a617-0114d4f33ab8

  • Defined in: gxf/std/tensor.hpp

nvidia::gxf::Timestamp

Holds message publishing and acquisition related timing information.

  • Component ID: d1095b10-5c90-4bbc-bc89-601134cb4e03

  • Defined in: gxf/std/timestamp.hpp

nvidia::gxf::Metric

Collects, aggregates, and evaluates metric data.

  • Component ID: f7cef803-5beb-46f1-186a-05d3919842ac

  • Base Type: nvidia::gxf::Component

Parameters

aggregation_policy

Aggregation policy used to aggregate individual metric samples. Choices:{mean, min, max}.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_STRING


lower_threshold

Lower threshold of the metric’s expected range.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_FLOAT64


upper_threshold

Upper threshold of the metric’s expected range.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_FLOAT64

nvidia::gxf::JobStatistics

Collects runtime statistics.

  • Component ID: 2093b91a-7c82-11eb-a92b-3f1304ecc959

  • Base Type: nvidia::gxf::Component

Parameters

clock

The clock component instance to retrieve time from.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Clock


codelet_statistics

If set to true, JobStatistics component will collect performance statistics related to codelets.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_BOOL


json_file_path

If provided, all the collected performance statistics data will be dumped into a json file.

  • Flags: GXF_PARAMETER_FLAGS_OPTIONAL

  • Type: GXF_PARAMETER_TYPE_STRING

nvidia::gxf::Broadcast

Messages arrived on the input channel are distributed to all transmitters.

  • Component ID: 3daadb31-0bca-47e5-9924-342b9984a014

  • Base Type: nvidia::gxf::Codelet

Parameters

mode

The broadcast mode. Can be Broadcast or RoundRobin.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_CUSTOM


source

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver

nvidia::gxf::Gather

All messages arriving on any input channel are published on the single output channel.

  • Component ID: 85f64c84-8236-4035-9b9a-3843a6a2026f

  • Base Type: nvidia::gxf::Codelet

Parameters

sink

The output channel for gathered messages.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Transmitter


tick_source_limit

Maximum number of messages to take from each source in one tick. 0 means no limit.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT64

nvidia::gxf::TensorCopier

Copies tensor either from host to device or from device to host.

  • Component ID: c07680f4-75b3-189b-8886-4b5e448e7bb6

  • Base Type: nvidia::gxf::Codelet

Parameters

allocator

Memory allocator for tensor data

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Allocator


mode

Configuration to select what tensors to copy:

  1. kCopyToDevice (0) - copies to device memory, ignores device allocation

  2. kCopyToHost (1) - copies to pinned host memory, ignores host allocation

  3. kCopyToSystem (2) - copies to system memory, ignores system allocation.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32

receiver

Receiver for incoming entities.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver


transmitter

Transmitter for outgoing entities.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Transmitter

nvidia::gxf::TimedThrottler

Publishes the received entity respecting the timestamp within the entity.

  • Component ID: ccf7729c-f62c-4250-5cf7-f4f3ec80454b

  • Base Type: nvidia::gxf::Codelet

Parameters

execution_clock

Clock on which the codelet is executed by the scheduler.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Clock


receiver

Channel to receive messages that need to be synchronized.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver


scheduling_term

Scheduling term for executing the codelet.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::TargetTimeSchedulingTerm


throttling_clock

Clock which the received entity timestamps are based on.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Clock


transmitter

Transmitter channel publishing messages at appropriate timesteps.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Transmitter

nvidia::gxf::Vault

Safely stores received entities for further processing.

  • Component ID: 1108cb8d-85e4-4303-ba02-d27406ee9e65

  • Base Type: nvidia::gxf::Codelet

Parameters

drop_waiting

If too many messages are waiting the oldest ones are dropped.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_BOOL


max_waiting_count

The maximum number of waiting messages. If exceeded the codelet will stop pulling messages out of the input queue.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT64


source

Receiver from which messages are taken and transferred to the vault.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver

nvidia::gxf::Subgraph

Helper component to import a subgraph.

  • Component ID: 576eedd7-7c3f-4d2f-8c38-8baa79a3d231

  • Base Type: nvidia::gxf::Component

Parameters

location

Yaml source of the subgraph.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_STRING

nvidia::gxf::EndOfStream

A component which represents end-of-stream notification.

  • Component ID: 8c42f7bf-7041-4626-9792-9eb20ce33cce

  • Defined in: gxf/std/eos.hpp

nvidia::gxf::Synchronization

Component to synchronize messages from multiple receivers based on the acq_time.

  • Component ID: f1cb80d6-e5ec-4dba-9f9e-b06b0def4443

  • Base Type: nvidia::gxf::Codelet

Parameters

inputs

All the inputs for synchronization. Number of inputs must match that of the outputs.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver


outputs

All the outputs for synchronization. Number of outputs must match that of the inputs.

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Transmitter

signed char

  • Component ID: 83905c6a-ca34-4f40-b474-cf2cde8274de

unsigned char

  • Component ID: d4299e15-0006-d0bf-8cbd-9b743575e155

short int

  • Component ID: 9e1dde79-3550-307d-e81a-b864890b3685

short unsigned int

  • Component ID: 958cbdef-b505-bcc7-8a43-dc4b23f8cead

int

  • Component ID: b557ec7f-49a5-08f7-a35e-086e9d1ea767

unsigned int

  • Component ID: d5506b68-5c86-fedb-a2a2-a7bae38ff3ef

long int

  • Component ID: c611627b-6393-365f-d234-1f26bfa8d28f

long unsigned int

  • Component ID: c4385f5b-6e25-01d9-d7b5-6e7cadc704e8

float

  • Component ID: a81bf295-421f-49ef-f24a-f59e9ea0d5d6

double

  • Component ID: d57cee59-686f-e26d-95be-659c126b02ea

bool

  • Component ID: c02f9e93-d01b-1d29-f523-78d2a9195128

Python Bindings

Python binings for the standard extension’s components enable them to be used in python codelets. These python bindings are present in gxf.std and contain the following:

Clock

from gxf.std import Clock

The python binding for nvidia::gxf::Clock.

Methods:

time()

  • Returns: float The current time of the clock. Time is measured in seconds.

timestamp()

  • Returns: float The current timestamp of the clock. Timestamps are measured in nanoseconds.

Receiver

from gxf.std import Receiver

The python binding for nvidia::gxf::Receiver component which connects with a transmitter and can receive a message.

gxf.std.Receiver has the following methods:

receive()

  • Returns: gxf.std.Entity - Receives the next entity from the main stage.

sync()

  • Returns: None - Moves entities which recently arrived to the main stage.

back_size()

  • Returns: Integer - The total number of entities which have recently arrived but are not yet on the main stage.

size()

  • Returns: Integer - The total number of entities present in the main stage.

capacity()

  • Returns: Integer - The total number of entities the receiver can hold.

Transmitter

from gxf.std import Transmitter

The python binding for nvidia::gxf::Transmitter component which connects with a receiver and can transmit a message.

gxf.std.Transmitter has the following methods:

publish(message, acqtime):

Value

Return Type

Description

message

gxf.std.Entity

A message entity.

acqtime

Integer

Acqusition time of the message

  • Returns: String - Error message or Success.

back_size()

  • Returns: Integer - The total number of entities which have recently arrived but are not yet on the main stage.

size()

  • Returns: Integer - The total number of entities present in the main stage.

capacity()

  • Returns: Integer - The total number of entities the transmitter can hold.

PrimitiveType

from gxf.std import PrimitiveType

A python enum which defines types of data types.

Value

Description

kCustom

Custom data type

kInt8

Signed Integer 8 bytes

kUnsigned8

Unsigned Interger 8 bytes

kInt16

Signed Integer 16 bytes

kUnsigned16

Unsigned Integer 16 bytes

kInt32

Signed Integer 32 bytes

kUnsigned32

Unsigned Integer 32 bytes

kInt64

Signed Integer 64 bytes

kUnsigned64

Unsigned Integer 64 bytes

kFloat32

Floating Point 32 bytes

kFloat64

Floating point 64 bytes

Shape

from gxf.std import Shape

Shape of the tensor data.

Shape(dims)

Parameter

Description

dims

List A list containing the size of each dimension

  • Returns: gxf.std.Shape with set values.

rank()

  • Returns: Integer Rank of the tensor Dimension

size()

  • Returns: Integer Number of elements in the tensor

dimension(index)

  • Returns: Integer Size of the dimension at index

MemoryStorageType

from gxf.std import MemoryStorageType

A python enum which defines where the data is stored.

Value

Description

kHost

Data is stored on Host

kDevice

Data is stored on the Device (GPU)

kSystem

Data is stored on the System (TODO(sl)

Tensor

from gxf.std import Tensor

The python binding for nvidia::gxf::Tensor component which contains the tensor data which can be attached to messages.

gxf.std.Tensor has the following methods:

get_tensor_info():

  • Returns: Tuple

Tuple Values

Return Type

Description

buffer pointer

pybind11 object

Containing the buffer pointer

size

Integer

Size of one element

dtype

String

Description of the type of data

rank

Integer

Rank of the tensor

dims

Integer

Array of size rank containing the dimensions

stride

Integer

Array of size rank containing the strides for each dimension

shape()

  • Returns: gxf.std.Shape - Shape of the tensor

element_type()

  • Returns: gxf.std.PrimitiveType - Element type of the data.

storage_type()

  • Returns: gxf.std.MemoryStorageType - The device on which the data is stored.

reshape_custom(shape, element_type, bytes_per_element, strides, storage_type, allocator)

Parameter

Return Type

Description

shape

gxf.std.Shape

Shape of the tensor

element_type

PrimitiveType

Type of elements

bytes_per_element

Integer

Size of individual element

strides

Integer

Array of size rank containing the strides for each dimension

storage_type

gxf.std.MemoryStorageType

The deive on which the data is stored.

allocator

gxf.std.Allocator

Allocator to provide memory for the tensor data.

  • Returns: None

gxf.std.add_to_entity(entity, name=nullptr)

Parameter

Return Type

Description

entity

gxf.std.Entity

A message entity to attach the tensor

name

String

Name of the tensor

  • Returns: gxf.std.Tensor Added Tensor

gxf.std.get_from_entity(entity, name=nullptr)

Parameter

Return Type

Description

entity

gxf.std.Entity

A message entity to extract the tensor

name

String

Name of the tensor

  • Returns: gxf.std.Tensor Tensor, if present. Throws value_error if not.

find_all_from_entity(entity)

Parameter

Return Type

Description

entity

gxf.std.Entity

A message entity to extract all the tensors

  • Returns: List(Tensors) A list of tensors present in the message entity.

Allocator

from gxf.std import Allocator

The python binding for nvidia::gxf::Allocator to allocate memory on device, host, or system needed for gxf.std.Tensor.custom_reshape().