Parallel processing 在Intel Xeon Phi上使用OpenCL进行并行仿真
我有一个OpenCL应用程序,它没有充分利用Intel Xeon Phi的功能 内核使用数据库进行一些统计计算。因此,我在考虑是否可以添加第二个内核,该内核使用相同的数据库并在Phi上并发运行它们 例如,内核1使用n/2线程,内核2使用n/2线程等 有什么建议吗 未充分利用Intel Xeon Phi的功能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线程等 如果内核使用了太多的内存而缓存没有命中,您可以减少内核中循环的限制,
- 内存不足?算术单位?隐藏物辛德?
- 您是否对其进行了分析以确定问题
- 如果内核使用了太多的内存而缓存没有命中,您可以减少内核中循环的限制,这样每个线程使用的内存就更少,并且可能会更频繁地命中缓存,然后在剩余的循环上应用第二个内核。如果每个线程有m个元素,则可以:
- n个螺纹(对于i=0到m/2)+n个螺纹(对于i=m/2到m)
- 类似于修补程序中的矩阵乘法,以使用更多缓存
- n个螺纹(对于i=0到m/2)+n个螺纹(对于i=m/2到m)
- 手动将内核矢量化为16个宽组件,如int16和float16