【问题标题】:How to determinal optimal GCC arm options from /proc/cpuinfo?如何从 /proc/cpuinfo 中去除最佳 GCC arm 选项?
【发布时间】:2012-08-02 11:57:02
【问题描述】:

cpu是omap 4460,好像是cortex-A9,armv7,有neon,vfpu3,其他选项。我的主要问题是,如何让 GCC“知道”目标平台有 neon 指令?因为我知道它在 cortex-a9 上是可选的。我只是想确保程序被编译为至少尝试使用霓虹灯,因为当我在 GCC 中编译我的代码并告诉它使用具有 SSE 的 x86 处理器时,我希望它至少尝试使用它如果可以的。

我将使用来自 /proc/cpuinfo 的实际信息更新这篇文章,但在那之前我会保持原样,因为 debian 的 fuse 规则对我不利。

Processor   : ARMv7 Processor rev 10 (v7l)
processor   : 0
BogoMIPS    : 1194.24

processor   : 1
BogoMIPS    : 1194.24

Features    : swp half thumb fastmult vfp edsp thumbee neon vfpv3 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
CPU part    : 0xc09
CPU revision    : 10

Hardware    : Tuna
Revision    : 000a
Serial      : 0149c6f40c009018

好的,以上。 -march= 应该是 armv7 正确的吗?和-mfpu,应该是vfpv3还是应该是霓虹灯?我个人倾向于 vfpv3,但目前我不确定......

【问题讨论】:

  • 你确定你的意思是/cat/proc/cpuinfo?通常只是/proc/cpuinfo。你的意思是cat /proc/cpuinfo
  • 我打错了,我在 cat /proc/cpuinfo
  • 不用提cat;你说的是(伪)文件的内容。
  • 至少在 Linux 下,GCC supports -mcpu=native -mtune=native -march=native 可以自动检测一些选项。在交叉编译(使用 NDK 或其他方式)时没有太大帮助,但当你不这样做时它很有用:)
  • 这是我在自己的机器上编译时总是使用的,因为我的 gcc 太旧而无法直接支持我的 cpu 的功能,我想把它设置为那样,让它这样当我得到 4.6 时,我可以使用它。

标签: android optimization gcc compilation


【解决方案1】:

Android NDK 附带了几个示例,只需查看一个名为 hello-neon 及其 Android.mk 的示例。

所有你需要知道的都在那里,如果你只对编译器选项感兴趣,你可能只想考虑 C 标志

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 2022-09-27
    相关资源
    最近更新 更多