Tornando all’anno scorso, Intel ha aggiunto il supporto di Granite Rapids a GCC 13 come parte della consueta presentazione anticipata di nuove famiglie di prodotti nella GNU Compiler Collection. Quell’obiettivo iniziale di Granite Rapids è stato presentato per la prima volta nel GCC 13.1 rilasciato da allora insieme a Emerald Rapids e Sierra Forest. Colpire la mailing list degli sviluppatori GCC oggi è il supporto iniziale per Intel Granite Rapids D.
Il testo della guida di Granite Rapids D con la patch GCC indica le istruzioni supportate:
graniterapids-d
CPU Intel graniterapids D con estensioni a 64 bit, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND, F16C , AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI , GFNI, VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG, WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16, AVX512BF16, AMX-FP16, PREFETCHI e supporto del set di istruzioni AMX-COMPLEX.
La cosa più notevole e la differenza di istruzioni chiave rispetto a Granite Rapids è l’aggiunta di AMX-COMPLEX. All’inizio di quest’anno Intel ha iniziato ad aggiungere AMX-COMPLEX a GCC (e LLVM/Clang). Quando le informazioni AMX-COMPLEX sono state aggiunte al manuale di riferimento dei programmatori di Intel, è stato notato che erano state trovate con Granite Rapids.
Ora risulta che AMX-COMPLEX è solo per Granite Rapids D e non per tutti i processori Granite Rapids. AMX-COMPLEX aggiunge il supporto per i numeri complessi in virgola mobile a mezza precisione e altri aggiornamenti alle estensioni Advanced Matrix che inizialmente sono state presentate per la prima volta con Sapphire Rapids.
Anche l’aggiornamento della documentazione di giugno 2023 di Intel ribadisce che solo Granite Rapids D aggiunge il supporto AMX-COMPLEX con le istruzioni AMX-COMPLEX TCMMIMFP16PS/TCMMRLFP16PS.
Questa patch del compilatore Granite Rapids D nel processo elimina anche il flag AMX-COMPLEX da Granite Rapids. Zewei ha scritto nel messaggio della patch:”Inoltre, la patch per la rimozione di AMX-COMPLEX da Granite Rapids verrà trasferita su GCC13″. Quindi verrà giù come correzione poiché con GCC 13.1 in questo momento se si prende di mira solo”graniterapids”, il compilatore pensa che AMX-COMPLEX sia supportato.
La presenza di AMX-COMPLEX ora è anche il modo in cui GCC sta determinando se una CPU è Granite Rapids D, oltre al modello 0xae.
Questo supporto-march=graniterapids-d dovrebbe essere raccolto presto da GCC Git per il rilascio di GCC 14 all’inizio del prossimo anno, mentre chi è interessato alla patch di abilitazione può trovarlo su la mailing list.