在Intel Xeon Phi上使用OpenCL进行并发仿真

时间:2016-04-11 14:53:52

标签: parallel-processing opencl simulation gpgpu xeon-phi

我有一个OpenCL应用程序,它利用了英特尔至强融核的功能。

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

  

未充分利用英特尔至强融资的功能。

  • 利用内存不足?算术单位?缓存? SIMD?
    • 您是否将其描述为针脚问题?
  

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

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

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