|
34 | 34 | //! |
35 | 35 | //! | tier | ops | CPUID | first silicon | |
36 | 36 | //! |---|---|---|---| |
37 | | -//! | AMX-TILE | config, zero, load/store, release | 7.0:EDX[24] | Sapphire Rapids | |
38 | | -//! | AMX-INT8 | `tdpb{ss,su,us,uu}d` | 7.0:EDX[25] | Sapphire Rapids | |
39 | | -//! | AMX-BF16 | `tdpbf16ps` | 7.0:EDX[22] | Sapphire Rapids | |
40 | | -//! | AMX-FP16 | `tdpfp16ps` | 7.1:EAX[21] | Granite Rapids | |
41 | | -//! | AMX-COMPLEX | `tcmm{im,rl}fp16ps` | 7.1:EDX[8] | Granite Rapids-D | |
42 | | -//! | AMX-FP8 | `tdp{b,bh,hb,h}f8ps` | 1E.1:EAX[4] | Diamond Rapids | |
43 | | -//! | AMX-TF32 | `tmmultf32ps` | 1E.1:EAX[6] | Diamond Rapids (see note) | |
44 | | -//! | AMX-AVX512 | `tcvtrow*`, `tilemovrow` | 1E.1:EAX[7] | Diamond Rapids | |
45 | | -//! | AMX-MOVRS | `tileloaddrs{,t1}` | 1E.1:EAX[8] | Diamond Rapids | |
| 37 | +//! | AMX-TILE | config, zero, load/store, release | 7.0:EDX\[24\] | Sapphire Rapids | |
| 38 | +//! | AMX-INT8 | `tdpb{ss,su,us,uu}d` | 7.0:EDX\[25\] | Sapphire Rapids | |
| 39 | +//! | AMX-BF16 | `tdpbf16ps` | 7.0:EDX\[22\] | Sapphire Rapids | |
| 40 | +//! | AMX-FP16 | `tdpfp16ps` | 7.1:EAX\[21\] | Granite Rapids | |
| 41 | +//! | AMX-COMPLEX | `tcmm{im,rl}fp16ps` | 7.1:EDX\[8\] | Granite Rapids-D | |
| 42 | +//! | AMX-FP8 | `tdp{b,bh,hb,h}f8ps` | 1E.1:EAX\[4\] | Diamond Rapids | |
| 43 | +//! | AMX-TF32 | `tmmultf32ps` | 1E.1:EAX\[6\] | Diamond Rapids (see note) | |
| 44 | +//! | AMX-AVX512 | `tcvtrow*`, `tilemovrow` | 1E.1:EAX\[7\] | Diamond Rapids | |
| 45 | +//! | AMX-MOVRS | `tileloaddrs{,t1}` | 1E.1:EAX\[8\] | Diamond Rapids | |
46 | 46 | //! |
47 | 47 | //! Note on TF32: LLVM `main` has removed `amx-tf32` (and `amx-transpose`) |
48 | 48 | //! from both the assembler and `Host.cpp`. The 22.1.8 assembler in the |
@@ -655,23 +655,23 @@ tile_row_to_zmm!( |
655 | 655 | /// and gates the INT8 ops. This struct answers "which ops exist once I may". |
656 | 656 | #[derive(Copy, Clone, Debug, PartialEq, Eq, Default)] |
657 | 657 | pub struct AmxFeatures { |
658 | | - /// AMX-TILE (7.0:EDX[24]). |
| 658 | + /// AMX-TILE (7.0:EDX\[24\]). |
659 | 659 | pub tile: bool, |
660 | | - /// AMX-INT8 (7.0:EDX[25]). |
| 660 | + /// AMX-INT8 (7.0:EDX\[25\]). |
661 | 661 | pub int8: bool, |
662 | | - /// AMX-BF16 (7.0:EDX[22]). |
| 662 | + /// AMX-BF16 (7.0:EDX\[22\]). |
663 | 663 | pub bf16: bool, |
664 | | - /// AMX-FP16 (7.1:EAX[21]). |
| 664 | + /// AMX-FP16 (7.1:EAX\[21\]). |
665 | 665 | pub fp16: bool, |
666 | | - /// AMX-COMPLEX (7.1:EDX[8]). |
| 666 | + /// AMX-COMPLEX (7.1:EDX\[8\]). |
667 | 667 | pub complex: bool, |
668 | | - /// AMX-FP8 (1E.1:EAX[4]). |
| 668 | + /// AMX-FP8 (1E.1:EAX\[4\]). |
669 | 669 | pub fp8: bool, |
670 | | - /// AMX-TF32 (1E.1:EAX[6]; the bit LLVM used before dropping the feature). |
| 670 | + /// AMX-TF32 (1E.1:EAX\[6\]; the bit LLVM used before dropping the feature). |
671 | 671 | pub tf32: bool, |
672 | | - /// AMX-AVX512 (1E.1:EAX[7]). |
| 672 | + /// AMX-AVX512 (1E.1:EAX\[7\]). |
673 | 673 | pub avx512: bool, |
674 | | - /// AMX-MOVRS (1E.1:EAX[8]). |
| 674 | + /// AMX-MOVRS (1E.1:EAX\[8\]). |
675 | 675 | pub movrs: bool, |
676 | 676 | } |
677 | 677 |
|
|
0 commit comments