Con l’introduzione di AVX10 da parte di Intel, inizialmente previsto come successore di AVX-512, si prospettava un futuro entusiasmante per gli sviluppatori e gli utenti che desideravano sfruttare istruzioni vettoriali avanzate. Tuttavia, con l’evoluzione della specifica, Intel ha ora deciso di abbandonare il supporto per le operazioni a 256 bit in AVX10, concentrandosi invece esclusivamente su vettori a 512 bit.
Intel: niente più opzione a 256-bit per le istruzioni AVX
Intel AVX10, o “Advanced Vector Extensions 10”, è stato concepito per offrire un insieme più unificato e flessibile di istruzioni vettoriali rispetto ad AVX-512, affrontando alcune delle critiche mosse alla precedente implementazione, come la complessità e il consumo energetico. Una delle promesse iniziali di AVX10 era quella di supportare lunghezze vettoriali multiple, incluse quelle a 256 bit e 512 bit, per garantire compatibilità e scalabilità su diverse piattaforme, dai dispositivi mobili ai server.
Tuttavia, secondo i dettagli emersi di recente, l’azienda di Santa Clara ha scelto di semplificare la specifica di AVX10 eliminando il supporto per i vettori a 256 bit. Questa decisione è motivata dalla volontà di ottimizzare le prestazioni e ridurre la complessità per i processori futuri, in particolare per le architetture server e ad alte prestazioni che traggono maggior beneficio dai vettori a 512 bit. Di conseguenza, AVX10 sarà allineato esclusivamente con le capacità a 512 bit, segnando un ulteriore allontanamento dal supporto per lunghezze vettoriali intermedie.
Proprio da poco è stato infatti aggiornato il compilatore GCC, applicando questo cambiamento deciso da Intel, come anche riportato nella descrizione della patch:
Rimossi i riferimenti alla dimensione massima del registro vettoriale a 256 bit, all’enumerazione del supporto della lunghezza del vettore e alle istruzioni a 256 bit che supportano l’arrotondamento incorporato.”
Sempre nella descrizione, gli sviluppatori continuano dichiarando che:
“In questo nuovo whitepaper, tutte le piattaforme supporteranno una larghezza vettoriale di 512 bit (in precedenza, E-core era fino a 256 bit, il che portava a client ibridi e Atom Server solo a 256 bit). Inoltre, l’arrotondamento a 256 bit non è così utile perché attualmente abbiamo la funzionalità di arrotondamento direttamente su E-core e non c’è bisogno di usare l’arrotondamento a 256 bit come una sorta di soluzione alternativa. HW rimuoverà quel supporto.
Quindi, non c’è bisogno di aggiungere avx10.x-256/512 nelle opzioni del compilatore. Un semplice avx10.x che supporta tutte le lunghezze dei vettori è tutto ciò di cui abbiamo bisogno. La modifica rende anche -mno-evex512 non così utile. È stato introdotto con avx10.1-256 per compilare solo binari a 256 bit su piattaforme legacy per avere una prova parziale per avx10.x-256. Ciò che dobbiamo anche fare è rimuovere l’arrotondamento a 256 bit.”
Questa decisione favorirà sicuramente i processori Intel di fascia server, specie gli Xeon E-Core, di competere meglio con la concorrenza delle CPU AMD EPYC, le quali supportano estensivamente le AVX-512.