- Python dijalankan langsung di perangkat keras melalui prosesor kustom, dan bekerja tanpa interpreter maupun JIT
- Waktu pulang-pergi GPIO pada PyXL adalah 480ns, 30 kali lebih cepat daripada PyBoard dengan MicroPython
- Berjalan di Zynq-7000 FPGA, dengan ARM CPU menangani konfigurasi dan memori
- GPIO berarti input/output serbaguna, dan PyXL mengeksekusinya langsung di perangkat keras tanpa melewati VM atau software stack
- Memberikan performa yang deterministik dan konsisten untuk sistem kontrol real-time, robotika, dan sistem industri embedded
Pengenalan PyXL
- PyXL adalah prosesor kustom yang menjalankan Python langsung di perangkat keras
- Menjalankan kode Python di silikon tanpa interpreter maupun JIT
- Mengubah CPython ByteCode menjadi assembly kustom lalu mengeksekusinya di prosesor pipeline
Fitur PyXL
- Bukan C atau inline loop
- Bukan MicroPython atau JIT
- Tidak menjalankan Linux atau sistem operasi
- Ini adalah prosesor khusus Python yang dirancang untuk determinisme dan kecepatan
Lingkungan eksekusi PyXL
- Berjalan di Zynq-7000 FPGA dan menggunakan papan pengembangan Arty-Z7-20
- Core PyXL berjalan pada 100MHz
- ARM CPU menangani konfigurasi dan memori, sementara kode Python dieksekusi langsung di perangkat keras
Apa itu GPIO?
- GPIO berarti input/output serbaguna, yang memungkinkan software mengontrol LED, tombol, sensor, motor, dan lainnya
- Di MicroPython, kode Python berinteraksi dengan fungsi C untuk menangani register perangkat keras
- PyXL menjalankan Python bytecode langsung di perangkat keras sehingga berjalan di perangkat keras native tanpa interpreter maupun pemanggilan fungsi
Pengujian GPIO
- Pengujian dilakukan dengan menghubungkan dua pin pada papan Arty menggunakan kabel jumper
- Sebuah program Python ditulis untuk mengukur waktu dari saat pin GPIO 1 diset ke 1 hingga 1 terdeteksi pada pin lain
- Perbedaan performa diverifikasi melalui video yang membandingkan PyXL dan VM MicroPython pada PyBoard
Struktur program PyXL
- Program Python dikompilasi menjadi CPython Bytecode lalu diubah menjadi assembly PyXL
- Sebuah biner dibuat lalu dikirim ke papan Arty melalui jaringan
- ARM CPU menerima aplikasi, menyalinnya ke memori bersama dengan perangkat keras PyXL, lalu menjalankannya
Perbandingan platform
- Latensi pulang-pergi GPIO: PyXL 480ns, MicroPython (PyBoard) 14,741ns
- PyXL 30 kali lebih cepat daripada PyBoard, dan jika kecepatan clock dinormalisasi maka menjadi 50 kali lebih cepat
Keunggulan PyXL
- Python VM berbasis software interpreter, yang menimbulkan overhead dan kompleksitas
- PyXL menghilangkan hambatan ini dengan menjalankan kode Python langsung di perangkat keras
- Akses GPIO bersifat fisik, dan alur kontrol dapat diprediksi serta memberikan performa yang konsisten
Bidang penerapan PyXL
- Dapat diimplementasikan dalam Python murni untuk sistem kontrol real-time
- Memenuhi batas waktu yang ketat pada inferensi ML dan loop respons sensor
- Menangani umpan balik motor dan sensor fusion dalam robotika dengan presisi tingkat siklus
- Cocok untuk sistem industri embedded ketika timing dan keandalan sangat penting
6 komentar
Bagaimana Anda menangani perubahan versi?
Bagi para engineer HiL, ini mungkin bisa menjadi kabar baik.
Wah, menarik ya.
Saya sangat menantikannya.
Pengembang proyek ini akan membawakan presentasi tentang topik ini di PyCon US kali ini. Saat meninjau proposalnya di awal tahun, topik ini juga cukup ramai dibicarakan di antara para reviewer, tetapi dibandingkan dengan itu, deskripsi presentasinya terasa terlalu sederhana. Bagi yang pergi ke PyCon, saya sangat merekomendasikan untuk menyempatkan mendengarkannya.
https://us.pycon.org/2025/schedule/presentation/40/
Komentar Hacker News
Penasaran apakah ada batasan pada jenis kode yang bisa dijalankan, selain batasan memori atau interaksi dengan OS. Menurut saya, gagasan menjadikan bytecode yang menargetkan runtime bahasa dinamis sebagai prosesor khusus belum cukup dieksplorasi belakangan ini. Ingin tahu kenapa arah ini dipilih, kenapa ini dianggap ide yang bagus, dan bagaimana proses implementasinya
Membangun prosesor perangkat keras yang menjalankan program Python secara langsung tanpa VM atau interpreter tradisional. Benchmark awal: waktu bolak-balik GPIO 480ns, 30 kali lebih cepat daripada MicroPython
Pekerjaan yang sangat keren. Saya penasaran apakah pada akhirnya himpunan fiturnya akan lebih besar daripada membuat perangkat keras khusus dibanding mengompilasi secara native bahasa yang aman secara tipe dengan sintaks Python. Garbage collection di latar belakang tidak semudah kedengarannya, tetapi saya sedang berbicara tentang seseorang yang sudah berhasil menyelesaikan pekerjaan yang sangat sulit dan mengesankan
Saya penasaran kenapa "mengompilasi" Python bukan hal yang lazim. Saya paham interpreter bagus untuk iterasi cepat, kompatibilitas, dan sebagainya, tetapi saya heran kenapa di dunia Python melepaskan manfaat kompilasi dan membuang file "source" ke produksi menjadi praktik yang diterima
Sangat menarik. Saya penasaran apa batas fisik dasarnya. Maksudnya, presisi timing, latensi, dan jitter. Seberapa cepat bytecode PyXL bisa merespons input. Ada sesuatu yang mirip bernama ARTIQ, yang menjalankan kode Python dengan performa "setingkat embedded". ARTIQ umum dipakai di laboratorium fisika kuantum. Kode Python dan FPGA harus saling berkomunikasi, dan ini secara teknis sulit serta penuh jebakan. Jika PyXL membuatnya lebih sederhana bagi pengguna, itu keuntungan besar bagi semua orang
Saat C# muncul, saya yakin seseorang akan membuat prosesor yang menjalankan bytecode .Net secara native. Saya penasaran HDL apa yang digunakan untuk merancang prosesornya. Juga ingin tahu apakah bahasa assembly prosesor ini bisa dibagikan. Saya penasaran apa keuntungan merancang prosesor dan membuat compiler bytecode Python dibanding membuat compiler bytecode untuk prosesor yang sudah ada (ARM/x86/RISCV dan sebagainya)
Ingin bertanya kepada para developer Python. Saya melihat proyek ini dan menganggapnya mengesankan, tetapi sebagai orang luar terhadap bahasa ini, saya kurang memahaminya. a) apa yang sebelumnya sulit karena Python, b) kenapa Python berguna untuk pekerjaan ini, c) bagaimana pendapat kalian tentang Python itu sendiri. Saya pernah mengalami kesulitan karena Python 2 dan 3, virtual environment, library untuk tiap versi, dan sebagainya. Sebagai developer PHP/Go saya tertarik, tetapi masalah-masalah itu membuat saya ragu
Pekerjaan yang luar biasa. Setiap kali saya melihat implementasi hebat di FPGA, saya menyesalkan Tabula tidak berhasil. Itu FPGA yang sangat inovatif dan cepat
Saya penasaran apakah ini berarti ASIC menjalankan mikrokontroler khusus Python, dengan microcode yang disesuaikan untuk Python. Apakah ada compiler yang mengompilasi bytecode Python menjadi microcode, lalu infrastruktur pendukung mengirimkan bytecode yang telah dikompilasi ke ASIC. Menarik. Saya penasaran apakah pemahaman saya sudah benar