19 पॉइंट द्वारा GN⁺ 2025-04-29 | 6 टिप्पणियां | WhatsApp पर शेयर करें
  • Python को हार्डवेयर पर सीधे चलाने वाला custom processor, जो interpreter या JIT के बिना काम करता है
  • PyXL का GPIO round-trip समय 480ns है, जो MicroPython के PyBoard से 30 गुना तेज़ है
  • यह Zynq-7000 FPGA पर चलता है, और ARM CPU configuration व memory को संभालता है
  • GPIO का मतलब general-purpose input/output है, और PyXL इसे hardware में सीधे चलाता है, इसलिए VM या software stack से नहीं गुजरता
  • real-time control systems, robotics, embedded industrial systems आदि में deterministic और consistent performance देता है

PyXL परिचय

  • PyXL एक custom processor है जो Python को hardware पर सीधे चलाता है
  • यह interpreter या JIT के बिना silicon पर Python code चलाता है
  • CPython ByteCode को custom assembly में बदलकर pipeline processor पर चलाया जाता है

PyXL की विशेषताएँ

  • यह C या inline loop नहीं है
  • यह MicroPython या JIT नहीं है
  • यह Linux या operating system नहीं चलाता
  • यह Python के लिए बना प्रोसेसर है, जिसे deterministic behavior और speed के लिए डिज़ाइन किया गया है

PyXL का execution environment

  • यह Zynq-7000 FPGA पर चलता है, और Arty-Z7-20 development board का उपयोग करता है
  • PyXL core 100MHz पर चलता है
  • ARM CPU configuration और memory को संभालता है, जबकि Python code hardware पर सीधे चलता है

GPIO क्या है?

  • GPIO का मतलब general-purpose input/output है, जो software को LED, button, sensor, motor आदि को control करने देता है
  • MicroPython में Python code, C functions के साथ interact करके hardware registers को handle करता है
  • PyXL Python bytecode को hardware पर सीधे चलाता है, इसलिए यह interpreter या function call के बिना native hardware par execute होता है

GPIO टेस्ट

  • Arty board के दो pins को jumper cable से जोड़कर test किया गया
  • एक Python program लिखकर यह मापा गया कि GPIO pin 1 को 1 पर set करने के बाद दूसरे pin पर 1 detect होने तक कितना समय लगता है
  • PyXL और PyBoard के MicroPython VM की तुलना करने वाले video से performance का अंतर देखा गया

PyXL का program structure

  • Python program को पहले CPython Bytecode में compile किया जाता है, फिर PyXL assembly में बदला जाता है
  • एक binary बनाई जाती है और network के ज़रिए Arty board पर भेजी जाती है
  • ARM CPU application प्राप्त करके उसे PyXL hardware और shared memory में copy करता है और execute करता है

Platform comparison

  • GPIO round-trip latency: PyXL में 480ns, MicroPython (PyBoard) में 14,741ns
  • PyXL, PyBoard से 30 गुना तेज़ है, और clock speed को normalize करने पर 50 गुना तेज़ है

PyXL के फायदे

  • Python VM एक software interpreter पर आधारित होता है, जिससे overhead और complexity बढ़ती है
  • PyXL इन barriers को हटाकर Python code को hardware पर सीधे चलाता है
  • GPIO access physical है, और control flow predictable है, जिससे consistent performance मिलती है

PyXL के उपयोग क्षेत्र

  • real-time control systems में pure Python से implementation संभव है
  • ML inference और sensor response loops में strict timing constraints को पूरा करता है
  • robotics में motor feedback और sensor fusion को cycle-level precision के साथ handle करता है
  • embedded industrial systems में, जहाँ timing और reliability महत्वपूर्ण हों, वहाँ यह उपयुक्त है

6 टिप्पणियां

 
cgl00 2025-04-30

वर्ज़न बदलने पर आप कैसे निपटते हैं?

 
bus710 2025-04-30

HiL इंजीनियरों के लिए यह शायद अच्छी खबर हो सकती है।

 
huiya 2025-04-29

ओह, काफ़ी दिलचस्प है।

 
jujumilk3 2025-04-29

काफ़ी ज़्यादा उत्साहित हूँ

 
scari 2025-04-29

इस प्रोजेक्ट के डेवलपर इस बार PyCon US में इसी विषय पर प्रस्तुति दे रहे हैं। इस साल की शुरुआत में proposal review के समय भी reviewers के बीच यह काफ़ी चर्चा का विषय बना था, लेकिन उसके मुकाबले प्रस्तुति का परिचय बहुत ही साधारण लग रहा है। जो लोग PyCon जा रहे हैं, उन्हें मैं ज़रूर इसे एक बार सुनने की सिफारिश करूंगा।

https://us.pycon.org/2025/schedule/presentation/40/

 
GN⁺ 2025-04-29
Hacker News राय
  • यह जानने की उत्सुकता है कि कौन-सा कोड चल सकता है, इस पर कोई सीमाएँ हैं या नहीं — memory limits या OS interaction को छोड़कर। मेरा मानना है कि dynamic language runtime को target करने वाले bytecode के लिए custom processor बनाने के विचार को हाल में पर्याप्त रूप से explore नहीं किया गया है। यह दिशा क्यों चुनी गई, यह अच्छा विचार क्यों लगा, और implementation process के बारे में जानना चाहूँगा

  • आपने एक hardware processor बनाया है जो पारंपरिक VM या interpreter के बिना सीधे Python program चलाता है। शुरुआती benchmark: GPIO round-trip time 480ns है, जो MicroPython से 30 गुना तेज़ है

  • यह बहुत शानदार काम है। सोच रहा हूँ कि क्या अंतिम feature set custom hardware बनाने की तुलना में Python syntax वाली type-safe language को native compile करने से बड़ा होगा। background garbage collection कहना जितना आसान है, करना उतना नहीं, लेकिन मैं ऐसे व्यक्ति से बात कर रहा हूँ जिसने पहले ही बेहद प्रभावशाली और कठिन काम कर दिखाया है

  • यह जिज्ञासा है कि Python को "compile" करना रोज़मर्रा की बात क्यों नहीं है। समझता हूँ कि interpreter तेज़ iteration, compatibility वगैरह के लिए अच्छा है, लेकिन Python ecosystem में compilation के फायदों को छोड़कर production में "source" files डाल देना स्वीकार्य प्रथा क्यों है, यह समझना चाहता हूँ

  • बहुत दिलचस्प है। यह जानना चाहूँगा कि बुनियादी physical limits क्या हैं — यानी timing precision, latency और jitter। PyXL bytecode input पर कितनी तेजी से प्रतिक्रिया कर सकता है। ARTIQ नाम की एक मिलती-जुलती चीज़ है, जो Python code को 'embedded-level' performance पर चलाती है। ARTIQ आमतौर पर quantum physics labs में इस्तेमाल होती है। वहाँ Python code और FPGA को एक-दूसरे से बात करनी पड़ती है, जो तकनीकी रूप से कठिन है और उसमें कई pitfalls हैं। अगर PyXL इसे users के लिए सरल बनाता है, तो यह सभी के लिए बड़ा फायदा है

  • जब C# आया था, तब मुझे पूरा यकीन था कि कोई .Net bytecode को native रूप से चलाने वाला processor बनाएगा। यह जानना चाहूँगा कि processor design करने के लिए कौन-सा HDL इस्तेमाल किया गया। यह भी जानना चाहूँगा कि क्या processor की assembly language साझा की जा सकती है। मौजूदा processors (ARM/x86/RISCV आदि) के लिए bytecode compiler बनाने की तुलना में processor design करने और Python bytecode compiler बनाने का फायदा क्या है

  • Python developers से एक सवाल है। यह project देखकर प्रभावित हूँ, लेकिन language के बाहरी व्यक्ति के रूप में यह मुझे पूरी तरह समझ नहीं आता। a) पहले Python की वजह से किन चीज़ों में कठिनाई हुई, b) इस काम के लिए Python क्यों उपयोगी है, c) Python के बारे में आपकी समग्र राय क्या है। Python 2 और 3, virtual environments, हर version की libraries आदि की वजह से मुझे दिक्कतें हुई हैं। PHP/Go developer के रूप में रुचि है, लेकिन इन समस्याओं की वजह से हिचकिचाहट होती है

  • कमाल का काम है। जब भी FPGA पर कोई शानदार implementation देखता हूँ, तब अफसोस होता है कि Tabula सफल नहीं हो पाया। वह बहुत innovative और तेज़ FPGA था

  • क्या सही समझ रहा हूँ कि ASIC एक Python-dedicated microcontroller चला रहा है, जिसमें Python के लिए tuned microcode है? क्या Python bytecode को microcode में compile करने वाला compiler और उसे support करने वाला infrastructure ASIC तक compiled bytecode पहुँचाता है? दिलचस्प है। बस यह जानना चाहता हूँ कि मेरी समझ सही है या नहीं