PyXL – Python su embedded system non sarà più lo stesso

Il progetto PyXL mira a migliorare le prestazioni di Python per i progetti embedded, promettendo un aumento di velocità di trenta volte rispetto a MicroPython, utilizzando un processore personalizzato specifico per Python, attualmente collaudato in formato FPGA.

“Python è potente ma lento, frenato dal sovraccarico dell’interprete e dalla tipizzazione dinamica”, afferma Ron Livne, creatore del progetto. “E se funzionasse nativamente sull’hardware? Ho creato PyXL, un processore personalizzato progettato per accelerare l’esecuzione di Python in silicio, eliminando i suoi maggiori colli di bottiglia prestazionali. PyXL raggiunge enormi guadagni di efficienza per ciclo, superando significativamente persino CPU di fascia alta come l'[Apple] M1 Pro!”

Python è un linguaggio popolare grazie alla sua accessibilità, ma nonostante l’ampio utilizzo negli ambienti del calcolo ad alte prestazioni, è considerevolmente meno efficiente di linguaggi come C/C++ e l’assembler diretto. Il modo tradizionale per aggirare questo problema è quello di delegare il pesante carico di calcolo a una libreria scritta in un linguaggio più veloce, ma il progetto di Livne adotta l’approccio opposto e modifica l’hardware su cui Python viene eseguito.

“PyXL è un processore hardware personalizzato che esegue Python direttamente, senza interprete, senza compilazione JIT [Just-In-Time] e senza trucchi. Prende il normale codice Python e lo esegue in silicio”, spiega l’ingegnere del software Livne. “Una toolchain personalizzata compila un file .py in CPython ByteCode, lo traduce in un assembly personalizzato e produce un binario che viene eseguito su un processore pipeline costruito da zero.”

 

 

Come potete vedere nel video, I risultati sono impressionanti: un programma scritto per misurare la latenza di andata e ritorno per l’attivazione e la disattivazione di un pin GPIO (input/output generico) mostra un guadagno trenta volte maggiore quando si utilizza un processore PyXL implementato su una scheda di sviluppo FPGA Digilent Arty rispetto a quando si utilizza MicroPython con il processore generico su una scheda di sviluppo PyBoard, che aumenta fino a cinquanta volte se si considera la differenza di velocità di clock tra i due.

“Questo non è solo un miglioramento delle prestazioni, è una vera e propria rivoluzione. PyXL offre un livello di reattività e determinismo che Python non ha mai avuto in contesti embedded o in tempo reale”, afferma Livne. “Le VM [Macchine Virtuali] Python, anche quelle progettate per i microcontrollori, sono comunque basate su interpreti software. Questo introduce overhead e complessità tra il codice e l’hardware. PyXL rimuove questa barriera. Il codice Python viene eseguito direttamente nell’hardware. L’accesso GPIO è fisico. Il flusso di controllo è prevedibile. L’esecuzione è precisa e coerente fin dalla progettazione.”

Questo, afferma Livne, rende Python più adatto a casi d’uso che includono sistemi di controllo in tempo reale, inferenza di apprendimento automatico e intelligenza artificiale (ML e AI) e cicli di risposta dei sensori, attività di robotica come feedback motorio e fusione di sensori a livello di ciclo preciso, e nei sistemi industriali embedded “dove tempi e affidabilità sono importanti”.

Ulteriori informazioni sono disponibili sul sito web di PyXL, sebbene il codice non sia ancora stato rilasciato; Livne terrà una presentazione sul progetto al PyCon 2025 sabato 17 maggio a Pitsburgh, in Pennsylvania.

 

Kit consigliati:

###Da sempre appassionato di tecnologia, soffro di insaziabile curiosità scientifica. Adoro sperimentare e approfondire le mie conoscenze sulle ultime novità sul mercato in termini di hardware, alta tecnologia e videogiochi. Attratto e coinvolto nella prototipazione hardware dalla piattaforma Arduino, Raspberry Pi e Nvidia Jetson.### ###Always passionate about technology, I am suffering from insatiable scientific curiosity. I love experimenting and deepening of my knowledge on the latest news on the market in terms of hardware, hi-tech and video games. Got attracted and involved in hardware prototyping by the Arduino platform, Raspberry Pi and Nvidia Jetson.###

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.