AMD ha sviluppato dei driver test Radeon con AI

AMD RADEON LOGO

Un dirigente AMD ha creato un driver sperimentale in Python usando l’IA di Claude Code per interagire direttamente con le GPU Radeon su Linux. Non è un sostituto dei driver da gaming, ma un tool di test ultra-leggero che bypassa lo stack software complesso (ROCm) per parlare col Kernel. Lo scopo è permettere agli ingegneri di fare debugging rapido e diagnostica hardware senza dover compilare migliaia di righe in C++.

Un esperimento condotto da un dirigente di AMD ha attirato l’attenzione della comunità Linux negli ultimi giorni. Anush Elangovan, vicepresidente corporate dell’azienda, ha pubblicato un piccolo driver sperimentale per le GPU Radeon scritto interamente in Python e generato tramite intelligenza artificiale. Il progetto, realizzato utilizzando Claude Code di Anthropic, non rappresenta però un’alternativa ai driver grafici ufficiali dell’azienda.

Un tool di test, non un driver completo

Nonostante i titoli possano suggerire scenari rivoluzionari, il lavoro di Elangovan ha una natura più tecnica e circoscritta. Il codice sviluppato non sostituisce i driver Radeon utilizzati quotidianamente dagli utenti Linux, ma funge da strumento di test leggero progettato per interagire direttamente con le interfacce GPU di basso livello. Le GPU Radeon moderne su Linux operano normalmente attraverso uno stack software articolato basato su ROCm, dove le applicazioni comunicano con librerie che a loro volta dialogano con runtime in user-space, fino ad arrivare al kernel driver AMDGPU.

Il progetto di Elangovan bypasssa gran parte di questo stack. Il codice Python comunica direttamente con il kernel driver attraverso nodi dispositivo come /dev/kfd e /dev/dri/render*, permettendo di allocare memoria GPU, creare code di calcolo, inviare pacchetti di comandi e sincronizzare operazioni tra CPU e GPU. Il kernel driver, che rimane completamente invariato, continua a gestire tutto il lavoro pesante, mentre il livello Python si limita a costruire i pacchetti di comando e inviarli attraverso le API kernel esistenti.

Come funziona l’architettura

La soluzione adottata consente di raggiungere il livello pubblico più basso dell’interfaccia compute di AMD senza passare attraverso l’intero stack ROCm. Il prototipo è già in grado di gestire alcune operazioni reali, tra cui:

  • Creazione di code di comando
  • Allocazione della memoria
  • Pacchetti di dispatch per il calcolo
  • Primitive di sincronizzazione GPU

All’interno del codice emerge un dettaglio interessante: il riferimento a un’architettura modulare per un futuro backend bare-metal PCI. Questa configurazione permetterebbe di bypassare persino il kernel driver e comunicare direttamente con la GPU attraverso PCI, una modalità tipicamente utilizzata per il bring-up hardware, la diagnostica o ambienti di test a bassissimo livello. Questo tipo di setup sacrificherebbe funzionalità essenziali come il multitasking, la memoria GPU virtuale e il DRM.

Utilizzo pratico per debugging

L’utilità principale del progetto risiede nelle possibilità di debugging e sperimentazione che offre agli ingegneri. Grazie a questo strumento è possibile isolare bug in ROCm o testare funzionalità GPU specifiche senza dover compilare progetti C++ complessi. Il fatto che sia scritto in Python rende il codice compatto e facilmente modificabile, ideale per scenari di test dove l’obiettivo è riprodurre rapidamente comportamenti hardware specifici.

I driver GPU di produzione rappresentano progetti di enorme complessità, che includono compilatori shader, gestori di memoria, power management, livelli di sicurezza e supporto per API complesse come Vulkan e OpenGL. Nulla di tutto questo è presente nell’esperimento: il lavoro di Elangovan dimostra invece che l’interfaccia kernel Linux di AMD è sufficientemente aperta e modulare da permettere l’interazione tramite linguaggi di alto livello, aprendo possibilità interessanti per tool diagnostici e ambienti di sviluppo specializzati.

Fonte