剖析汇总 (Profile Summary) 包含主机应用和内核的大量实用统计数据。此报告能够笼统展示您应用中的功能瓶颈。下表显示了剖析汇总描述。
Settings
显示此报告和 XRT 配置设置。
Summary
显示汇总统计数据,包括器件执行时间和器件电源。
Kernels & Compute Units
下表显示了已调度和已执行的所有内核功能的剖析汇总数据。
名称 | 描述 |
---|---|
Kernel | 内核名 |
Enqueues | 内核排队次数。如果内核仅排队一次,则以下统计数据全部相同。 |
Total Time | 所有队列的运行时间总和(按 OpenCL 执行模型下的 START 到 END 来测量)(以 ms 为单位) |
Minimum Time | 所有队列的最小运行时间 |
Average Time | 平均内核运行时间(以 ms 为单位) (总时间) / (队列数) |
Maximum Time | 所有队列的最大运行时间(以 ms 为单位) |
下表显示了顶层内核函数的剖析汇总数据。
名称 | 描述 |
---|---|
Kernel | 内核名 |
Kernel Instance Address | 内核实例的主机地址(十六进制) |
Context ID | 主机上的上下文 ID |
Command Queue ID | 主机上的命令队列 ID |
Device | 在其中执行内核的器件的名称(格式:<device>-<ID> ) |
Start Time | 执行开始时间(以 ms 为单位) |
Duration | 执行持续时间(以 ms 为单位) |
下表显示了器件上所有计算单元的剖析汇总数据。
名称 | 描述 |
---|---|
Compute Unit | 计算单元名 |
Kernel | 与此计算单元关联的内核 |
Device | 器件名称(格式:<device>-<ID> ) |
Calls | 计算单元的调用次数 |
Dataflow Execution | 指定 CU 是否随数据流一起执行 |
Max Parallel Executions | 数据流区域中的执行次数 |
Dataflow Acceleration | 显示因数据流执行而提升的性能 |
CU Utilization (%) | 显示 CU 耗用的内核总计运行时间的百分比 |
Total Time | 所有调用的运行时间总和(以 ms 为单位) |
Minimum Time | 所有调用的最小运行时间(以 ms 为单位) |
Minimum runtime of all calls | (总时间) / (工作组数) |
Maximum Time | 所有调用的最大运行时间(以 ms 为单位) |
Clock Frequency | 用于指定加速器的时钟频率(以 MHz 为单位) |
下表显示了器件上计算单元的运行时间和停滞的剖析汇总数据。
名称 | 描述 |
---|---|
Compute Unit | 计算单元名 |
Execution Count | 计算单元的执行计数 |
Running Time | 计算单元运行的总时间(以 µs 为单位) |
Intra-Kernel Dataflow Stalls (%) | 计算单元停滞处理内核内部串流的时间百分比 |
External Memory Stalls (%) | 计算单元停滞处理外部存储器访问的时间百分比 |
Inter-Kernel Pipe Stalls (%) | 计算单元停滞处理内核间流水线访问的时间百分比 |
Kernel Data Transfers
下表显示了内核到全局存储器的数据传输。
名称 | 描述 |
---|---|
Compute Unit Port | 计算单元/端口的名称 |
Kernel Arguments | 连接到此端口的内核实参的列表 |
Device | 器件名称(格式:<device>-<ID> ) |
Memory Resources | 该端口访问的存储器资源 |
Transfer Type | 内核数据传输的类型 |
Number of Transfers | AXI 传输事务内的内核数据传输次数 注释: 这可能包含 printf 传输。
|
Transfer Rate | 内核数据传输速率(以 MB/s 为单位): 传输速率 = (总字节数) / (总计 CU 执行时间) 其中总计 CU 执行时间是 CU 保持活动状态的总时间 |
Avg Bandwidth Utilization (%) | 内核数据传输的平均带宽: 带宽使用率 (%) = (100 * 传输速率) / (0.6 * 最大理论速率) |
Avg Size | 内核数据传输的平均大小(以 KB 为单位): 平均大小 = (总 KB 数) / (传输次数) |
Avg Latency | 内核数据传输的平均时延(以 ns 为单位) |
下表显示了内核到全局存储器的顶层数据传输。
名称 | 描述 |
---|---|
Compute Unit | 计算单元名 |
Device | 器件名 |
Number of Transfers | 写入和读取数据传输数量 |
Avg Bytes per Transfer | 内核数据传输的平均字节数: 平均字节数 = (总字节数) / (传输次数) |
Transfer Efficiency (%) | 内核数据传输的效率: 效率 = (平均字节数) / min((存储器字节宽度 * 256), 4096) |
Total Data Transfer | 内核传输的数据总量(以 MB 为单位): 数据总量 = (写入总量) + (读取总量) |
Total Write | 内核写入的数据总量(以 MB 为单位) |
Total Read | 内核读取的数据总量(以 MB 为单位) |
Total Transfer Rate | 平均总数据传输速率(以 MB/s 为单位): 总传输速率 = (数据传输总量) / (总计 CU 执行时间) 其中总计 CU 执行时间是 CU 保持活动状态的总时间 |
下表显示了数据传输串流。
名称 | 描述 |
---|---|
Master Port | 主计算单元和端口的名称 |
Master Kernel Arguments | 连接到此端口的内核实参的列表 |
Slave Port | 从计算单元和端口的名称 |
Slave Kernel Arguments | 连接到此端口的内核实参的列表 |
Device | 器件名称(格式:<device>-<ID> ) |
Number of Transfers | 串流数据包数 |
Transfer Rate | 串流数据传输速率(以 MB/s 为单位): 传输速率 = (总字节数) / (总计 CU 执行时间) 其中总计 CU 执行时间是 CU 保持活动状态的总时间 |
Avg Size | 内核数据传输的平均大小(以 KB 为单位): 平均大小 = (总 KB 数) / (传输次数) |
Link Utilization (%) | 链接使用率 (%): 链接使用率 = 100 * (链接忙碌周期数 - 链接停滞周期数 - 链接匮乏周期数) / (链接忙碌周期数) |
Link Starve (%) | 链接匮乏 (%): 链接匮乏 = 100 * (链接匮乏周期数) / (链接忙碌周期数) |
Link Stall (%) | 链接停滞 (%): 链接停滞 = 100 * (链接停滞周期数) / (链接忙碌周期数) |
Host Data Transfers
下表显示了主机与器件存储器之间通过 PCI Express® 链路的所有写入传输的剖析数据。
名称 | 描述 |
---|---|
Buffer Address | 指定缓冲器的地址位置 |
Context ID | 主机上的 OpenCL 上下文 ID |
Command Queue ID | 主机上的 OpenCL 命令队列 ID |
Start Time | 写入操作开始时间(以 ms 为单位) |
Duration | 写入操作持续时间(以 ms 为单位) |
Buffer Size | 正在传输的数据量(以 KB 为单位) |
Writing Rate | 数据传输速率(以 MB/s 为单位): (缓冲器大小)/(持续时间) |
下表显示了主机与器件存储器之间通过 PCI Express® 链路的所有读取传输的剖析数据。
名称 | 描述 |
---|---|
Buffer Address | 指定缓冲器的地址位置 |
Context ID | 主机上的上下文 ID |
Command Queue ID | 主机上的命令队列 ID |
Start Time | 读取操作开始时间(以 ms 为单位) |
Duration | 读取操作持续时间(以 ms 为单位) |
Buffer Size | 正在传输的数据量(以 KB 为单位) |
Reading Rate | 数据传输速率(以 MB/s 为单位): (缓冲器大小) / (持续时间) |
下表显示了主机到全局存储器的数据传输。
名称 | 描述 |
---|---|
Context:Number of Devices | 上下文 ID 和上下文中的器件数 |
Transfer Type | 内核主机传输的类型 |
Number of Buffer Transfers | 主机缓冲器传输次数 注释: 这可能包含 printf 传输。
|
Transfer Rate | 主机缓冲器传输速率(以 MB/s 为单位): 传输速率 = (总字节数) / (以 µs 为单位的总时间) |
Avg Bandwidth Utilization (%) | 主机缓冲器传输的平均带宽: 带宽使用率 (%) = (100 * 传输速率) / (最大理论速率) |
Avg Size | 主机缓冲器传输的平均大小(以 KB 为单位): 平均大小 = (总 KB 数) / (传输次数) |
Total Time | 主机缓冲器传输持续时间总和(以 ms 为单位) |
Avg Time | 主机缓冲器传输平均持续时间(以 ms 为单位) |
API Calls
下表显示在主机应用中执行的所有 OpenCL 主机 API 函数调用的剖析数据。顶部显示的条形图表示 API 调用时间占总时间的百分比。
名称 | 描述 |
---|---|
API Name | API 函数名称(例如,clCreateProgramWithBinary 、clEnqueueNDRangeKernel ) |
Calls | 由主机应用对此 API 执行的调用次数 |
Total Time | 所有调用的运行时间总和(以 ms 为单位) |
Minimum Time | 所有调用的最小运行时间(以 ms 为单位) |
Average Time | 平均时间(以 ms 为单位) (总时间) / (调用次数) |
Maximum Time | 所有调用的最大运行时间(以 ms 为单位) |
Device Power
下表显示了器件电源的剖析数据。
名称 | 描述 |
---|---|
Power Used By Platform | 显示数据中心加速卡上 3 条电源轨的折线图:
|
Temperature | 针对温度读数为非零值的每个器件创建一张图表。针对读出以 (°C) 为单位的每个温度传感器显示一条折线。 |
Fan Speed | 针对风扇速度读数为非零值的每个器件创建一张图表。风扇速度以 RPM 来计量。 |
Kernel Internals
下表显示了以微秒 (µs) 为单位的计算单元运行时间,并报告停滞时间占运行时间的百分比。
名称 | 描述 |
---|---|
Compute Unit | 表示计算单元实例名称 |
Running Time | 报告 CU 的总运行时间(以 µs 为单位) |
Intra-Kernel Dataflow Stalls (%) | 报告在内核之间进行数据串流时,停滞中耗用的运行时间百分比 |
External Memory Stalls (%) | 报告在 CU 外部进行存储器传输时,停滞中耗用的运行时间百分比 |
Inter-Kernel Pipe Stalls (%) | 报告串流数据进出 CU 期间,停滞中耗用的运行时间百分比 |
下表显示了计算单元上特定端口的数据传输。
名称 | 描述 |
---|---|
Port | 表示计算单元上的端口名称 |
Compute Unit | 表示计算单元实例名称 |
Write Time | 指定端口上的总计数据写入时间(以 µs 为单位) |
Outstanding Write (%) | 指定写入进程中耗用的运行时间百分比 |
Read Time | 指定端口上的总计数据读取时间(以 µs 为单位) |
Outstanding Read (%) | 指定读取进程中耗用的运行时间百分比 |
下表显示了计算单元上功能端口的数据传输。
名称 | 描述 |
---|---|
Port | 端口名称 |
Function | 功能名称 |
Compute Unit | 计算单元名 |
Write Time | 端口包含未完成的写入的总时间(以 µs 为单位) |
Outstanding Write (%) | 端口包含未完成的写入的时间百分比 |
Read Time | 端口包含未完成的读取的总时间(以 µs 为单位) |
Outstanding Read (%) | 端口包含未完成的读取的时间百分比 |
下表显示了计算单元上运行时间和停滞时间。
名称 | 描述 |
---|---|
Compute Unit | 计算单元名 |
Function | 功能名称 |
Running Time | 总计功能运行时间(以 ms 为单位) |
Intra-Kernel Dataflow Stalls | 功能停滞处理内核内部串流的时间百分比(以 ms 为单位) |
External Memory Stalls | 功能停滞处理外部存储器访问的时间百分比(以 ms 为单位) |
Inter-Kernel Pipe Stalls | 功能停滞处理内核间流水线访问的时间百分比(毫秒) |
Shell Data Transfers
下表显示 DMA 数据传输。
名称 | 描述 |
---|---|
Device | 器件名称(格式:<device>-<ID> ) |
Transfer Type | 数据传输的类型 |
Number of Transfers | AXI 传输事务内的数据传输次数 |
Transfer Rate | 数据传输速率(以 MB/s 为单位): 传输速率 = (总字节数) / (以 µs 为单位的总时间) |
Total Data Transfer | 已传输的数据总量(以 MB 为单位) |
Total Time | 数据传输的总计持续时间(以 ms 为单位) |
Avg Size | 数据传输的平均大小(以 KB 为单位): 平均大小 = (总 KB 数) / (传输次数) |
Avg Latency | 数据传输的平均时延(以 ns 为单位) |
对于 DMA 旁路和全局存储器到全局存储器数据传输,请参阅以上“DMA 数据传输”表。
NoC Counters
NoC 计数器显示的是 NoC 计数器读取和 NoC 计数器写入信息。仅当存在非零 NoC 计数器数据时,才会显示这些部分。
每个部分都有 1 个表,其中包含汇总数据以及传输速率和时延的折线图。这些图形可包含多个 NoC 计数器,以便您通过该表格的“Chart”(图表)列中的复选框来开关计数器。
根据设计,可能可以将 NoC 计数器关联到 CU 端口。在此情况下,CU 端口会显示在表格中,选中此端口即可对系统框图、剖析汇总以及包含 CU 端口作为可选对象的任何其它视图进行交叉探测。
名称 | 描述 |
---|---|
Compute Unit Port | 计算单元/端口的名称 |
Name | NoC 端口名称 |
Traffic Class | 流量类的类型 |
Requested QoS | QoS (MB/s):请求的服务质量(以 MB/s 为单位) |
Min Transfer Rate | 数据传输的最小速率(以 MB/s 为单位) |
Avg Transfer Rate | 数据传输的平均速率(以 MB/s 为单位) |
Max Transfer Rate | 数据传输的最大速率(以 MB/s 为单位) |
Avg Size | 数据传输的平均大小(以 KB 为单位): 平均大小 = (总 KB 数) / (传输次数) |
“Min Latency” | 数据传输的最小时延(以 ns 为单位) |
“Avg Latency” | 数据传输的平均时延(以 ns 为单位) |
“Max Latency” | 数据传输的最大时延(以 ns 为单位) |
AI Engine Counters
如果存在非零 AI 引擎计数器数据,就会显示 AI 引擎计数器。如果存在不兼容的 AI 引擎计数器配置,则这部分会显示 1 条消息称此配置不支持性能剖析。
这部分包含 1 个表,其中包含汇总数据以及活动时间和使用情况的折线图。仅当启用停滞剖析时,使用情况图表才可用。
这些图形可包含多个 AI 引擎计数器,以便您通过该表格的“Chart”列中的复选框来开关计数器。
可以对拼块 (tile) 和 AI 引擎阵列与 Graph 视图进行交叉探测。
名称 | 描述 |
---|---|
Tile | AI 引擎拼块 [列, 行] |
Clock Frequency (MHz) | 用于 AI 引擎拼块的时钟频率(以 MHz 为单位) |