时延信息表示二进制容器中每个 CU 的执行剖析。分析此数据时,重要的是确认所有值都是通过定制逻辑从 CU 边界测量所得的。报告的这些值中并不包含与数据传输到全局存储器相关联的系统内时延。此外,报告的时延数值仅适用于以 FPGA 互连结构为目标的 CU。以下是时延报告的示例:
Latency Information (clock cycles)
Compute Unit Kernel Name Module Name Start Interval Best Case Avg Case Worst Case
------------ ----------- ----------- -------------- --------- -------- ----------
mmult_1 mmult mmult 826 ~ 829 825 827 828
时延报告分为以下字段:
- 起始时间间隔
- 最佳情况时延
- 平均情况时延
- 最差情况时延
起始时间间隔定义了给定内核的两次 CU 调用之间必须经历的时间量。
最佳、平均和最差情况时延数量是指 CU 为内核的某一 ND 范围数据块生成结果所需的时间。若内核没有数据相关的计算循环,则时延值将相同。如果执行数据相关的循环,则会导致产生数据特有的时延变化,时延报告会捕获此变化。
对于具有以下所列一个或多个条件的内核,间隔或时延数值将被报告为“undef”:
-
OpenCL 内核没有明确
reqd_work_group_size(x,y,z)
- 内核具有含变量边界的循环
注释: 时延信息根据对循环变换和已使用模型并行度的分析来反映估算值。这些高级变换(如流水打拍和数据流)可以极大改变实际吞吐量数值。因此,时延仅可用作不同运行之间的相对指南。