gpt4 book ai didi

iphone - 使用矢量化为 iPhone 编译 Eigen 库

转载 作者:行者123 更新时间:2023-12-03 20:08:39 25 4
gpt4 key购买 nike

我正在努力为 iPhone 4 编译 Eigen 库,该库具有带有 armv7 指令集的 ARM 处理器。到目前为止,当我指定预处理器定义 EIGEN_DONT_VECTORIZE 时,一切正常。但由于一些性能问题,我想使用armv7优化的代码。

无论我使用 LLVM-GCC 4.2 还是 LLVM CLang 2.0 哪个编译器,我总是会遇到编译错误。我发现(或者更好地这么认为),LLVM-GCC 4.2 是访问这些 ARM-NEON 特定指令的唯一方法。

当我不设置 EIGEN_DONT_VECTORIZE (并向 gcc 提供 -mfloat-abi=softfp -mfpu=neon)时,我收到以下 gcc 编译器错误:

src/m3CoreLib/Eigen/src/Core/arch/NEON/PacketMath.h:89:错误:在“__扩展__”之前预期有不合格的ID

我已经阅读了有关使用“旧”gcc 4.2 的问题以及使用较新版本的 gcc 的建议。我不确定,但我相信由于应用程序商店的批准,这不是一个选择。我还能做些什么来为 iPhone 编译它吗?有谁解决了这个问题吗?

谢谢,凯

最佳答案

在反复研究不同的编译器设置后,我找到了一个令人满意的解决方案,并得出了以下结论。

关于 Eigen 的模板库方法,调试和发布设置之间存在令人惊讶的巨大差异:启用常用优化标志的发布设置使应用程序运行速度比调试快 20 到 40 倍。我以前从未在任何语言中见过如此大的差异,根据我的经验,通常是 1.5 - 3。

虽然我仍然无法强制矢量化,即代码仅在定义了 EIGEN_DONT_VECTORIZE 的情况下进行编译,但最终的性能现在符合我的需求。

关于iphone - 使用矢量化为 iPhone 编译 Eigen 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com