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

Parallel processing 在Intel Xeon Phi上使用OpenCL进行并行仿真,parallel-processing,opencl,simulation,gpgpu,xeon-phi,Parallel Processing,Opencl,Simulation,Gpgpu,Xeon Phi,我有一个OpenCL应用程序,它没有充分利用Intel Xeon Phi的功能 内核使用数据库进行一些统计计算。因此,我在考虑是否可以添加第二个内核,该内核使用相同的数据库并在Phi上并发运行它们 例如,内核1使用n/2线程,内核2使用n/2线程等 有什么建议吗 未充分利用Intel Xeon Phi的功能 内存不足?算术单位?隐藏物辛德? 您是否对其进行了分析以确定问题 内核1使用n/2线程,内核2使用n/2线程等 如果内核使用了太多的内存而缓存没有命中,您可以减少内核中循环的限制,

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

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

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

有什么建议吗

未充分利用Intel Xeon Phi的功能

  • 内存不足?算术单位?隐藏物辛德?
    • 您是否对其进行了分析以确定问题
内核1使用n/2线程,内核2使用n/2线程等

  • 如果内核使用了太多的内存而缓存没有命中,您可以减少内核中循环的限制,这样每个线程使用的内存就更少,并且可能会更频繁地命中缓存,然后在剩余的循环上应用第二个内核。如果每个线程有m个元素,则可以:

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


我使用屋顶线模型来确定利用率,对于我的优化版本,利用率约为Phi峰值性能的16%。您的意思是,您的数据库正在瓶颈,您需要在收到第一个blob后立即开始计算,并通过计算隐藏内存/db操作延迟?也许它能够同时服务20个数据库?