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_offsetinitialize() 为单位的时间。否则,时钟时间为 initial_time_offsetinitialize() 为单位。

  • 标志: 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 连接地址。

  1. 监听远程或本地 GraphWorker,每个 GraphWorker 运行一个或多个段。

  2. 注册所有 GraphWorker,直到发现所有段

  3. 解析每段对之间的连接地址

  4. 通过管理段的 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

调度程序用于定义时间流的时钟。典型选择是 RealtimeClockManualClock

  • 标志: 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

调度程序用于定义时间流的时钟。典型选择是 RealtimeClockManualClock

  • 标志: 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

调度程序用于定义时间流的时钟。典型选择是 RealtimeClockManualClock

  • 标志: 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

用于选择要复制哪些张量的配置

  1. kCopyToDevice (0) - 复制到设备内存,忽略设备分配

  2. kCopyToHost (1) - 复制到pinned host内存,忽略主机分配

  3. 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

gxf.std.Entity

消息实体。

acqtime

Integer

消息的采集时间

  • 返回值: 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

List 包含每个维度大小的列表

  • 返回值: 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

Integer

一个元素的大小

dtype

String

数据类型描述

rank

Integer

张量的秩

dims

Integer

大小为 rank 的数组,包含维度

stride

Integer

大小为 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

gxf.std.Shape

张量的形状

element_type

PrimitiveType

元素类型

bytes_per_element

Integer

单个元素的大小

strides

Integer

大小为 rank 的数组,包含每个维度的步幅

storage_type

gxf.std.MemoryStorageType

数据存储的设备。

allocator

gxf.std.Allocator

为张量数据提供内存的分配器。

  • 返回值: None

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

参数

返回类型

描述

entity

gxf.std.Entity

要附加张量的消息实体

name

String

张量的名称

  • 返回值: gxf.std.Tensor 添加的张量

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

参数

返回类型

描述

entity

gxf.std.Entity

要从中提取张量的消息实体

name

String

张量的名称

  • 返回值: gxf.std.Tensor 张量(如果存在)。如果不存在,则抛出 value_error 错误。

find_all_from_entity(entity)

参数

返回类型

描述

entity

gxf.std.Entity

要提取所有张量的消息实体

  • 返回值: List(Tensors) 消息实体中存在的张量列表。

Allocator#

from gxf.std import Allocator

nvidia::gxf::Allocator 的 python 绑定,用于在设备、主机或系统上分配 gxf.std.Tensor.custom_reshape() 所需的内存。