![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Полезная утилитка показывает фичи процессора: github.com/pytorch/cpuinfo
Глянем последний эпловский процессор Apple M2 Max. Заметьте, восемь ядер одного типа и четыре ядра другого типа. Неожиданно присутствует аппаратная поддержка BFloat16. Интересно, как её задействовать в коде на Си.
Глянем последний эпловский процессор 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