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

9

Podemos examinar /proc/cpuinfo em máquinas Intel e ARM para aprender recursos de CPU, como AES e SHA. Eu preciso fazer o mesmo para o PowerPC no AIX e no Linux.

O teste com o Linux é mostrado abaixo. A saída é produzida por GCC112 no compilar farm .

$ 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

O GCC112 é uma máquina Power 8. Eu deveria estar vendo bandeiras como VMX, AES, SHA, PMULL, etc. VMX é aproximadamente o equivalente a PowerPC para Intel SSE e ARM NEON.

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

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

Eu também não sei o que usar para o AIX. O AIX está disponível em GCC119 no compilar farm .

Como faço para obter os recursos da CPU PowerPC no AIX e no Linux?

    
por jww 09.09.2017 / 19:27

1 resposta

2

Não sei por que / proc / cpuinfo ou lscpu não revela informações de sinalizadores. Eu encontrei a lista de bandeiras conhecidas pelo kernel do Linux link

Acabei de descobrir que você pode pesquisar vetores auxiliares de 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

^^ o seu AT_HWCAP terá informações de sinalização. Mascarado. Eu vi amostras na Internet com essa entrada decodificada para você. Eu não tenho acesso ao hardware ppc para testar infelizmente.

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

    
por 19.02.2018 / 19:30