Matrix (AMX and ACE)
AMX-AVX512
Moves rows of a tile into ZMM registers, optionally converting them to single precision, bfloat16 or half precision on the way.
- CPUID
- ACE v1
CPUID.(EAX=07H,ECX=1):ECX[11]CPUID.(EAX=1DH,ECX=2):EAX[7:0] ≥ 1or AMX_AVX512CPUID.(EAX=1EH,ECX=1):EAX[7] - Instructions
- 6 mnemonics
- Processors
- Diamond Rapids
AMX-AVX512 connects tiles with vector registers without going through memory. TILEMOVROW copies one row of a tile, 64 bytes, into a ZMM register; the TCVTROW instructions do the same while converting the row, for example TCVTROWD2PS from 32-bit integers to single precision and TCVTROWPS2BF16H from single precision to bfloat16. A kernel can then post-process a result tile, adding a bias or applying an activation function, with ordinary vector code.
The instructions need both the AMX state and the AVX-512 or AVX10 state enabled. The ACE specification includes them as well, which is why they can also be enabled by the ACE feature bits. Intel lists Diamond Rapids as the first processor with AMX-AVX512.
Instructions
| Mnemonic | Summary | Forms |
|---|---|---|
| TCVTROWD2PS | Moves one row of a tile to a ZMM register, converting its 32-bit integers to single precision. | 2 |
| TCVTROWPS2BF16H | Moves one row of a tile to a ZMM register, converting single precision to bfloat16 in the high half of each dword and zeroing the low half. | 2 |
| TCVTROWPS2BF16L | Moves one row of a tile to a ZMM register, converting single precision to bfloat16 in the low half of each dword and zeroing the high half. | 2 |
| TCVTROWPS2PHH | Moves one row of a tile to a ZMM register, converting single precision to half precision in the high half of each dword and zeroing the low half. | 2 |
| TCVTROWPS2PHL | Moves one row of a tile to a ZMM register, converting single precision to half precision in the low half of each dword and zeroing the high half. | 2 |
| TILEMOVROW | Moves one row of a tile register to a ZMM register, or with ACE also the other way, the row chosen by an immediate or a register. | 2 |
CPUID and processors
XED splits AMX-AVX512 into 1 ISA set. Software can use a form when the processor reports every CPUID bit of one alternative of the form's ISA set.
| ISA set | CPUID | Processors in XED |
|---|---|---|
AMX_AVX512 | ACE v1 or AMX_AVX512 | Diamond Rapids |
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, ISA sets, CPUID bits and chip model. - Intel Architecture Instruction Set Extensions and Future Features Programming Reference (319433-062, June 2026)
- Intel Advanced Vector Extensions 10.2 Architecture Specification, revision 6.0 (361050-006, January 2026)
- x86 Ecosystem Advisory Group: AI Compute Extensions (ACE) Specification, version 1.16.2 (July 2026)
The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.