首页 文章

加速减少Xeon CPU,GPU和Xeon Phi操作的方法

提问于
浏览
-1

我有一个应用程序,其中大型矩阵上的减少操作(如sum,max)是瓶颈 . 我需要尽快做到这一点 . mkl中有向量指令吗?

是否有特殊的硬件单元在xeon cpu,gpu或mic上处理它?

一般来说,如何在这些硬件中实现减少操作?

3 回答

  • 1

    您可以使用KNC vpermd和vpermf32x4指令以及swizzle修饰符来实现您自己的简单缩减,以在向量单元内执行跨道操作 .

    这些C的内在函数等价物是mm512 permute *和mm512 swizzle * family .

    但是,我建议您首先查看数组符号减少操作,它已经在MIC上实现了高性能 .

    查看可用的减少操作here并查看来自英特尔的泰勒基德的视频this视频,讨论从20分30秒开始对至强披的阵列符号减少 .

    编辑:我注意到你也在寻找基于CPU的解决方案 . 数组符号减少在Xeon上也能很好地工作 .

  • 0

    事实证明,没有任何硬件具有内置的减少运算电路 . 我想象一个16位17位加法器连接到128位向量寄存器以进行降低和运算 . 也许这是因为没有人遇到减少操作的重大瓶颈 . 好吧,我发现的最佳解决方案是openmp中的 #pragma omp parallel for reduction . 我还没有测试它的性能 .

  • 0

    此操作将受带宽限制,因此矢量化几乎肯定无关紧要 . 您希望硬件具有最大的内存带宽 . 英特尔至强融核处理器具有比Xeon处理器更多的聚合带宽(但不是每核心带宽) .

相关问题