StandardExtension#
Gxf Core 中最常用的接口和组件。
UUID: 8ec2d5d6-b5df-48bf-8dee-0252606fdd7e
版本: 2.6.0
作者: NVIDIA
许可证: LICENSE
接口#
nvidia::gxf::Codelet#
可执行以运行自定义代码的组件接口。
组件 ID: 5c6166fa-6eed-41e7-bbf0-bd48cd6e1014
基类型: nvidia::gxf::Component
定义于: gxf/std/codelet.hpp
nvidia::gxf::Clock#
用于提供时间的时钟组件接口。
组件 ID: 779e61c2-ae70-441d-a26c-8ca64b39f8e7
基类型: nvidia::gxf::Component
定义于: gxf/std/clock.hpp
nvidia::gxf::System#
作为应用程序运行周期一部分运行的系统组件接口。
组件 ID: d1febca1-80df-454e-a3f2-715f2b3c6e69
基类型: nvidia::gxf::Component
nvidia::gxf::Queue#
用于在队列中存储实体的接口。
组件 ID: 792151bf-3138-4603-a912-5ca91828dea8
基类型: nvidia::gxf::Component
定义于: gxf/std/queue.hpp
nvidia::gxf::Router#
用于路由实体消息进出的类接口。
组件 ID: 8b317aad-f55c-4c07-8520-8f66db92a19e
定义于: gxf/std/router.hpp
nvidia::gxf::Transmitter#
用于发布实体的接口。
组件 ID: c30cc60f-0db2-409d-92b6-b2db92e02cce
基类型: nvidia::gxf::Queue
定义于: gxf/std/transmitter.hpp
nvidia::gxf::Receiver#
用于接收实体的接口。
组件 ID: a47d2f62-245f-40fc-90b7-5dc78ff2437e
基类型: nvidia::gxf::Queue
定义于: gxf/std/receiver.hpp
nvidia::gxf::Scheduler#
一个简单的基于轮询的单线程调度器,用于执行代码小节。
组件 ID: f0103b75-d2e1-4d70-9b13-3fe5b40209be
基类型: nvidia::gxf::System
定义于: nvidia/gxf/system.hpp
nvidia::gxf::SchedulingTerm#
调度器使用的术语接口,用于确定实体中的代码小节是否准备好执行步骤。
组件 ID: 184d8e4e-086c-475a-903a-69d723f95d19
基类型: nvidia::gxf::Component
定义于: gxf/std/scheduling_term.hpp
nvidia::gxf::Allocator#
提供内存的分配和释放。
组件 ID: 3cdd82d0-2326-4867-8de2-d565dbe28e03
基类型: nvidia::gxf::Component
定义于: nvidia/gxf/allocator.hpp
nvidia::gxf::Monitor#
在执行期间监视实体。
组件 ID: 9ccf9421-b35b-8c79-e1f0-97dc23bd38ea
基类型: nvidia::gxf::Component
定义于: nvidia/gxf/monitor.hpp
nvidia::gxf::IPCServer#
作为 API 服务器工作以响应远程请求的组件接口。
组件 ID: 00e6f23d-0bf6-4c1c-ada5-630c711d3be1
基类型: nvidia::gxf::Component
定义于: nvidia/gxf/ipc_server.hpp
nvidia::gxf::IPCClient#
作为 API 客户端工作以发送远程请求的组件接口。它是 IPCServer 的对应方
组件 ID: 6f3cf830-7628-49a6-b925-f94171b019da
基类型: nvidia::gxf::Component
定义于: nvidia/gxf/ipc_client.hpp
nvidia::gxf::ResourceBase#
资源组件基类型。
组件 ID: 76b9234d-5eac-4c65-b1a1-0306d3f354e5
基类型: nvidia::gxf::Component
定义于: nvidia/gxf/resources.hpp
nvidia::gxf::Controller#
控制实体的终止策略并跟踪执行期间的行为状态。
组件 ID: c8e80475-3c79-43a4-9083-eaf294b0600d
基类型: nvidia::gxf::Component
定义于: nvidia/gxf/controller.hpp
组件#
nvidia::gxf::RealtimeClock#
一个基于系统稳定时钟运行的实时时钟。
组件 ID: 7b170b7b-cf1a-4f3f-997c-bfea25342381
基类型: nvidia::gxf::Clock
参数#
initial_time_offset
在手动更改时间刻度之前使用的初始时间偏移。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_FLOAT64
initial_time_scale
在手动更改时间刻度之前使用的初始时间刻度。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_FLOAT64
use_time_since_epoch
如果为 true,则时钟时间为 epoch
+ initial_time_offset
以 initialize()
为单位的时间。否则,时钟时间为 initial_time_offset
以 initialize()
为单位。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
nvidia::gxf::ManualClock#
一个手动时钟,需要手动进行仪器测量。
组件 ID: 52fa1f97-eba8-472a-a8ca-4cff1a2c440f
基类型: nvidia::gxf::Clock
参数#
initial_timestamp
时钟上的初始时间戳(以纳秒为单位)。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
nvidia::gxf::SyntheticClock#
一个用于注入模拟时间的合成时钟。
组件 ID: 9a2bfd7b-2d84-79b4-bc71-f47eb53f28c8
基类型: nvidia::gxf::Clock
参数#
initial_timestamp
时钟上的初始时间戳(以纳秒为单位)。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
默认值: 0
nvidia::gxf::SystemGroup#
系统组。
组件 ID: 3d23d470-0aed-41c6-ac92-685c1b5469a0
基类型: nvidia::gxf::System
nvidia::gxf::MessageRouter#
一个将传输的消息发送到接收器的路由器。
组件 ID: 84fd5d56-fda6-4937-0b3c-c283252553d8
基类型: nvidia::gxf::Router
nvidia::gxf::NetworkRouter#
一个将传输的消息发送到远程接收器的路由器。
组件 ID: a1e6c5d5-947d-40fd-b248-117dddc9f0ae
基类型: nvidia::gxf::Router
nvidia::gxf::RouterGroup#
路由器组。
组件 ID: ca64ee14-2280-4099-9f10-d4b501e09117
基类型: nvidia::gxf::Router
nvidia::gxf::DoubleBufferTransmitter#
一个发射器,它使用双缓冲队列,其中消息在发布后被推送到后台。
组件 ID: 0c3c0ec7-77f1-4389-aef1-6bae85bddc13
基类型: nvidia::gxf::Transmitter
参数#
capacity
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
默认值: 1
policy
0: 弹出, 1: 拒绝, 2: 故障。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
默认值: 2
nvidia::gxf::DoubleBufferReceiver#
一个接收器,它使用双缓冲队列,其中新消息首先被推送到后台。
组件 ID: ee45883d-bf84-4f99-8419-7c5e9deac6a5
基类型: nvidia::gxf::Receiver
参数#
capacity
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
默认值: 1
policy
0: 弹出, 1: 拒绝, 2: 故障
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
默认值: 2
nvidia::gxf::Connection#
一个在两个其他组件之间建立连接的组件。
组件 ID: cc71afae-5ede-47e9-b267-60a5c750a89a
基类型: nvidia::gxf::Component
参数#
source
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Transmitter
target
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
nvidia::gxf::PeriodicSchedulingTerm#
一个组件,用于指定应定期执行实体。
组件 ID: d392c98a-9b08-49b4-a422-d5fe6cd72e3e
基类型: nvidia::gxf::SchedulingTerm
参数#
recess_period
recess_period 指示实体再次被允许执行之前必须经过的最短时间量。该周期被指定为一个字符串,其中包含一个数字和一个(可选)单位。如果未给出单位,则假定该值以纳秒为单位。支持的单位为:Hz、s、ms。示例:10ms、10000000、0.2s、50Hz。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_STRING
nvidia::gxf::CountSchedulingTerm#
一个组件,用于指定实体应精确执行给定的次数。
组件 ID: f89da2e4-fddf-4aa2-9a80-1119ba3fde05
基类型: nvidia::gxf::SchedulingTerm
参数#
count
此术语将允许执行的总次数。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
nvidia::gxf::TargetTimeSchedulingTerm#
一个组件,其中需要在每次滴答后指定实体的下一次执行时间。
组件 ID: e4aaf5c3-2b10-4c9a-c463-ebf6084149bf
基类型: nvidia::gxf::SchedulingTerm
参数#
clock
用于定义目标时间的时钟。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
nvidia::gxf::DownstreamReceptiveSchedulingTerm#
一个组件,用于指定如果某个发射器的接收器可以接受新消息,则应执行实体。
组件 ID: 9de75119-8d0f-4819-9a71-2aeaefd23f71
基类型: nvidia::gxf::SchedulingTerm
参数#
min_size
如果连接到发射器的接收器在其后备缓冲区中至少有指定数量的可用槽,则该术语允许执行。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
transmitter
如果此发射器可以发布消息,即如果连接到此发射器的接收器可以接收消息,则该术语允许执行。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Transmitter
nvidia::gxf::MessageAvailableSchedulingTerm#
一个调度术语,用于指定当一组输入通道上的消息总数至少为给定数量的消息时,可以执行实体。
组件 ID: fe799e65-f78b-48eb-beb6-e73083a12d5b
基类型: nvidia::gxf::SchedulingTerm
参数#
front_stage_max_size
如果设置,则仅当前端阶段中的消息数不超过此计数时,调度术语才允许执行。例如,它可以与并非在每个滴答中都清除前端阶段的代码小节结合使用。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_UINT64
min_size
如果给定的接收器至少有给定数量的可用消息,则调度术语允许执行。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
receiver
如果此通道至少有给定数量的可用消息,则调度术语允许执行。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
nvidia::gxf::MultiMessageAvailableSchedulingTerm#
一个组件,用于指定当队列至少具有一定数量的元素时,应执行实体。
组件 ID: f15dbeaa-afd6-47a6-9ffc-7afd7e1b4c52
基类型: nvidia::gxf::SchedulingTerm
参数#
min_size
如果所有给定的接收器一起至少有给定数量的可用消息,则调度术语允许执行。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
receivers
如果给定的通道至少有给定数量的可用消息,则调度术语允许执行。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
nvidia::gxf::ExpiringMessageAvailableSchedulingTerm#
一个组件,它尝试在队列中等待指定数量的消息,最多等待指定时间。
组件 ID: eb22280c-76ff-11eb-b341-cf6b417c95c9
基类型: nvidia::gxf::SchedulingTerm
参数#
clock
从中获取时间的时钟。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
max_batch_size
要批量处理的最大消息数。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
max_delay_ns
从第一条消息开始等待的最大延迟,然后无论如何都要提交工作负载。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
receiver
要监视的接收器。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
nvidia::gxf::BooleanSchedulingTerm#
一个充当布尔 AND 项的组件,可用于控制实体的执行。
组件 ID: e07a0dc4-3908-4df8-8134-7ce38e60fbef
基类型: nvidia::gxf::SchedulingTerm
参数#
enable_tick
启用滴答的默认初始条件。
标志: GXF_PARAMETER_FLAGS_DYNAMIC
类型: GXF_PARAMETER_TYPE_BOOL
nvidia::gxf::BTSchedulingTerm#
一个组件,用于控制行为树实体的执行。
组件 ID: 0161ca51-2fed-4a8c-8f24-67cf1b5e330a
基类型: nvidia::gxf::SchedulingTerm
参数#
is_root
如果实体是根节点
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
nvidia::gxf::AsynchronousSchedulingTerm#
一个组件,用于告知实体依赖于异步事件才能执行。
组件 ID: 56be1662-ff63-4179-9200-3fcd8dc38673
基类型: nvidia::gxf::SchedulingTerm
nvidia::gxf::MessageAvailableFrequencyThrottler#
一个组件,用于以特定频率或更快地执行实体(如果其接收器中有最少数量的传入消息)。
组件 ID: 5ae1d56c-a196-11ed-8759-ef34a33d45a6
基类型: nvidia::gxf::SchedulingTerm
参数#
execution_frequency
recess_period 指示实体再次被允许执行之前必须经过的最短时间量。该周期被指定为一个字符串,其中包含一个数字和一个(可选)单位。如果未给出单位,则假定该值以纳秒为单位。支持的单位为:Hz、s、ms。示例:10ms、10000000、0.2s、50Hz
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_STRING
receivers
如果给定的通道至少有给定数量的可用消息,则调度术语允许执行。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_CUSTOM
sampling_mode
在检查接收器队列中的消息时要使用的采样方法。选项:SumOfAll、PerReceiver
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_CUSTOM
min_sizes
如果所有给定的接收器在此列表中至少有给定数量的可用消息,则调度术语允许执行。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_CUSTOM
min_sum
如果所有接收器的消息计数的总和至少有给定数量的可用消息,则调度术语允许执行。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_UINT64
nvidia::gxf::MemoryAvailableSchedulingTerm#
一个组件,等待直到至少有最小量的内存可用。
组件 ID: f976d23a-8220-74e2-a5d9-04ed71b2454a
基类型: nvidia::gxf::SchedulingTerm
参数#
allocator
要等待的分配器。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Allocator
min_bytes
代码小节要被调度,必须可用的最小字节数。与 min_blocks 互斥。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_UINT64
min_blocks
代码小节要被调度,必须可用的最小块数。在不支持块分配的分配器上,其行为与 min_bytes 相同。与 min_bytes 互斥。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_UINT64
nvidia::gxf::GraphWorker#
一个 GXF 系统组件,用于管理一个或多个图段的执行。关键要素是基于事件的线程、IPC 服务器和 IPC 客户端。图段可以由用户通过 YAML 配置或 C++ API 提供。
组件 ID: 54b88529-2c91-436b-83b6-7f5c10369354
基类型: nvidia::gxf::GraphWorker
参数#
server
GXF IPC 服务器,用于处理 GraphWorker 中的服务回调。示例服务器实现可以是 nvidia::gxf::HttpServer
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::IPCServer
client
GXF IPC 客户端,用于与 IPC 服务器通信。示例客户端实现可以是 nvidia::gxf::HttpIPCClient
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::IPCClient
graph-specs
由此 GraphWorker 执行的图规范字典。每个条目的架构为:{user_given_segment_name: {app-path: , parameter-path: , manifest-path: , severity: }}
示例
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
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_CUSTOM
driver-reconnection-times
在启动时尝试重新连接 GraphDriver 的次数。在最后一次尝试后放弃执行。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
nvidia::gxf::GraphDriver#
一个 GXF 系统组件,用于协调 GraphWorker 的执行,解析图段 UCX 连接地址。
监听远程或本地 GraphWorker,每个 GraphWorker 运行一个或多个段。
注册所有 GraphWorker,直到发现所有段
解析每段对之间的连接地址
通过管理段的 GraphWorker 将结果地址发送到每个目标段
组件 ID: 76ca3719-fcd1-4ae3-8e06-8ce161b0f881
基类型: nvidia::gxf::GraphDriver
参数#
server
GXF IPC 服务器,用于处理 GraphDriver 中的服务回调。示例服务器实现可以是 nvidia::gxf::HttpServer
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::IPCServer
client
GXF IPC 客户端,用于与 IPC 服务器通信。示例客户端实现可以是 nvidia::gxf::HttpIPCClient
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::IPCClient
connections
图段连接字典。段连接由源字段和目标字段组成。每个条目的架构为:{Connections: [source: , target: ]} 源和目标的架构为:user_given_segment_name.entity_name.queue_name
示例
connections:
- source: ucx_upstream.tx.signal
target: ucx_downstream.rx.signal
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_CUSTOM
nvidia::gxf::GreedyScheduler#
一个简单的基于轮询的单线程调度器,用于执行代码小节。
组件 ID: 869d30ca-a443-4619-b988-7a52e657f39b
基类型: nvidia::gxf::Scheduler
参数#
clock
调度程序用于定义时间流的时钟。典型选择是 RealtimeClock
或 ManualClock
。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
max_duration_ms
调度程序将执行的最大持续时间(以毫秒为单位)。如果未指定,则调度程序将运行直到完成所有工作。如果存在定期术语,则意味着应用程序将无限期运行。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_INT64
realtime
此参数已弃用。直接分配时钟。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_BOOL
stop_on_deadlock
如果启用,则当所有实体都处于等待状态但没有定期实体来打破僵局时,调度程序将停止。当调度条件可以由外部参与者更改时(例如,通过手动清除队列),应禁用此项。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
nvidia::gxf::MultiThreadScheduler#
一个多线程调度程序,用于执行代码小节以实现最大吞吐量。
组件 ID: de5e0646-7fa5-11eb-a5c4-330ebfa81bbf
基类型: nvidia::gxf::Scheduler
参数#
check_recession_perios_ms
当实体尚未准备好运行时,调度程序将等待的最大持续时间(以毫秒为单位)。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
clock
调度程序用于定义时间流的时钟。典型选择是 RealtimeClock
或 ManualClock
。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
max_duration_ms
调度程序将执行的最大持续时间(以毫秒为单位)。如果未指定,则调度程序将运行直到完成所有工作。如果存在定期术语,则意味着应用程序将无限期运行。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_INT64
stop_on_deadlock
如果启用,则当所有实体都处于等待状态但没有定期实体来打破僵局时,调度程序将停止。当调度条件可以由外部参与者更改时(例如,通过手动清除队列),应禁用此项。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
worker_thread_number
线程数。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
默认值: 1
nvidia::gxf::EpochScheduler#
一个调度程序,用于在外部管理的线程中运行负载。
组件 ID: 3d175ab4-2e0d-11ec-8d3d-0242ac130003
基类型: nvidia::gxf::Scheduler
参数#
clock
调度程序用于检查最大时间预算的时钟。典型选择是 RealtimeClock
。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
nvidia::gxf::EventBasedScheduler#
一个基于多线程事件的调度程序,用于执行代码小节以实现最大吞吐量。
组件 ID: 99bef5a8-48bc-11ee-be56-0242ac120002
基类型: nvidia::gxf::Scheduler
参数#
clock
调度程序用于定义时间流的时钟。典型选择是 RealtimeClock
或 ManualClock
。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
max_duration_ms
调度程序将执行的最大持续时间(以毫秒为单位)。如果未指定,则调度程序将运行直到完成所有工作。如果存在定期术语,则意味着应用程序将无限期运行。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_INT64
stop_on_deadlock
如果启用,则当所有实体都处于等待状态但没有定期实体来打破僵局时,调度程序将停止。当调度条件可以由外部参与者更改时(例如,通过手动清除队列),应禁用此项。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
默认值: True
worker_thread_number
线程数。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
默认值: 1
thread_pool_allocation_auto
如果启用,则只会创建一个线程池。如果禁用,用户应枚举池和优先级
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
默认值: True
stop_on_deadlock_timeout
当 stop_on_dead_lock 指示应停止时,调度程序将等待此时间量。如果在等待期间有作业进来,它将重置。负值表示不停止死锁。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_INT64
默认值: 0
nvidia::gxf::BlockMemoryPool#
一个内存池,它提供最大数量的等大小的内存块。
组件 ID: 92b627a3-5dd3-4c3c-976c-4700e8a3b96a
基类型: nvidia::gxf::Allocator
参数#
block_size
内存块的大小(以字节为单位)。只有当分配请求适合一个块时,才能满足分配请求。如果请求的内存较少,仍然会发出一个完整的块。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
do_not_use_cuda_malloc_host
如果启用,将使用运算符 new 来分配主机内存,而不是 cudaMallocHost
。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
默认值: True
num_blocks
池分配的总块数。如果请求更多块,分配请求将失败。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
storage_type
此分配器使用的内存存储类型。可以是 kHost (0) 或 kDevice (1) 或 kSystem (2)。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT32
默认值: 0
nvidia::gxf::UnboundedAllocator#
使用无上限动态内存分配的分配器。
组件 ID: c3951b16-a01c-539f-d87e-1dc18d911ea0
基类型: nvidia::gxf::Allocator
参数#
do_not_use_cuda_malloc_host
如果启用,将使用运算符 new 来分配主机内存,而不是 cudaMallocHost
。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
默认值: True
nvidia::gxf::ThreadPool#
组件 ID: 4025b68b-206b-4b3d-a088-f4805fdf8703
基类型: nvidia::gxf::ResourceBase
参数#
initial_size
池中工作线程的初始数量。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
默认值: 0
priority
池中线程的优先级。默认值为 0(低)。也可以设置为 1(中)或 2(高)。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
默认值: 0
nvidia::gxf::GPUDevice#
组件 ID: 2036939f-a32a-43ee-83f8-826576d8f170
基类型: nvidia::gxf::ResourceBase
参数#
dev_id
在其上创建 CUDA Stream 的设备。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT32
默认值: 0
nvidia::gxf::CPUThread#
组件 ID: 34f46728-496d-4d8b-b9c9-c5a54de5d3a0
基类型: nvidia::gxf::Component
参数#
pin_entity
设置 cpu_core 是否要绑定到工作线程。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
默认值: false
nvidia::gxf::Forward#
将接收器上的传入消息转发到发射器。
组件 ID: 97cee543-8fb5-4541-8ff7-589318187ec0
基类型: nvidia::gxf::Codelet
参数#
in
传入消息的通道。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
out
传出消息的通道。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Transmitter
nvidia::gxf::Topic#
将发射器/接收器添加到主题。
组件 ID: 70529494-8bca-49ef-51bf-44b08ecf460b
基类型: nvidia::gxf::Component
参数#
topic_name
主题名称。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_STRING
transmitters
将添加到此主题的发射器。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Transmitter
receivers
Receivers that will be added to this topic.
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
nvidia::gxf::Tensor#
一个组件,用于保存单个张量。
组件 ID: 377501d6-9abf-447c-a617-0114d4f33ab8
定义于: gxf/std/tensor.hpp
nvidia::gxf::Timestamp#
保存消息发布和采集相关的计时信息。
组件 ID: d1095b10-5c90-4bbc-bc89-601134cb4e03
定义于: gxf/std/timestamp.hpp
nvidia::gxf::MultiSourceTimestamp#
保存来自各种来源的时间戳。
组件 ID: 872e77ec-bde8-11ed-afa1-0242ac120002
定义于: gxf/std/timestamp.hpp
nvidia::gxf::Metric#
收集、聚合和评估指标数据。
组件 ID: f7cef803-5beb-46f1-186a-05d3919842ac
基类型: nvidia::gxf::Component
参数#
aggregation_policy
用于聚合单个指标样本的聚合策略。选择:{mean, min, max}。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_STRING
lower_threshold
指标预期范围的下限阈值。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_FLOAT64
upper_threshold
指标预期范围的上限阈值。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_FLOAT64
nvidia::gxf::JobStatistics#
收集运行时统计信息。
组件 ID: 2093b91a-7c82-11eb-a92b-3f1304ecc959
基类型: nvidia::gxf::Component
参数#
clock
从中检索时间的时钟组件实例。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
codelet_statistics
如果设置为 true,则 JobStatistics 组件将收集与代码小节相关的性能统计信息。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_BOOL
json_file_path
如果提供,所有收集的性能统计数据都将转储到 json 文件中。
标志: GXF_PARAMETER_FLAGS_OPTIONAL
类型: GXF_PARAMETER_TYPE_STRING
nvidia::gxf::Broadcast#
在输入通道上到达的消息将分发到所有发射器。
组件 ID: 3daadb31-0bca-47e5-9924-342b9984a014
基类型: nvidia::gxf::Codelet
参数#
mode
广播模式。可以是广播或轮询。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_CUSTOM
source
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
nvidia::gxf::Gather#
在任何输入通道上到达的所有消息都将发布在单个输出通道上。
组件 ID: 85f64c84-8236-4035-9b9a-3843a6a2026f
基类型: nvidia::gxf::Codelet
参数#
sink
收集的消息的输出通道。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Transmitter
tick_source_limit
每个时钟周期从每个源获取的最大消息数。0 表示没有限制。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT64
nvidia::gxf::TensorCopier#
将张量从主机复制到设备,或从设备复制到主机。
组件 ID: c07680f4-75b3-189b-8886-4b5e448e7bb6
基类型: nvidia::gxf::Codelet
参数#
allocator
用于张量数据的内存分配器
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Allocator
mode
用于选择要复制哪些张量的配置
kCopyToDevice (0) - 复制到设备内存,忽略设备分配
kCopyToHost (1) - 复制到pinned host内存,忽略主机分配
kCopyToSystem (2) - 复制到系统内存,忽略系统分配。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_INT32
receiver
用于接收传入实体的接收器。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
transmitter
用于发送传出实体的发送器。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Transmitter
nvidia::gxf::TimedThrottler#
发布接收到的实体,并遵守实体内的时间戳。
组件 ID: ccf7729c-f62c-4250-5cf7-f4f3ec80454b
基类型: nvidia::gxf::Codelet
参数#
execution_clock
调度器在其上执行 codelet 的时钟。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
receiver
用于接收需要同步的消息的通道。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
scheduling_term
用于执行 codelet 的调度项。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::TargetTimeSchedulingTerm
throttling_clock
接收到的实体时间戳所基于的时钟。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Clock
transmitter
在适当的时间步发布消息的发送器通道。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Transmitter
nvidia::gxf::Vault#
安全地存储接收到的实体以供进一步处理。
组件 ID: 1108cb8d-85e4-4303-ba02-d27406ee9e65
基类型: nvidia::gxf::Codelet
参数#
drop_waiting
如果等待的消息过多,则会丢弃最旧的消息。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_BOOL
max_waiting_count
等待消息的最大数量。如果超过此数量,codelet 将停止从输入队列中拉取消息。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_UINT64
source
从中获取消息并传输到 vault 的接收器。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
nvidia::gxf::Subgraph#
用于导入子图的辅助组件。
组件 ID: 576eedd7-7c3f-4d2f-8c38-8baa79a3d231
基类型: nvidia::gxf::Component
参数#
location
Yaml
子图的来源。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_STRING
nvidia::gxf::EndOfStream#
表示流结束通知的组件。
组件 ID: 8c42f7bf-7041-4626-9792-9eb20ce33cce
定义于: gxf/std/eos.hpp
nvidia::gxf::Synchronization#
用于基于 acq_time
同步来自多个接收器的消息的组件。
组件 ID: f1cb80d6-e5ec-4dba-9f9e-b06b0def4443
基类型: nvidia::gxf::Codelet
参数#
inputs
用于同步的所有输入。输入的数量必须与输出的数量匹配。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Receiver
outputs
用于同步的所有输出。输出的数量必须与输入的数量匹配。
标志: GXF_PARAMETER_FLAGS_NONE
类型: GXF_PARAMETER_TYPE_HANDLE
句柄类型: nvidia::gxf::Transmitter
signed char#
组件 ID: 83905c6a-ca34-4f40-b474-cf2cde8274de
unsigned char#
组件 ID: d4299e15-0006-d0bf-8cbd-9b743575e155
short int#
组件 ID: 9e1dde79-3550-307d-e81a-b864890b3685
short unsigned int#
组件 ID: 958cbdef-b505-bcc7-8a43-dc4b23f8cead
int#
组件 ID: b557ec7f-49a5-08f7-a35e-086e9d1ea767
unsigned int#
组件 ID: d5506b68-5c86-fedb-a2a2-a7bae38ff3ef
long int#
组件 ID: c611627b-6393-365f-d234-1f26bfa8d28f
long unsigned int#
组件 ID: c4385f5b-6e25-01d9-d7b5-6e7cadc704e8
float#
组件 ID: a81bf295-421f-49ef-f24a-f59e9ea0d5d6
double#
组件 ID: d57cee59-686f-e26d-95be-659c126b02ea
bool#
组件 ID: c02f9e93-d01b-1d29-f523-78d2a9195128
Python 绑定#
标准扩展组件的 Python 绑定使其能够在 python codelet 中使用。这些 python 绑定存在于 gxf.std
中,并包含以下内容
Clock#
from gxf.std import Clock
nvidia::gxf::Clock
的 python 绑定。
方法
time()
返回值: float 时钟的当前时间。时间以秒为单位。
timestamp()
返回值: float 时钟的当前时间戳。时间戳以纳秒为单位。
Receiver#
from gxf.std import Receiver
nvidia::gxf::Receiver
组件的 python 绑定,该组件与发送器连接并可以接收消息。
gxf.std.Receiver
有以下方法
receive()
返回值:
gxf.std.Entity
- 从主阶段接收下一个实体。
sync()
返回值:
None
- 将最近到达的实体移动到主阶段。
back_size()
返回值:
Integer
- 最近到达但尚未进入主阶段的实体总数。
size()
返回值:
Integer
- 主阶段中存在的实体总数。
capacity()
返回值:
Integer
- 接收器可以容纳的实体总数。
Transmitter#
from gxf.std import Transmitter
nvidia::gxf::Transmitter
组件的 python 绑定,该组件与接收器连接并可以发送消息。
gxf.std.Transmitter
有以下方法
publish(message, acqtime)
:
值 |
返回类型 |
描述 |
---|---|---|
message |
|
消息实体。 |
acqtime |
|
消息的采集时间 |
返回值:
String
- 错误消息或成功。
back_size()
返回值:
Integer
- 最近到达但尚未进入主阶段的实体总数。
size()
返回值:
Integer
- 主阶段中存在的实体总数。
capacity()
返回值:
Integer
- 发送器可以容纳的实体总数。
PrimitiveType#
from gxf.std import PrimitiveType
一个 python 枚举,用于定义数据类型。
值 |
描述 |
---|---|
kCustom |
自定义数据类型 |
kInt8 |
有符号整数 8 字节 |
kUnsigned8 |
无符号整数 8 字节 |
kInt16 |
有符号整数 16 字节 |
kUnsigned16 |
无符号整数 16 字节 |
kInt32 |
有符号整数 32 字节 |
kUnsigned32 |
无符号整数 32 字节 |
kInt64 |
有符号整数 64 字节 |
kUnsigned64 |
无符号整数 64 字节 |
kFloat32 |
浮点数 32 字节 |
kFloat64 |
浮点数 64 字节 |
Shape#
from gxf.std import Shape
张量数据的形状。
Shape(dims)
参数 |
描述 |
---|---|
dims |
|
返回值:
gxf.std.Shape
具有设定值的 Shape。
rank()
返回值:
Integer
张量维度的秩
size()
返回值:
Integer
张量中的元素数量
dimension(index)
返回值:
Integer
索引处维度的大小
MemoryStorageType#
from gxf.std import MemoryStorageType
一个 python 枚举,用于定义数据存储的位置。
值 |
描述 |
---|---|
kHost |
数据存储在主机上 |
kDevice |
数据存储在设备 (GPU) 上 |
kSystem |
数据存储在系统上 (TODO(sl) |
Tensor#
from gxf.std import Tensor
nvidia::gxf::Tensor
组件的 python 绑定,该组件包含可以附加到消息的张量数据。
gxf.std.Tensor
有以下方法
get_tensor_info()
:
返回值: 元组
元组值 |
返回类型 |
描述 |
---|---|---|
buffer pointer |
pybind11 对象 |
包含缓冲区指针 |
size |
|
一个元素的大小 |
dtype |
|
数据类型描述 |
rank |
|
张量的秩 |
dims |
|
大小为 rank 的数组,包含维度 |
stride |
|
大小为 rank 的数组,包含每个维度的步幅 |
shape()
返回值:
gxf.std.Shape
- 张量的形状
element_type()
返回值:
gxf.std.PrimitiveType
- 数据的元素类型。
storage_type()
返回值:
gxf.std.MemoryStorageType
- 存储数据的设备。
reshape_custom(shape, element_type, bytes_per_element, strides, storage_type, allocator)
参数 |
返回类型 |
描述 |
---|---|---|
shape |
|
张量的形状 |
element_type |
|
元素类型 |
bytes_per_element |
|
单个元素的大小 |
strides |
|
大小为 rank 的数组,包含每个维度的步幅 |
storage_type |
|
数据存储的设备。 |
allocator |
|
为张量数据提供内存的分配器。 |
返回值:
None
gxf.std.add_to_entity(entity, name=nullptr)
参数 |
返回类型 |
描述 |
---|---|---|
entity |
|
要附加张量的消息实体 |
name |
|
张量的名称 |
返回值:
gxf.std.Tensor
添加的张量
gxf.std.get_from_entity(entity, name=nullptr)
参数 |
返回类型 |
描述 |
---|---|---|
entity |
|
要从中提取张量的消息实体 |
name |
|
张量的名称 |
返回值:
gxf.std.Tensor
张量(如果存在)。如果不存在,则抛出 value_error 错误。
find_all_from_entity(entity)
参数 |
返回类型 |
描述 |
---|---|---|
entity |
|
要提取所有张量的消息实体 |
返回值:
List(Tensors)
消息实体中存在的张量列表。
Allocator#
from gxf.std import Allocator
nvidia::gxf::Allocator
的 python 绑定,用于在设备、主机或系统上分配 gxf.std.Tensor.custom_reshape() 所需的内存。