仅对英特尔可见 — GUID: ewa1403528651182
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: ewa1403528651182
Ixiasoft
5.8.2. 较低的占用量百分比
较低的占用量百分比意味着work-item未频繁访问加载和存储操作或者该通道。 对于非关键循环中的加载和存储操作或者通道,这个是预期行为。但是,如果存储器或者通道指令位于内核代码的关键部分,并且其占用量或者活动度百分比较低,这就表明存在性能瓶颈,因为硬件中没有发布work-item或者循环迭代。
请参考如下代码实例:
__kernel void proc (__global int * a, ...) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < 1000; j++) {
write_channel_intel (c0, data0);
}
for (int k = 0; k < 3; k++) {
write_channel_intel (c1, data1);
}
}
}
假设所有循环都已流水线化,第一个行程计数为1000的内部循环是关键循环。而第二个循环的行程计数为3,该循环很少执行。因此,您可以预见通道c0的占用量和活动度百分比较高,而通道c1的占用量和活动度百分比较低。
此外,如果您定义的工作组规模较小,内核可能无法接收到足够的work-item,因而占用量百分比也可能会很低。这样就会出现问题,因为在内核执行期间流水线基本上是空的,从而导致性能不佳。