我们可以/proc/cpuinfo
在 Intel 和 ARM 机器上进行检查以了解 CPU 功能,例如 AES 和 SHA。我需要对 AIX 和 Linux 下的 PowerPC 执行相同的操作。
Linux 下的测试如下所示。输出是由海湾合作委员会112于编译农场。
$ cat /proc/cpuinfo
processor : 0
cpu : POWER8E (raw), altivec supported
clock : 2061.000000MHz
revision : 2.1 (pvr 004b 0201)
...
processor : 159
cpu : POWER8E (raw), altivec supported
clock : 2061.000000MHz
revision : 2.1 (pvr 004b 0201)
timebase : 512000000
platform : PowerNV
model : 8247-22L
machine : PowerNV 8247-22L
firmware : OPAL v3
GCC112 是一台 Power 8 机器。我应该看到 VMX、AES、SHA、PMULL 等标志。VMX 大致相当于 Intel SSE 和 ARM NEON 的 PowerPC。
我发现了一些相关的讨论,例如/proc/cpu信息在 comp.os.linux.powerpc 上。我还发现我们在新系统上检查什么?,但它缺乏有用的细节,如 cpu 功能。最后,有一个相关问题/proc/cpuinfo 中的标志是什么意思?,但它没有讨论 PowerPC。
GCC 似乎通过使用以下方式向 C 程序提供信息内置的。例如,有一个vsx
测试和一个vcrypto
测试。问题是,我正在使用 Bash 脚本而不是 C 程序。
我也不知道AIX用什么。 AIX 的可用地址为海湾合作委员会119于编译农场。
如何在 AIX 和 Linux 上获取 PowerPC cpu 功能?
答案1
我不确定为什么 /proc/cpuinfo 或lscpu
不显示标志信息。我找到了 Linux 内核已知的标志列表https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/arch/powerpc/include/asm/cputable.h?id=refs/tags/v4。 9
我刚刚发现您可以查找 ELF 辅助向量,这将向您展示一些硬件功能。
$ LD_SHOW_AUXV=1 /bin/true
AT_SYSINFO_EHDR: 0x7ffdcd0e6000
AT_HWCAP: bfebfbff
AT_PAGESZ: 4096
AT_CLKTCK: 100
AT_PHDR: 0x5591e6663040
AT_PHENT: 56
AT_PHNUM: 9
AT_BASE: 0x7f2ae4f79000
AT_FLAGS: 0x0
AT_ENTRY: 0x5591e6664670
AT_UID: 1000
AT_EUID: 1000
AT_GID: 1000
AT_EGID: 1000
AT_SECURE: 0
AT_RANDOM: 0x7ffdcd044399
AT_HWCAP2: 0x0
AT_EXECFN: /bin/true
AT_PLATFORM: x86_64
^^ 您的 AT_HWCAP 将有标志信息。蒙面。我在互联网上看到了已为您解码此条目的示例。不幸的是,我无法访问 ppc 硬件来进行测试。
lscpu
应该在 AIX 上可用,也许它会显示 CPU 标志?