Eigen NEON后端是否经过优化,以利用从ARM A76开始存在的2x128b NEON执行单元?

问题描述

查看Eigen文档,不清楚自A76 cpu内核发布以来是否对其进行了更新,以利用其包含的更宽的SIMD(2x128b与之前的128b) 我希望开发团队中的某个人(或专家用户)可以帮助您澄清这一点。

解决方法

我对Eigen并不特别熟悉,但是总的来说,不需要为SIMD代码做很多事情即可利用不同数量的硬件执行单元-特别是当CPU支持无序执行时,它们当有更多执行单元时,将拾取更多可以并行执行的指令。

如果编译例如如果使用SIMD内在函数进行编译,则编译器如果被告知专门针对该内核进行优化(并且如果编译器知道该内核的调度特性),则它可能能够调整代码的确切调度。手写汇编代码也是如此-可以针对不同内核的特性进行调整和微调,但是在大多数情况下,它不会发生很大变化。功能强大的内核将更快地执行它。

(主要影响代码编写方式的主要因素(通常需要进行适当的重写才能利用)通常是指令集中可用的寄存器数量,但不会随指令的改变而变化。具有更多执行单元的硬件实现。)