searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享

NVDIA BlueField3 DOCA Tool

2024-09-06 10:12:06
45
0

DOCA Tools

DOCA工具是一组可执行文件/脚本,所有工具都和DOCA一起安装,作为doc -tools包的一部分,可以直接从终端访问,也可以在/opt/mellanox/DOCA/tools中找到。

DOCA Bench

       CLI name: doca_bench

DOCA Bench是一个允许用户评估DOCA应用程序性能的工具,允许用户以合理的准确性评估DOCA应用程序的性能。它提供了一个灵活的体系结构,可以通过多核扩展来评估多个特性,从而提供详细的吞吐量和延迟分析。该工具可用于评估多个DOCA操作的性能,深入了解复杂DOCA操作的每个阶段,并了解缓冲区大小、scalingGGA配置等项目如何影响吞吐量和时延。

支持的feature

DOCA Bench是为所有BlueField加速器设计的统一测试工具。因此,它提供了以下主要feature

l  BF上执行,利用本地ARM coreGGA

l  host(x86)上执行,利用x86 core或通过PCIe利用BlueField上的GGA

l  支持以下DPU feature

n  DOCA AES GCM

n  DOCA Comch

n  DOCA Compress

n  DOCA DMA

n  DOCA EC

n  DOCA Eth

n  DOCA RDMA

n  DOCA SHA

l  多核/多线程支持;

l  基于时间、任务数量等调度;

l  能使用GGA构造复杂的pipeline

l  各种数据源(随机数据、文件数据、文件组等)

l  远程内存操作;

l  使用host x86平台上的数据作为GGA的输入;

l  输出到屏幕或CSV

l  查询支持的软硬件特性;

l  参数可以指定起始值和结束值以及增量;

l  为每个GGA实例设置属性,从而精细控制GGA操作。

安装

DOCA-for-HostDOCA BlueField Arm包安装后,DOCA Bench位于/opt/mellanox/doca/tools目录下。

前提条件

DOCA 2.7.0和更高版本;

操作模式

DOCA Bench可以测量吞吐量(带宽)和时延。

吞吐量测试

在这种模式下,DOCA Bench测量给定pipeline的最大性能。在执行结束时,提供了一个简短的摘要以及更详细的统计数据:

时延测试

DOCA Bench测量从提交作业到接收响应之间所花费的时间。

DOCA Bench提供了两种不同类型的延迟测量:

l  Bulk latency mode-并行提交一组作业以获得最大吞吐量,时延为第一个作业提交和最后一个作业完成之间的时间;

l  Precision latency mode-同一时刻只有一个作业被提交和测量;

Bulk Latency

这种延迟模式有效地以全速运行pipeline,试图保持最大吞吐量,同时还记录提交作业的时延数据。为了记录时延,当在最大吞吐量下操作时,时延数据放以groupbucket为单位进行(而不是记录每个单独的作业延迟)。使用这种方法,用户可以避免每秒记录数百万个延迟数据造成大量内存和CPU开销(否则会显著降低性能)

由于每个pipeline操作不同,因此具有不同的时延特征,因此用户可以提供时延度量的边界。DOCA Bench在内部创建了100个桶,用户可以指定每个桶的起始值和宽度或大小。

l  第一个桶包含所有执行速度快于起始周期的作业;

l  最后一个bucket包含花费超过允许的最大时间的作业计数;

命令行参数latency-bucket-range用于提供两个参数,分别表示第一个桶的起始时间段和每个桶的宽度。例如, latency-bucket-range 10us,100us将从测量响应时间<10μs的最低桶开始,然后是100μs宽的100个桶,最后一个桶的结果耗时超过10010μs

由批量模式生成的报告以两种方式可视化呈现:

1.      提供了一个条形图来直观地显示latency-bucket-range选项指定范围内的分布;

2.      给出了每个桶的作业数量的细分;

Precision Latency

这种延迟模式一次只在一个作业上运行。以大大降低吞吐量为代价,这允许精确地记录最小延迟。如下所示,生成的统计信息是精确的,包括各种字段,如最小值、最大值、中位数和百分位数值。

运行

无论在x86 host还是BlueField Arm上执行DOCA Bench, DOCA Bench的行为都是相同的。所测量的性能取决于环境。目前只支持x86 host上执行。

pipeline

DOCA Bench是一种高度灵活的工具,能够配置操作的发生方式和顺序。为了实现这一点,DOCA Bench使用了一个操作pipeline,称为“step”。这些step可以是一个特定的功能(例如,以太网接收、SHA散列生成、数据压缩)。因此,一个step pipeline可以完成许多顺序操作。DOCA Bench可以测量这些pipeline的吞吐量或时延,无论运行在单个或多个core/线程上。目前,DOCA一次只支持运行一个pipeline

Warm-up Period

为了确保正确的测量,pipeline必须“预热”(即,任何初始内存、缓存和硬件子系统必须在实际性能测量开始之前运行)。默认情况下,在开始测量之前,通过pipeline运行大约100个作业。

默认参数

DOCA Bench有大量的参数,但是为了简化执行,在开始性能测量时只需要提供几个参数。因此,各种参数都有默认值,这在大多数情况下应该是足够的。为了优化性能,用户应该密切关注任何可能影响管道运行的默认参数。当执行时,DOCA Bench报告所有参数和配置值的完整列表。

性能优化

为了获得最大的性能,对于任何给定的环境都需要进行一定的调优。虽然超出了本文档的范围,但建议用户:

l  避免使用CPU 0,因为大多数操作系统进程和中断请求(IRQ)处理程序都被安排在这个核心上执行;

l  在内核引导参数中启用CPU/IRQ隔离,以便将内核活动从执行性能测试的所有内核中删除;

l  在主机上,确保在寻址BlueField时不跨NUMA

l  了解场景的内存分配需求,以避免过度分配或遇到内存不足的情况;

CPU core和线程的指定

DOCA Bench提供了指定core数量和每个core要创建的线程数量的功能,以最大限度地增加提交到给定pipeline的作业数量。

在选择CPU或线程的数量时,应注意以下事项:

l  NUMA区域(即,与BlueField连接的NUMA区域不同)core上的线程性能交底,时延较高;

l  core 0通常是操作系统最常用的,应该避免使用;

l  进程在多个CPU core之间切换,由于进程切换开销会导致性能下降或更高的延迟;

l  通过--core-mask--core-list--core-count参数指定CPU core,通过--threads-per-core参数指定线程。

输入数据的选择

DOCA Bench可以用以下数据作为输入:

l  file:单个文件作为输入数据;

l  file set:多个文件作为输入数据,file set本身是一个文件,文件内容是多个文件组成的list,每行代表一个文件,依次作为任务的输入数据,每个文件的内容将被读入单独的buffer

l  随机数据:在压缩类操作中可能性能较低,因为文件中有很多重复数据,而随机数据相反。

Capabilities Print Tool

CLI name: doca_caps

该工具用于打印可访问的device和它们的representor device,以及它们的capabilities,可访问的lib要求DOCA 2.6.0及其以上版本。

此工具可以在hostArm端执行。该工具支持以下功能:

l  DOCA设备列表-打印每个可用DOCA设备的PCIe设备及其capabilities

l  DOCA representtor设备列表-对于每个DOCA设备,打印每个可用DOCA representtor设备的PCIe设备及其capabilities

l  DOCA lib列表——打印当前操作系统支持的可用DOCA lib,以及它们在特定操作系统上的可用性;

l  DOCA lib功能——对于每个DOCA设备,打印它在每个DOCA lib中支持的功能;

运行

l  打印所有可用的DOCA设备和它们的capabilities

输出如下:

l  打印所有可用的DOCA representor设备和它们的capabilities

该命令只能在ARM端运行。

输出如下:

l  打印特定设备的能力,指定参数--pci-addr

l  打印所有支持的lib及其可用状态:

输出如下:

l  打印特定lib可用状态,指定参--lib

l  打印打印所有信息;

DOCA Comm Channel Admin Tool

Comm Channel Admin Tool用于打印DOCA Comch Channel连接的快照:

l  BlueField Arm端,它包括DOCA Comch server及其当前连接信息;

l  host端,它包括所有活动的client连接和它们所连接的server;

l  只报告client-to-server control channel,不包括快路径的producer/consumer channel;

       只支持linuxDOCA版本至少是2.7.0

运行

Comm Channel Admin Tool可以在hostArm cpu上执行。默认情况下,该工具扫描所有可用的PCIe插槽以检测支持的DOCA设备并报告任何可用的Comch信息。运行命令如下:

0条评论
0 / 1000
c****6
11文章数
1粉丝数
c****6
11 文章 | 1 粉丝
c****6
11文章数
1粉丝数
c****6
11 文章 | 1 粉丝

NVDIA BlueField3 DOCA Tool

2024-09-06 10:12:06
45
0

DOCA Tools

DOCA工具是一组可执行文件/脚本,所有工具都和DOCA一起安装,作为doc -tools包的一部分,可以直接从终端访问,也可以在/opt/mellanox/DOCA/tools中找到。

DOCA Bench

       CLI name: doca_bench

DOCA Bench是一个允许用户评估DOCA应用程序性能的工具,允许用户以合理的准确性评估DOCA应用程序的性能。它提供了一个灵活的体系结构,可以通过多核扩展来评估多个特性,从而提供详细的吞吐量和延迟分析。该工具可用于评估多个DOCA操作的性能,深入了解复杂DOCA操作的每个阶段,并了解缓冲区大小、scalingGGA配置等项目如何影响吞吐量和时延。

支持的feature

DOCA Bench是为所有BlueField加速器设计的统一测试工具。因此,它提供了以下主要feature

l  BF上执行,利用本地ARM coreGGA

l  host(x86)上执行,利用x86 core或通过PCIe利用BlueField上的GGA

l  支持以下DPU feature

n  DOCA AES GCM

n  DOCA Comch

n  DOCA Compress

n  DOCA DMA

n  DOCA EC

n  DOCA Eth

n  DOCA RDMA

n  DOCA SHA

l  多核/多线程支持;

l  基于时间、任务数量等调度;

l  能使用GGA构造复杂的pipeline

l  各种数据源(随机数据、文件数据、文件组等)

l  远程内存操作;

l  使用host x86平台上的数据作为GGA的输入;

l  输出到屏幕或CSV

l  查询支持的软硬件特性;

l  参数可以指定起始值和结束值以及增量;

l  为每个GGA实例设置属性,从而精细控制GGA操作。

安装

DOCA-for-HostDOCA BlueField Arm包安装后,DOCA Bench位于/opt/mellanox/doca/tools目录下。

前提条件

DOCA 2.7.0和更高版本;

操作模式

DOCA Bench可以测量吞吐量(带宽)和时延。

吞吐量测试

在这种模式下,DOCA Bench测量给定pipeline的最大性能。在执行结束时,提供了一个简短的摘要以及更详细的统计数据:

时延测试

DOCA Bench测量从提交作业到接收响应之间所花费的时间。

DOCA Bench提供了两种不同类型的延迟测量:

l  Bulk latency mode-并行提交一组作业以获得最大吞吐量,时延为第一个作业提交和最后一个作业完成之间的时间;

l  Precision latency mode-同一时刻只有一个作业被提交和测量;

Bulk Latency

这种延迟模式有效地以全速运行pipeline,试图保持最大吞吐量,同时还记录提交作业的时延数据。为了记录时延,当在最大吞吐量下操作时,时延数据放以groupbucket为单位进行(而不是记录每个单独的作业延迟)。使用这种方法,用户可以避免每秒记录数百万个延迟数据造成大量内存和CPU开销(否则会显著降低性能)

由于每个pipeline操作不同,因此具有不同的时延特征,因此用户可以提供时延度量的边界。DOCA Bench在内部创建了100个桶,用户可以指定每个桶的起始值和宽度或大小。

l  第一个桶包含所有执行速度快于起始周期的作业;

l  最后一个bucket包含花费超过允许的最大时间的作业计数;

命令行参数latency-bucket-range用于提供两个参数,分别表示第一个桶的起始时间段和每个桶的宽度。例如, latency-bucket-range 10us,100us将从测量响应时间<10μs的最低桶开始,然后是100μs宽的100个桶,最后一个桶的结果耗时超过10010μs

由批量模式生成的报告以两种方式可视化呈现:

1.      提供了一个条形图来直观地显示latency-bucket-range选项指定范围内的分布;

2.      给出了每个桶的作业数量的细分;

Precision Latency

这种延迟模式一次只在一个作业上运行。以大大降低吞吐量为代价,这允许精确地记录最小延迟。如下所示,生成的统计信息是精确的,包括各种字段,如最小值、最大值、中位数和百分位数值。

运行

无论在x86 host还是BlueField Arm上执行DOCA Bench, DOCA Bench的行为都是相同的。所测量的性能取决于环境。目前只支持x86 host上执行。

pipeline

DOCA Bench是一种高度灵活的工具,能够配置操作的发生方式和顺序。为了实现这一点,DOCA Bench使用了一个操作pipeline,称为“step”。这些step可以是一个特定的功能(例如,以太网接收、SHA散列生成、数据压缩)。因此,一个step pipeline可以完成许多顺序操作。DOCA Bench可以测量这些pipeline的吞吐量或时延,无论运行在单个或多个core/线程上。目前,DOCA一次只支持运行一个pipeline

Warm-up Period

为了确保正确的测量,pipeline必须“预热”(即,任何初始内存、缓存和硬件子系统必须在实际性能测量开始之前运行)。默认情况下,在开始测量之前,通过pipeline运行大约100个作业。

默认参数

DOCA Bench有大量的参数,但是为了简化执行,在开始性能测量时只需要提供几个参数。因此,各种参数都有默认值,这在大多数情况下应该是足够的。为了优化性能,用户应该密切关注任何可能影响管道运行的默认参数。当执行时,DOCA Bench报告所有参数和配置值的完整列表。

性能优化

为了获得最大的性能,对于任何给定的环境都需要进行一定的调优。虽然超出了本文档的范围,但建议用户:

l  避免使用CPU 0,因为大多数操作系统进程和中断请求(IRQ)处理程序都被安排在这个核心上执行;

l  在内核引导参数中启用CPU/IRQ隔离,以便将内核活动从执行性能测试的所有内核中删除;

l  在主机上,确保在寻址BlueField时不跨NUMA

l  了解场景的内存分配需求,以避免过度分配或遇到内存不足的情况;

CPU core和线程的指定

DOCA Bench提供了指定core数量和每个core要创建的线程数量的功能,以最大限度地增加提交到给定pipeline的作业数量。

在选择CPU或线程的数量时,应注意以下事项:

l  NUMA区域(即,与BlueField连接的NUMA区域不同)core上的线程性能交底,时延较高;

l  core 0通常是操作系统最常用的,应该避免使用;

l  进程在多个CPU core之间切换,由于进程切换开销会导致性能下降或更高的延迟;

l  通过--core-mask--core-list--core-count参数指定CPU core,通过--threads-per-core参数指定线程。

输入数据的选择

DOCA Bench可以用以下数据作为输入:

l  file:单个文件作为输入数据;

l  file set:多个文件作为输入数据,file set本身是一个文件,文件内容是多个文件组成的list,每行代表一个文件,依次作为任务的输入数据,每个文件的内容将被读入单独的buffer

l  随机数据:在压缩类操作中可能性能较低,因为文件中有很多重复数据,而随机数据相反。

Capabilities Print Tool

CLI name: doca_caps

该工具用于打印可访问的device和它们的representor device,以及它们的capabilities,可访问的lib要求DOCA 2.6.0及其以上版本。

此工具可以在hostArm端执行。该工具支持以下功能:

l  DOCA设备列表-打印每个可用DOCA设备的PCIe设备及其capabilities

l  DOCA representtor设备列表-对于每个DOCA设备,打印每个可用DOCA representtor设备的PCIe设备及其capabilities

l  DOCA lib列表——打印当前操作系统支持的可用DOCA lib,以及它们在特定操作系统上的可用性;

l  DOCA lib功能——对于每个DOCA设备,打印它在每个DOCA lib中支持的功能;

运行

l  打印所有可用的DOCA设备和它们的capabilities

输出如下:

l  打印所有可用的DOCA representor设备和它们的capabilities

该命令只能在ARM端运行。

输出如下:

l  打印特定设备的能力,指定参数--pci-addr

l  打印所有支持的lib及其可用状态:

输出如下:

l  打印特定lib可用状态,指定参--lib

l  打印打印所有信息;

DOCA Comm Channel Admin Tool

Comm Channel Admin Tool用于打印DOCA Comch Channel连接的快照:

l  BlueField Arm端,它包括DOCA Comch server及其当前连接信息;

l  host端,它包括所有活动的client连接和它们所连接的server;

l  只报告client-to-server control channel,不包括快路径的producer/consumer channel;

       只支持linuxDOCA版本至少是2.7.0

运行

Comm Channel Admin Tool可以在hostArm cpu上执行。默认情况下,该工具扫描所有可用的PCIe插槽以检测支持的DOCA设备并报告任何可用的Comch信息。运行命令如下:

文章来自个人专栏
技术讨论
11 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0