Vai al contenuto
Offerte

Intel PISA, la ISA virtuale per le GPU Xe arriva su LLVM

In questo articolo Indice dei contenuti 3 sezioni

Intel PISA è il nome del nuovo livello software che la casa di Santa Clara sta costruendo per le sue schede grafiche, e l’acronimo sta per Portable Instruction Set Architecture. In pratica si tratta di una ISA virtuale, uno strato intermedio che si posiziona tra i compilatori e l’hardware vero e proprio, con l’obiettivo di offrire un bersaglio stabile su cui lavorare anche quando l’architettura della GPU cambia sotto il cofano. Il riferimento alla celebre torre toscana, va detto, è solo una battuta.

Il meccanismo è più intuitivo di quanto sembri. Oggi un compilatore produce istruzioni pensate per una generazione specifica di GPU Intel, con tutto quello che ne consegue in termini di conoscenza dettagliata dell’hardware. Con PISA il compilatore genera invece codice intermedio, neutro, e un secondo componente si occupa poi di tradurlo nelle istruzioni realmente eseguibili dalla scheda presente nel sistema. Il software dipende meno dai capricci di una singola architettura grafica e l’azienda può adattare la fase finale della compilazione generazione per generazione.

Il paragone con PTX di NVIDIA aiuta, ma non basta

Chi conosce il mondo del calcolo su GPU avrà già pensato a PTX, la ISA virtuale che sta al centro dello stack CUDA di NVIDIA. Anche lì il principio è quello di un livello intermedio tra il codice prodotto dai compilatori e le istruzioni native del chip. La filosofia di PISA sembra andare nella stessa direzione, cioè fornire un target abbastanza stabile da resistere ai cambiamenti dell’hardware sottostante.

Il confronto serve a inquadrare il concetto, però fermarsi lì sarebbe sbagliato. PISA è ancora un progetto giovane, con specifica e strumenti in fase di definizione. Il passaggio più concreto riguarda il lavoro per portare un backend PISA all’interno di LLVM, l’infrastruttura open source su cui si appoggiano molti compilatori moderni, Clang compreso. L’idea è che LLVM possa generare direttamente codice PISA come destinazione della compilazione, e la proposta è già stata presentata pubblicamente agli sviluppatori del progetto.

Perché serve una ISA portabile sulle GPU Xe

Le architetture grafiche di Intel cambiano spesso, e non solo in superficie. Una nuova generazione può portare istruzioni diverse, unità di calcolo inedite, modifiche nella gestione delle risorse. Senza uno strato intermedio, i compilatori sono costretti a conoscere nel dettaglio ogni singola architettura, con un lavoro di manutenzione che si moltiplica a ogni salto generazionale.

Con questo approccio i due mondi restano più separati. Il compilatore descrive cosa deve fare il programma, mentre un componente più vicino al silicio decide come tradurre quelle operazioni nelle istruzioni migliori per la GPU disponibile. In teoria significa poter riutilizzare lo stesso codice su più generazioni Xe e semplificare la vita a chi sviluppa compilatori, librerie e applicazioni per il calcolo parallelo.

LEO, OpenCL e il nuovo Compute Runtime

Per l’utente comune tutto questo resterà invisibile. Nessun pulsante da premere, nessuna impostazione da cambiare: la novità parla a chi scrive compilatori, librerie e software di calcolo su GPU. Se il progetto manterrà le promesse, il passaggio da una generazione Xe alla successiva diventerà meno doloroso per l’intero ecosistema.

PISA arriva insieme al nuovo Intel Compute Runtime, il componente open source che permette alle applicazioni di sfruttare le schede grafiche dell’azienda per attività di calcolo. Il supporto copre OpenCL, lo standard aperto per eseguire codice parallelo su CPU e GPU, e Level Zero, l’interfaccia a basso livello con cui Intel offre un controllo più diretto sull’hardware grafico.

La stessa release porta un’altra modifica di peso. LEO, sigla di Level Zero Executing OpenCL, diventa il percorso predefinito per OpenCL sulle future piattaforme Nova Lake, una scelta che dovrebbe rendere più snella la manutenzione e l’ottimizzazione del runtime. I due progetti non dipendono l’uno dall’altro, ma raccontano la stessa strategia: rimettere ordine nel software che collega le applicazioni alle GPU.

Fonte: TecnoAndroid

Condividi:
74 Condivisioni