vak: (Default)
[personal profile] vak
Полезная утилитка показывает фичи процессора: github.com/pytorch/cpuinfo

Глянем последний эпловский процессор Apple M2 Max. Заметьте, восемь ядер одного типа и четыре ядра другого типа. Неожиданно присутствует аппаратная поддержка BFloat16. Интересно, как её задействовать в коде на Си.  
$ cpu-info

Packages:
0:
Microarchitectures:
8x Avalanche
4x Blizzard
Cores:
0: 1 processor (0), Apple Avalanche
1: 1 processor (1), Apple Avalanche
2: 1 processor (2), Apple Avalanche
3: 1 processor (3), Apple Avalanche
4: 1 processor (4), Apple Avalanche
5: 1 processor (5), Apple Avalanche
6: 1 processor (6), Apple Avalanche
7: 1 processor (7), Apple Avalanche
8: 1 processor (8), Apple Blizzard
9: 1 processor (9), Apple Blizzard
10: 1 processor (10), Apple Blizzard
11: 1 processor (11), Apple Blizzard
Logical processors:
0
1
2
3
4
5
6
7
8
9
10
11

$ isa-info

Instruction sets:
ARM v8.1 atomics: yes
ARM v8.1 SQRDMLxH: yes
ARM v8.2 FP16 arithmetics: yes
ARM v8.2 FHM: yes
ARM v8.2 BF16: yes
ARM v8.2 Int8 dot product: yes
ARM v8.2 Int8 matrix multiplication: yes
ARM v8.3 JS conversion: yes
ARM v8.3 complex: yes
SIMD extensions:
ARM SVE: no
ARM SVE 2: no
Cryptography extensions:
AES: yes
SHA1: yes
SHA2: yes
PMULL: yes
CRC32: yes

$ cache-info

Max cache size (upper bound): 4194304 bytes
L1 instruction cache: 12 x 128 KB, 4-way set associative (256 sets), 128 byte lines, shared by 1 processors
L1 data cache: 12 x 64 KB, 4-way set associative (128 sets), 128 byte lines, shared by 1 processors
L2 data cache: 4 MB (exclusive), 8-way set associative (4096 sets), 128 byte lines, shared by 12 processors