Riassunto:
Qualcomm ha recentemente presentato il primo lotto di patch dei driver del kernel Linux open source per la nuova GPU Adreno 850, ed è passato solo un giorno dall'annuncio ufficiale del chip all'ingresso del relativo codice nel processo di sviluppo del kernel Linux. Ciò significa che Qualcomm sta accelerando ulteriormente lo sviluppo di driver open source per la nuova generazione di GPU Adreno e iniziando addirittura a promuovere il supporto principale di Linux subito dopo il debutto ufficiale dell'hardware.

La piattaforma di destinazione supportata da questo driver è il SoC di Qualcomm con nome in codice "Hawi", che attualmente è generalmente ritenuto dal settore come lo Snapdragon 8 Elite Extreme Gen 6 appena rilasciato. Il processore utilizza il nuovo core grafico Adreno 850 e gli ingegneri di Qualcomm hanno inviato il relativo codice di inizializzazione della GPU alla mailing list del kernel Linux il giorno successivo al rilascio del chip.
In effetti, la piattaforma Hawi non è apparsa all'improvviso nella comunità Linux. Negli ultimi mesi, Qualcomm ha successivamente inviato altri codici di supporto hardware per Hawi al kernel Linux, quindi questa patch del driver GPU Adreno 850 è in realtà un ulteriore miglioramento basato sul supporto della piattaforma precedente.
La patch inviata questa volta prende di mira principalmente il driver grafico MSM nel kernel Linux, che è il framework principale dei driver open source della GPU Qualcomm Adreno. Sebbene sia ancora nelle fasi iniziali di sviluppo e revisione del codice, il significato è che Adreno 850 ha iniziato a entrare nel sistema di driver principale di Linux, invece di aspettare fino al lancio del prodotto molto prima di essere integrato dalla comunità.
Oltre ad Adreno 850, questo lotto di patch aggiunge anche il supporto preliminare per Adreno 845. Adreno 845 ha il nome in codice "Maili". La sua architettura hardware è molto simile all'Adreno 850, ma manca un nuovo core a matrice MALU. Pertanto, Qualcomm può stabilire il supporto dei driver per le due GPU condividendo una grande quantità di codice di base.
Adreno 850 appartiene all'architettura GPU Adreno 8xx di nuova generazione di Qualcomm. Secondo le informazioni divulgate in questa patch, condivide parte dell'architettura principale e del design degli slice con la generazione precedente Adreno 840, apportando anche una serie di miglioramenti a livello hardware.
Uno dei cambiamenti importanti è il nuovo nucleo della matrice MALU. Qualcomm utilizza questa unità hardware per accelerare tipi specifici di attività di calcolo a matrice, che è anche uno dei cambiamenti importanti nell'Adreno 850 rispetto alla precedente architettura GPU. Tuttavia, non sono stati ancora rilasciati dati dettagliati sugli scenari applicativi specifici di MALU, sul livello di miglioramento delle prestazioni che può apportare e su quali API software aprirà eventualmente alle applicazioni.
Qualcomm ha affermato che il supporto relativo a MALU dovrà essere ulteriormente aggiunto in futuro e non coinvolge solo il driver del kernel Linux, ma richiede anche la collaborazione del driver grafico dello spazio utente Mesa. Pertanto, anche se questa volta il supporto GPU di base dell'Adreno 850 entrasse nella linea principale di Linux, la potenza di calcolo della matrice MALU non sarebbe immediatamente disponibile.
Oltre all'unità di calcolo, è stato adattato anche il sistema di gestione energetica dell'Adreno 850. La patch mostra che la GPU aggiunge una nuova barra di alimentazione per fornire alimentazione ad alcuni moduli hardware della GPU. Allo stesso tempo, la GPU Management Unit, o GMU, responsabile della gestione dello stato di alimentazione della GPU, ora dispone di un'area di power gating GDSC indipendente e questa parte è alimentata da un altro power rail chiamato MxG.
Queste modifiche potrebbero sembrare dettagli hardware di basso livello, ma sono molto importanti per i driver Linux. La GPU non deve solo completare i calcoli grafici, ma deve anche regolare dinamicamente la tensione, la frequenza e lo stato dell'alimentazione tra gli stati di inattività, di carico basso e di carico elevato. Pertanto, le modifiche all'hardware di gestione dell'alimentazione devono essere gestite correttamente nel driver del kernel, altrimenti potrebbero influire sul consumo energetico, sulla stabilità e persino sul normale funzionamento della GPU.
L'attuale lotto di codici Adreno 850 e Adreno 845 non è ancora entrato nella versione del kernel Linux ufficialmente rilasciata e è ancora in fase di revisione del codice. Allo stesso tempo, affinché i dispositivi dotati di Adreno 850 possano davvero ottenere un'accelerazione hardware completa sotto Linux, è necessario che siano presenti firmware, driver dello spazio utente Mesa e supporto relativo al display.
Il supporto dello spazio utente della GPU Qualcomm Adreno nell'ecosistema Linux si basa principalmente su Freedreno e Turnip nel progetto Mesa. Freedreno è responsabile delle interfacce grafiche come OpenGL, mentre Turnip è responsabile di Vulkan. Per Adreno 850, il successivo supporto Mesa determinerà le prestazioni grafiche finali di Linux insieme al lavoro del driver del kernel.
Attualmente, i test di Qualcomm sull'Adreno 850 sono ancora nella fase iniziale, quindi questa patch non può essere intesa come "Adreno 850 può già funzionare normalmente sotto Linux". Il codice del driver ha appena iniziato a entrare nel processo di sviluppo principale e ci sono ancora molti passaggi da compiere prima che gli utenti comuni possano ottenere l'accelerazione grafica completa sui dispositivi reali.
Tuttavia, a giudicare dal momento, le azioni di Qualcomm sono ancora piuttosto attive. In passato, le nuove GPU spesso dovevano attendere molto tempo per ottenere un driver Linux open source completo. Tuttavia, l'Adreno 850 ha una patch di supporto del kernel Linux solo un giorno dopo l'annuncio ufficiale dell'hardware, indicando che Qualcomm sta aumentando in modo significativo i suoi investimenti nella linea principale Linux e nell'ecologia della grafica open source.
Questa tendenza è sostanzialmente coerente con la recente direzione di Qualcomm di promuovere il supporto Snapdragon X2 Linux. Qualcomm attualmente non solo continua a fornire driver Linux per la GPU Adreno X2-85 sulla piattaforma PC, ma sta anche promuovendo il supporto Freedreno e Turnip a Mesa, in modo che Snapdragon X2 disponga gradualmente di uno stack grafico Linux completo.
Per gli sviluppatori Linux, il fatto che Adreno 850 possa entrare così rapidamente nel processo di sviluppo dei driver open source significa che il ciclo di supporto hardware della piattaforma mobile di punta di Qualcomm nell'ecosistema Linux potrebbe essere ulteriormente ridotto in futuro. Per l'intera comunità open source, ciò significa anche che gli sviluppatori possono ottenere prima le informazioni sull'hardware e il codice del driver della nuova GPU, promuovendo così contemporaneamente l'adattamento dello stack grafico prima e dopo il lancio del nuovo chip.
Al momento, il supporto Linux dell'Adreno 850 è ancora in una fase iniziale, e funzioni come il core della matrice MALU, il driver grafico Mesa, il firmware e l'output del display dovranno ancora essere migliorate in futuro. Tuttavia, Qualcomm ha presentato una patch per il driver open source della GPU appena un giorno dopo il rilascio del nuovo chip, dimostrando che sta cercando di mantenere la nuova generazione di GPU Adreno più strettamente sincronizzata con l'ecosistema Linux principale dall'inizio del rilascio del prodotto.
Articoli correlati:
Qualcomm estende il supporto del kernel Linux per la GPU Snapdragon X2 La patch del driver Adreno X2-85 è stata inviata
Commenti