仅对英特尔可见 — GUID: ewa1444245039361
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: ewa1444245039361
Ixiasoft
11.1. 多线程主机应用程序
存在并行、独立的数据路径并且主机必须处理内核执行之间的数据时,请考虑使用多线程主机应用程序。
下图说明单线程主机应用程序如何处理内核执行之间的并行、独立数据路径:
图 90. 单线程主机应用程序的内核执行
OpenCL运行时线程安全并支持多线程应用程序。因此,您可以在主机上以并行线程执行工作任务,同时仍然允许这些线程以线程安全的方式访问OpenCL API。
然而,通过在调用任何OpenCL主机API后立刻同步线程,可以在OpenCL API边界强制执行线程安全,这就意味着只有一个线程在运行时处于有效状态,而其他线程等待。因此,如果队列上的一个线程调用clFlinish充满工作,那么另一个线程调用clSetKernelArg可能必须等到所有工作完成才能执行。
如果可能,请在多线程CPU上处理数据,并使用单个专用线程与OpenCL API交互。
下图说明多线程主机应用程序如何处理内核执行之间的并行、独立数据路径:
图 91. 多线程主机应用程序在线程安全运行时环境中的内核执行