在Intel Xeon Phi上使用OpenCL进行并行模拟



我有一个OpenCL应用程序,它充分利用了Intel Xeon Phi的功能。

内核使用数据库进行一些统计计算。因此,我正在考虑是否可以添加第二个使用相同数据库的内核,并在Phi上同时运行它们。

例如,内核1使用n/2个线程,内核2使用n/2线程等。

有什么建议吗?

充分利用Intel Xeon Phi的功能。

  • 内存利用不足?算术单位?隐藏物SIMD?
    • 你对它进行了剖析以确定问题吗

内核1使用n/2个线程,内核2等使用n/2线程

  • 如果内核使用了太多内存,并且缓存未命中,您可以减少内核中循环的限制,使每个线程在较少的内存上工作,并且可能更频繁地命中缓存,然后应用第二个内核处理剩余的循环。如果每个线程有m个元素,你可以:

    • n个线程(对于i=0到m/2)+n个线程
      • 类似于补丁中的矩阵乘法,以使用更多缓存
  • 手动将内核矢量化为16个宽组件,如int16和float16。

最新更新