StandardExtension#
Most commonly used interfaces and components in Gxf Core.
UUID: 8ec2d5d6-b5df-48bf-8dee-0252606fdd7e
Version: 2.6.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
nvidia::gxf::IPCServer#
Interface for a component which works as a API server to respond on remote requests.
Component ID: 00e6f23d-0bf6-4c1c-ada5-630c711d3be1
Base Type: nvidia::gxf::Component
Defined in: nvidia/gxf/ipc_server.hpp
nvidia::gxf::IPCClient#
Interface for a component which works as a API client to send remote requests. It’s the counterpart to IPCServer
Component ID: 6f3cf830-7628-49a6-b925-f94171b019da
Base Type: nvidia::gxf::Component
Defined in: nvidia/gxf/ipc_client.hpp
nvidia::gxf::ResourceBase#
A resource component base type.
Component ID: 76b9234d-5eac-4c65-b1a1-0306d3f354e5
Base Type: nvidia::gxf::Component
Defined in: nvidia/gxf/resources.hpp
nvidia::gxf::Controller#
Controls entities’ termination policy and tracks behavior status during execution.
Component ID: c8e80475-3c79-43a4-9083-eaf294b0600d
Base Type: nvidia::gxf::Component
Defined in: nvidia/gxf/controller.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::SyntheticClock#
A synthetic clock used to inject simulated time.
Component ID: 9a2bfd7b-2d84-79b4-bc71-f47eb53f28c8
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
Default: 0
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::NetworkRouter#
A router which sends transmitted messages to remote receivers.
Component ID: a1e6c5d5-947d-40fd-b248-117dddc9f0ae
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
Parameters#
enable_tick
The default initial condition for enabling tick.
Flags: GXF_PARAMETER_FLAGS_DYNAMIC
Type: GXF_PARAMETER_TYPE_BOOL
nvidia::gxf::BTSchedulingTerm#
A component which is used to control the execution of the behavior tree entities.
Component ID: 0161ca51-2fed-4a8c-8f24-67cf1b5e330a
Base Type: nvidia::gxf::SchedulingTerm
Parameters#
is_root
If entity is a root node
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_BOOL
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::MessageAvailableFrequencyThrottler#
A component which is used to execute an entity at specific frequency or sooner if there are a minimum number of incoming messages in its receivers.
Component ID: 5ae1d56c-a196-11ed-8759-ef34a33d45a6
Base Type: nvidia::gxf::SchedulingTerm
Parameters#
execution_frequency
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
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_CUSTOM
sampling_mode
The sampling method to use when checking for messages in receiver queues. Option: SumOfAll,PerReceiver
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_CUSTOM
min_sizes
The scheduling term permits execution if all given receivers have at least the given number of messages available in this list.
Flags: GXF_PARAMETER_FLAGS_OPTIONAL
Type: GXF_PARAMETER_TYPE_CUSTOM
min_sum
The scheduling term permits execution if the sum of message counts of all receivers have at least the given number of messages available.
Flags: GXF_PARAMETER_FLAGS_OPTIONAL
Type: GXF_PARAMETER_TYPE_UINT64
nvidia::gxf::MemoryAvailableSchedulingTerm#
A component waiting until a minimum amount of memory is available.
Component ID: f976d23a-8220-74e2-a5d9-04ed71b2454a
Base Type: nvidia::gxf::SchedulingTerm
Parameters#
allocator
The allocator to wait on.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::Allocator
min_bytes
The minimum number of bytes that must be available for the codelet to get scheduled. Exclusive with min_blocks.
Flags: GXF_PARAMETER_FLAGS_OPTIONAL
Type: GXF_PARAMETER_TYPE_UINT64
min_blocks
The minimum number of blocks that must be available for the codelet to get scheduled. On allocators that do not support block allocation, this behaves the same as min_bytes. Exclusive with min_bytes.
Flags: GXF_PARAMETER_FLAGS_OPTIONAL
Type: GXF_PARAMETER_TYPE_UINT64
nvidia::gxf::GraphWorker#
A GXF System component which governs the execution of one or multiple graph segments. The key ingredients are event based thread, IPC server, and IPC client. The graph segments can be provided by users via YAML config or C++ API.
Component ID: 54b88529-2c91-436b-83b6-7f5c10369354
Base Type: nvidia::gxf::GraphWorker
Parameters#
server
GXF IPC server to handle the service callbacks in GraphWorker. Example server implementation can be nvidia::gxf::HttpServer
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::IPCServer
client
GXF IPC client to communicate with the IPC server. Example client implementation can be nvidia::gxf::HttpIPCClient
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::IPCClient
graph-specs
A dictionary of graph specs that are executed by this GraphWorker. The schema for each entry is: {user_given_segment_name: {app-path: , parameter-path: , manifest-path: , severity: }}
Example:
graph-specs:
ucx_upstream:
app-path: gxf/ucx/tests/test_ping_ucx_tx.yaml
manifest-path: gxf/test/distributed/test_graph_worker_manifest.yaml
severity: 4
ucx_downstream:
app-path: gxf/ucx/tests/test_ping_ucx_rx.yaml
manifest-path: gxf/test/distributed/test_graph_worker_manifest.yaml
severity: 4
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_CUSTOM
driver-reconnection-times
How many times to try to reconnect the GraphDriver at startup. Abandon the execution after the last try.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_INT64
nvidia::gxf::GraphDriver#
A GXF System component which coordinates the execution of GraphWorker, resolving graph segments UCX connection addresses.
Listen to remote or local GraphWorkers that each runs one or more segments.
Register all GraphWorkers until all segments are discovered
Resolve connection address between each segment pair
Send result address to each target segment via GraphWorker that manages the segment
Component ID: 76ca3719-fcd1-4ae3-8e06-8ce161b0f881
Base Type: nvidia::gxf::GraphDriver
Parameters#
server
GXF IPC server to handle the service callbacks in GraphDriver. Example server implementation can be nvidia::gxf::HttpServer
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::IPCServer
client
GXF IPC client to communicate with the IPC server. Example client implementation can be nvidia::gxf::HttpIPCClient
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::IPCClient
connections
A dictionary of graph segment connections. A segment connection consists of source field and target field. The schema for each entry is: {Connections: [source: , target: ]} The schema for source and target is: user_given_segment_name.entity_name.queue_name
Example:
connections:
- source: ucx_upstream.tx.signal
target: ucx_downstream.rx.signal
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_CUSTOM
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::EpochScheduler#
A scheduler for running loads in externally managed threads.
Component ID: 3d175ab4-2e0d-11ec-8d3d-0242ac130003
Base Type: nvidia::gxf::Scheduler
Parameters#
clock
The clock used by the scheduler to check maximum time budget. Typical choice is a RealtimeClock
.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::Clock
nvidia::gxf::EventBasedScheduler#
A multi thread event based scheduler that executes codelets for maximum throughput.
Component ID: 99bef5a8-48bc-11ee-be56-0242ac120002
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_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
Default: True
worker_thread_number
Number of threads.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_INT64
Default: 1
thread_pool_allocation_auto
If enabled, only one thread pool will be created. If disabled, user should enumerate pools and priorities
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_BOOL
Default: True
stop_on_deadlock_timeout
Scheduler will wait this amount of time when stop_on_dead_lock indicates should stop. It will reset if a job comes in during the wait. Negative value means not stop on deadlock.
Flags: GXF_PARAMETER_FLAGS_OPTIONAL
Type: GXF_PARAMETER_TYPE_INT64
Default: 0
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::ThreadPool#
Component ID: 4025b68b-206b-4b3d-a088-f4805fdf8703
Base Type: nvidia::gxf::ResourceBase
Parameters#
initial_size
Initial number of worker threads in the pool.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_INT64
Default: 0
priority
Priority level for threads in the pool. Default is 0 (low). Can also be set to 1 (medium) or 2 (high).
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_INT64
Default: 0
nvidia::gxf::GPUDevice#
Component ID: 2036939f-a32a-43ee-83f8-826576d8f170
Base Type: nvidia::gxf::ResourceBase
Parameters#
dev_id
Create CUDA Stream on which device.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_INT32
Default: 0
nvidia::gxf::CPUThread#
Component ID: 34f46728-496d-4d8b-b9c9-c5a54de5d3a0
Base Type: nvidia::gxf::Component
Parameters#
pin_entity
Set the cpu_core to be pinned to a worker thread or not.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_BOOL
Default: false
nvidia::gxf::Forward#
Forwards incoming messages at the receiver to the transmitter.
Component ID: 97cee543-8fb5-4541-8ff7-589318187ec0
Base Type: nvidia::gxf::Codelet
Parameters#
in
The channel for incoming messages.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::Receiver
out
The channel for outgoing messages.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::Transmitter
nvidia::gxf::Topic#
Adds transmitters/receivers to a topic.
Component ID: 70529494-8bca-49ef-51bf-44b08ecf460b
Base Type: nvidia::gxf::Component
Parameters#
topic_name
Topic name.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_STRING
transmitters
Transmitters that will be added to this topic.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::Transmitter
receivers
Receivers that will be added to this topic.
Flags: GXF_PARAMETER_FLAGS_NONE
Type: GXF_PARAMETER_TYPE_HANDLE
Handle Type: nvidia::gxf::Receiver
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::MultiSourceTimestamp#
Holds timestamps from various sources.
Component ID: 872e77ec-bde8-11ed-afa1-0242ac120002
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:
kCopyToDevice (0) - copies to device memory, ignores device allocation
kCopyToHost (1) - copies to pinned host memory, ignores host allocation
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 |
|
A message entity. |
acqtime |
|
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 |
|
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 |
|
Size of one element |
dtype |
|
Description of the type of data |
rank |
|
Rank of the tensor |
dims |
|
Array of size rank containing the dimensions |
stride |
|
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 |
|
Shape of the tensor |
element_type |
|
Type of elements |
bytes_per_element |
|
Size of individual element |
strides |
|
Array of size rank containing the strides for each dimension |
storage_type |
|
The deive on which the data is stored. |
allocator |
|
Allocator to provide memory for the tensor data. |
Returns:
None
gxf.std.add_to_entity(entity, name=nullptr)
Parameter |
Return Type |
Description |
---|---|---|
entity |
|
A message entity to attach the tensor |
name |
|
Name of the tensor |
Returns:
gxf.std.Tensor
Added Tensor
gxf.std.get_from_entity(entity, name=nullptr)
Parameter |
Return Type |
Description |
---|---|---|
entity |
|
A message entity to extract the tensor |
name |
|
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 |
|
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().