如何解决Eigen NEON后端是否经过优化,以利用从ARM A76开始存在的2x128b NEON执行单元?
查看Eigen文档,不清楚自A76 CPU内核发布以来是否对其进行了更新,以利用其包含的更宽的SIMD(2x128b与之前的128b) 我希望开发团队中的某个人(或专家用户)可以帮助您澄清这一点。
解决方法
我对Eigen并不特别熟悉,但是总的来说,不需要为SIMD代码做很多事情即可利用不同数量的硬件执行单元-特别是当CPU支持无序执行时,它们当有更多执行单元时,将拾取更多可以并行执行的指令。
如果编译例如如果使用SIMD内在函数进行编译,则编译器如果被告知专门针对该内核进行优化(并且如果编译器知道该内核的调度特性),则它可能能够调整代码的确切调度。手写汇编代码也是如此-可以针对不同内核的特性进行调整和微调,但是在大多数情况下,它不会发生很大变化。功能强大的内核将更快地执行它。
(主要影响代码编写方式的主要因素(通常需要进行适当的重写才能利用)通常是指令集中可用的寄存器数量,但不会随指令的改变而变化。具有更多执行单元的硬件实现。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。