web-dev-qa-db-ja.com

PowerPCおよびPower 8(以上)のCPU機能を確認する方法

/proc/cpuinfo IntelおよびARM AESやSHAなどのCPU機能を学ぶためのマシン。AIXとLinuxの両方でPowerPCについても同じことをする必要があります。

Linuxでのテストを以下に示します。出力は コンパイルファームGCC112 によって生成されます。

$ 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。

Comp.os.linux.powerpcで / proc/cpuinfo のような関連するディスカッションを見つけました。私は 新しいシステムで何をチェックしますか? も見つけましたが、CPU機能のような有用な詳細が欠けています。最後に、関連する質問が / proc/cpuinfoのフラグはどういう意味ですか? にありますが、PowerPCについては説明されていません。

GCCは built-ins を使用してCプログラムに情報を提供しているようです。たとえば、vsxテストとvcryptoテストがあります。問題は、CプログラムではなくBashスクリプトから作業していることです。

また、AIXで何を使用するかわかりません。 AIXは コンパイルファームGCC119 で入手できます。

AIXおよびLinuxでPowerPC CPU機能を取得するにはどうすればよいですか?

12
user56041

/ 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フラグが表示されますか?

3
Pedro