Como determinar os recursos da CPU no PowerPC e Power 8 (e acima)?

12

Podemos examinar /proc/cpuinfoem máquinas Intel e ARM para aprender os recursos da CPU, como AES e SHA. Preciso fazer o mesmo para o PowerPC no AIX e Linux.

Os testes com Linux são mostrados abaixo. A saída é produzida pelo GCC112 no farm de compilação .

$ 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 é uma máquina Power 8. Eu deveria estar vendo sinalizadores como VMX, AES, SHA, PMULL, etc. O VMX é aproximadamente o equivalente do PowerPC ao Intel SSE e ARM NEON.

Eu encontrei algumas discussões relacionadas como / proc / cpuinfo em comp.os.linux.powerpc. Também encontrei O que verificamos em um novo sistema? , mas faltam detalhes úteis, como os recursos da CPU. Finalmente, há uma pergunta relacionada em O que significam os sinalizadores em / proc / cpuinfo? , mas não discute o PowerPC.

O GCC parece fornecer as informações aos programas C por meio do uso de built-ins . Por exemplo, há um vsxteste e um vcryptoteste. O problema é que estou trabalhando com um script Bash e não com um programa em C.

Também não sei o que usar para o AIX. O AIX está disponível no GCC119 no farm de compilação .

Como obtenho os recursos da CPU PowerPC no AIX e Linux?


fonte
6
Você pode obter algumas informações lscpuno Linux e lscfg -vno AIX.
meuh
Obrigado @meuh - sem alegria. Saída disponível nas informações da CPU do PowerPC .
1
Eu não sei sobre ARM, mas SSE é uma extensão opcional em x86, enquanto tudo o que você mencionou para POWER é exigido por todos os chips Power8
Fox
Acho que abordamos o caso do Linux em stackoverflow.com/questions/46144668/… . Deseja editar este para ser mais específico ao AIX?
Jeremy Kerr

Respostas:

3

Não sei por que / proc / cpuinfo ou lscpunão revela informações sobre sinalizadores. Encontrei a lista de sinalizadores conhecidos pelo kernel do 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

Acabei de descobrir que você pode procurar vetores auxiliares ELF, que mostrarão alguns recursos de hardware.

$ 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

^^ seu AT_HWCAP terá informações de sinalização. Mascarado. Vi amostras na Internet que decodificaram essa entrada para você. Infelizmente, não tenho acesso ao hardware ppc para testar.

lscpu deve estar disponível no AIX, talvez mostre sinalizadores de CPU?

Pedro
fonte