仅对英特尔可见 — GUID: ewa1399396539918
Ixiasoft
产品终止通知
1. Intel® FPGA SDK for OpenCL™ Pro Edition最佳实践指南介绍
2. 查看您Kernel的report.html文件
3. OpenCL内核设计概念
4. OpenCL内核设计最佳实践
5. 分析(Profiling)您的内核来识别性能瓶颈
6. 提高单个Work-Item内核性能的策略
7. 提高NDRange内核数据处理效率的策略
8. 提高存储器访问效率的策略
9. 优化FPGA面积使用的策略
10. 优化英特尔 Stratix 10 OpenCL设计的策略
11. 提高主机应用程序性能的策略
12. Intel® FPGA SDK for OpenCL™ Pro版最佳实践指南存档
A. Intel® FPGA SDK for OpenCL™ Pro版最佳实践指南修订历史
仅对英特尔可见 — GUID: ewa1399396539918
Ixiasoft
5.7.1. 停顿、占用率、带宽
对于内核代码的特定行, Intel® VTune Profiler GUI的Source View选项卡会显式停顿的百分比、占用量百分比、数据传输大小和平均存储器带宽。
对于停顿、占用量和带宽的定义,请参阅性能数据的类型。
Intel® FPGA SDK for OpenCL™ 生成流水线架构,其中work-item按顺序遍历(traverse)整个流水线阶段(即,以流水线并行方式)。一旦流水线阶段成空,work-item进入并占据该阶段。流水线并行性也适用于流水线化循环的迭代,其中迭代按顺序进入流水线循环。
图 72. 通过性能计数器注入的内核流水线的简化表示
以下是描述Profiler计算的停顿、占用量和带宽的简化方程式:
注: 带宽方程式中的ivalid_count还包含predicate=true输入到load-store unit。
理想的内核流水线条件:
- 停顿百分率等于0%
- 占用量百分率等于100%
- 带宽等于板级带宽
对于内核流水线中的给定位置,如果停顿百分比和占用量百分比的总和大约等于100%,则Profiler将该位置标识为停顿源。如果停顿百分比较低,那么Profilerhi将该位置标识为停顿的受害者(victim)。
Profiler报告高占用量百分比,如果离线编译器从您的内核中生成高效流水线,其中work-item或迭代在流水线阶段中移动而不会停顿。
如果所有的LSU被访问的次数相同,则它们具有相同的占用量值。
- 如果work-item不能连续进入流水线,那么它们将冒泡(bubble)插入流水线。
- 在循环流水线中,由于迭代之间存在冒泡,则携带依赖项的循环也会在流水线中形成冒泡(bubble)。
- 如果某个LSU的访问频率低于其它LSU,例如这样一种情况,当一个LSU位于包含其它LSU的循环之外时,此LSU的占用量值就低于其它LSU。
关于占用值的规则同样适用于通道。