DOCA DPA 执行单元管理工具
本文档介绍 DPA 执行单元 (EU) 管理工具 dpaeumgmt
。
未来版本将支持执行单元分区。
下表介绍理解本文档的重要术语
术语 | 定义 |
DPA | 数据路径加速器;一种旨在加速数据路径操作的辅助处理器。 |
DPA 分区管理器 | 能够控制整个系统 EU 的 PCIe 设备功能。在 NVIDIA® BlueField®-3 上,它是 ECPF。DPA 分区管理器默认与默认分区关联。 |
EU | 硬件执行单元;一种逻辑 DPA 处理单元。 |
EU 组 | 可以使用 |
EU 对象 | EU 分区或 EU 组。 |
EU 分区 | 可以使用 只有当分区被创建并与其他 vHCA 关联时,它们才能使用硬件资源并执行 DPA 软件线程。 |
EU 亲和性 | DPA 线程与 DPA EU 配对的方法。DPA 支持三种类型的亲和性
|
DPA EU 管理工具可以在主机或目标 DPU 上运行,并允许用户管理 DPA 的 EU,EU 是 DPA 的基本资源。该工具支持 EU 的资源控制,以在使用 DOCA FlexIO SDK API 之前优化 DPA 的计算资源使用率。
如果没有 EU 分配,DPA 软件线程将无法访问硬件管道/CPU 时间资源,因此无法执行。
dpaeumgmt
主要用于以下用途
在 DPA EU 上使用
strict
亲和性运行 DPA 软件线程(即,仅使用特定的预选 EU 运行 DPA 线程)。为此,dpaeumgmt
提供了一个选项来查询允许使用的最大 EU ID。允许 DPA 软件线程从 EU 组中的 DPA EU 上运行
一旦创建 EU 组,就会为其分配 EU 的子集。
dpaeumgmt
提供一个 ID 给创建的组,该 ID 可用于使用group
亲和性运行 DPA 应用程序,其中亲和性 ID 将与该组的 ID 相同。
EU 分区管理 - 管理 EU 分区的功能。
当软件堆栈希望使用 group
亲和性类型运行 DPA 线程时,将使用该组集合中可用的 EU 之一进行执行。
只有当有可用的 EU 时,DPA 线程才可以执行。
启动时,会自动创建一个默认 EU 分区。默认 EU 分区拥有所有系统的 EU。DPA 分区管理器功能是唯一属于它的功能,因此可以控制系统的所有资源。
当使用 none
亲和性运行 DPA 线程时,为 DPA 线程选择运行的 EU 来自分区的 EU 池。即,来自仅属于 DPA 设备当前分区且未分配给任何 EU 组(在当前分区上)的 EU。如果上述 EU 组(即,分区的默认 EU 组)为空,则 DPA 线程将无法使用 none
亲和性运行。
dpaeumgmt
允许用户创建、销毁和查询 EU 对象。
dpaeumgmt
工具必须以 root 权限运行,并且用户必须在使用它之前执行 sudo mst start
。
顶层 dpaeumgmt
命令语法
Usage: dpaeumgmt {help|version|eu_group|partition}
Type "./dpaeumgmt help" for detailed help
通用命令
打印工具的基本用法信息
dpaeumgmt -h
打印工具命令的详细帮助菜单
dpaeumgmt help
打印版本信息
dpaeumgmt version
执行单元组命令
以下小节中列出的命令用于配置 EU 组。
EU 组命令标志和参数
下表列出了与 eu_group
命令相关的标志。标志的参数必须在引号内使用(如果超过一个),并且没有额外的空格。
短选项 | 长选项 | 描述 |
|
| 打印基本工具用法信息。 |
|
| 设备接口名称 (MST/PCI/RDMA/NET)。 |
|
| 为 EU 组或分区分配的 EU 范围。参数必须在引号内提供。 |
|
| 组 ID 号。 此数字必须为正数,且小于或等于 |
|
| 组名称;15 个字符的字符串。参数必须在引号内提供。 |
|
| 完整路径或仅文件名(如果它与可执行文件目录( |
EU 组信息
打印有关 EU 组相关 DPA 资源的信息
dpaeumgmt eu_group info --dpa_device <device>
示例
$ sudo ./dpaeumgmt eu_group info -d mlx5_0
Max number of DPA EU groups: 15
Max number of DPA EUs in one DPA EU group: 190
Max DPA EU number available to use: 190
Max EU group name length is 15 chars
创建 EU 组
在提供的设备的分区上创建具有指定名称的 EU 组。范围指示的 EU 取自分区的 DPA 设备 EU 分区。
dpaeumgmt eu_group create --dpa_device <device> --name_group <name> --range_eus <range>
示例
$ sudo ./dpaeumgmt eu_group create -d mlx5_0 -n "HG hello world1" -r "6-8,16,55,70"
Group created successfully-
EU group ID: 1
EU group name: HG hello world
Member EUs are: 6-8,16,55,70
成功创建 EU 组后,用户可以使用 group
亲和性运行 DPA 线程,并将亲和性类型设置为组的 ID。
销毁 EU 组
销毁设备分区上存在的 EU 组,可以使用提供的组名称或 ID。
dpaeumgmt eu_group destroy --dpa_device <device> [--name_group <name> | --id_group <id>]
示例
$ sudo ./dpaeumgmt eu_group destroy -d mlx5_0 -g 1
Group with group id: 1, was destroyed successfully
查询 EU 组
查询驻留在提供的设备分区上的 EU 组。如果使用可选参数之一,则命令仅查询特定组并在其存在时打印它
dpaeumgmt eu_group query --dpa_device <device> [--name_group <name> | --id_group <id>]
示例
$ sudo ./dpaeumgmt eu_group query -d mlx5_0
1) EU group ID: 1
EU group name: HG hello world
Member EUs are: 6-8,16,55,70
In total there are 1 EU groups configured.
更多选项
$ sudo ./dpaeumgmt eu_group query -d mlx5_0 -n "HG hello world"
$ sudo ./dpaeumgmt eu_group query -d mlx5_0 -g 1
应用 EU 组
应用文件中提供的设备分区上的 EU 组
dpaeumgmt eu_group apply --dpa_device <device> --file_groups <file>
文件格式示例
{
"eu_groups": [
{ "name": "hg1", "range": "178-180"},
{ "name": "hg2", "range": "2-10"}
]
}
该命令删除 DPA 设备所属 EU 分区上定义的所有先前 EU 组,并应用文件中的组。
示例
$ sudo ./dpaeumgmt eu_group apply -d mlx5_0 --file_groups example.json
1) EU group ID: 1
EU group name: hg1
Member EUs are: 178-180
1) EU group ID: 2
EU group name: hg2
Member EUs are: 2-10
In total there are 2 EU groups configured.
EU 分区命令
以下小节中列出的命令用于配置 EU 分区。
EU 分区命令标志和参数
下表列出了与 EU partition
命令相关的标志。标志的参数必须在引号内使用(如果超过一个),并且没有额外的空格。
短选项 | 长选项 | 描述 |
|
| 打印基本工具用法信息。 |
|
| 设备接口名称 (MST/PCI/RDMA/NET)。 |
|
| 为 EU 组或分区分配的 EU 范围。参数必须在引号内提供。 |
|
| 分区 ID 号。 此数字必须为正数,且小于或等于 |
|
| 要与分区关联的 vHCA ID。参数必须在引号内提供。 |
|
| 在创建分区时为分区保留的 EU 组数。 |
EU 分区信息
打印 EU 分区的相关 DPA 资源
dpaeumgmt partition info --dpa_device <device>
示例
$ sudo ./dpaeumgmt partition info -d mlx5_0
Max number of DPA EU partitions: 15
Max number of VHCAs associated with a single partition: 32
Max number of DPA EU groups: 15
Note- an allocation of a partition consumes from the number of DPA EU *groups* available to create
Max DPA EU number available to use: 190
创建 EU 分区
在 DPA 设备上创建 EU 分区
dpaeumgmt partition create --dpa_device <device> --vhca_list <id_list> --range_eus <range> --max_num_eu_group <max_num>
示例
$ sudo ./dpaeumgmt partition create -d mlx5_0 -v 1 -r 10-20 -m 2
Partition created successfully-
EU Partition ID: 1
Maximal number of groups: 2
The partition has a total of 1 associated VHCA IDs, namely: 1
Partition's member EUs are: 10-20
销毁 EU 分区
销毁设备分区上存在的 EU 分区
dpaeumgmt partition destroy --dpa_device <device> --id_partition <id>
示例
$ sudo ./dpaeumgmt partition destroy -d mlx5_0 -p 1
Partition with partition id: 1, was destroyed successfully
查询 EU 分区
查询驻留在提供的设备分区上的 EU 分区,并在分区存在时打印出来
dpaeumgmt partition query --dpa_device <device> [--id_partition <id>]
示例
$ sudo ./dpaeumgmt partition query -d mlx5_0 -p 1
EU Partition ID: 1
Maximal number of groups: 2
The partition has a total of 1 associated VHCA IDs, namely: 1
Partition's member EUs are: 10-20
更多选项
$ sudo ./dpaeumgmt partition query -d mlx5_0
下图说明了 vHCA 对分区的所有权和控制权,以及哪些 vHCA 对分区拥有声明权(即可以使用)。

dpaeumgmt
应该在创建 DPA 进程之前运行,以便提前配置所有资源在具有现有 DPA 进程的设备上运行该工具会导致失败
用户分配的 EU 组名称对于特定分区上的每个 EU 组都必须是唯一的,否则 EU 组创建命令将失败
创建 EU 分区会消耗 vHCA 分区上允许的 EU 组数量
分区本身占 1 个组,因为每个分区都创建了一个默认组
<max_num>
个组,这是用户在创建分区时提供的输入
在 ECPF 以外的接口上创建组或运行 DPA 线程(使用任何亲和性)通常需要在特定 vHCA 上配置有效的分区
只有默认分区暴露给真实的 EU 编号,用户创建的所有其他分区都使用虚拟 EU
例如,如果用户创建了一个 EU 范围为 20-40 的分区,则从其虚拟 HCA (vHCA) 之一查询分区信息将显示 0-20 的 EU。因此,本例中真实编号为 39 的 EU 将对应于虚拟 EU 编号 19。
非默认分区上的组 ID 是虚拟的。
不同的分区可以具有完全不同的组,即使它们具有相同的 ID。
在 FlexIO API 上指定的亲和性 ID 参数可以根据应用程序运行的 vHCA 区分组。
EU 分区上不允许 vHCA ID 重叠
无法使用
dpaeumgmt
查询 vHCA ID,这些 ID 假定用户事先已知如果该分区上存在 EU 对象,则分区销毁将失败
无法知道选择了哪个 EU 来运行
每个 vHCA 都将其所属的分区及其资源视为整个世界。它只看到
它创建的组和分区
分配给它的 EU 数量
它所属分区的
max_num_eu_group
不保证在组创建时给出的 EU 组 ID
默认组(每个分区的)不能由用户管理
可用的 EU 编号介于 0 和最大 DPA EU 编号(减 1)之间(上限可以使用上面指定的 info 命令查询)
dpaeumgmt
不支持虚拟功能 (VF)无法在 DPA 分区管理器功能以外的其他 vHCA 上创建分区
最多有 16 个硬件 EU 组实体