В слове «победа» мне слышится торжествующий топот дураков.. (Ф. Искандер).

PyXL: запускайте код Python непосредственно на оборудовании!

30.04.2025
PyXL: запускайте код Python непосредственно на оборудовании!

Мы все знаем Python. Это один из самых популярных языков программирования, потому что он прост в чтении и позволяет быстро выполнять задачи. Но если вам нужно, чтобы ваш код работал невероятно быстро или на крошечных недорогих чипах, называемых микроконтроллерами, Python обычно не является первым выбором. Это связано с тем, что для работы Python обычно требуются дополнительные программные уровни, такие как интерпретаторы или виртуальные машины (ВМ), которые могут замедлять работу.

Но что, если бы вы могли запускать код Python без всего этого дополнительного программного обеспечения? Непосредственно на специально разработанном устройстве? Это захватывающая идея, лежащая в основе нового проекта под названием PyXL.

 

Что именно такое PyXL?

Представьте, что PyXL — это специально разработанный компьютерный чип (аппаратный процессор), предназначенный для понимания и выполнения кода Python. Вместо стандартного компьютерного чипа, на котором работает программа-интерпретатор Python, аппаратный PyXL сам является интерпретатором, встроенным прямо в «кремний» (материал, из которого сделаны чипы).

PyXL: запускайте код Python непосредственно на оборудовании!

PyXL, специально созданный процессор, предназначенный для выполнения кода на Python

 

Это не просто запуск обычной программы Python на стандартном чипе, но очень, очень быстрый запуск. PyXL использует специальный набор инструментов (цепочку инструментов) для подготовки вашего кода Python.

Он берёт ваш стандартный файл Python (.py) и сначала преобразует его в формат CPython ByteCode, затем переводит его в специальный набор инструкций (PySM) и, наконец, создаёт аппаратный файл (двоичный код), который может напрямую запускать чип PyXL.

Читать  Дорожная карта Rust: лучший способ изучить Rust в 2024 году

 

Зачем создавать оборудование для Python?

Основная цель PyXL — обеспечить сверхвысокую скорость и предсказуемое время выполнения кода Python, особенно в ситуациях, когда время выполнения имеет решающее значение.

Давайте рассмотрим простой тест: очень быстро включаем и выключаем цифровой вывод микросхемы и измеряем время, за которое сигнал проходит от одного вывода к другому (это называется обратным циклом GPIO). Это базовый тест, который показывает, насколько быстро микросхема может реагировать на внешние воздействия.

На популярной плате MicroPython (называемой PyBoard) этот тест GPIO занимает около 15 000 наносекунд (это 15 миллионных долей секунды). Это связано с тем, что код Python должен пройти через программный интерпретатор MicroPython и несколько программных уровней, прежде чем он сможет взаимодействовать с выводом.

PyXL пропускает эти программные уровни. Специальное аппаратное обеспечение PyXL предназначено для непосредственного выполнения инструкций из вашего скомпилированного кода Python, а подключение к выводам GPIO осуществляется физически через процессор. В том же тесте PyXL обеспечил время передачи данных по GPIO всего 480 наносекунд.

Это означает, что PyXL примерно в 30 раз быстрее, чем MicroPython на PyBoard в этом тесте. Если учесть, что чип PyXL в настоящее время работает на более низкой частоте (100 МГц по сравнению с 168 МГц на PyBoard), разница в скорости ещё более существенная, примерно в 50 раз быстрее.

Помимо скорости, PyXL предлагает детерминированное время выполнения. В тесте GPIO время выполнения всегда было одинаковым (480 нс). MicroPython, как и другие программные системы, демонстрирует некоторую вариативность времени выполнения (дрожание). Такая предсказуемость важна для приложений, которым необходимо реагировать на события в нужный момент.

Читать  Найти максимальное значение в списке Python

 

Для чего можно использовать PyXL?

Поскольку PyXL делает Python быстрым и предсказуемым, он может быть полезен в тех областях, где Python традиционно не подходил из-за ограничений производительности. К ним относятся:

  • Системы управления в реальном времени: когда необходимо контролировать машины или процессы с очень высокой точностью.
  • Робототехника: для таких задач, как обработка данных с датчиков и высокоточное управление двигателями.
  • Системы, требующие быстрой реакции на показания датчиков: например, в машинном обучении, где решение, основанное на показаниях датчиков, должно приниматься мгновенно.
  • Встраиваемые промышленные системы: Где решающее значение имеют надежность и точный расчет времени.

 

Идея заключается в том, что вы можете написать важные для производительности части своего проекта на Python и запускать их непосредственно на оборудовании PyXL для обеспечения скорости и предсказуемости.

 

Готов ли PyXL для всех?

PyXL в настоящее время является проектом на ранней стадии разработки, созданным одним человеком. Он работает на специальной плате разработки, в которой используется чип Zynq-7000 FPGA (в частности, плата разработки Arty-Z7-20).

Важно отметить, что прямо сейчас он поддерживает только подмножество Python. Многие функции стандартного Python (CPython) еще не реализованы. Некоторые функции, такие как сложные изменения кода во время выполнения или динамическая загрузка, могут никогда не поддерживаться в полной мере, поскольку основное внимание уделяется простому и предсказуемому выполнению для встроенных систем.

Читать  Особенности Java

Кроме того, существующие библиотеки Python, написанные на C, не могут напрямую использоваться в PyXL в том виде, в котором он существует сегодня. Управление памятью (например, сборка мусора) также находится в стадии разработки.

Хотя разработчик описывает PyXL как «непосредственное» выполнение Python на аппаратном уровне, в некоторых технических обсуждениях отмечается, что он включает в себя компиляцию кода Python в специальный набор инструкций для аппаратного обеспечения, что является формой компиляции, как при подготовке кода для любого другого чипа.

Однако ключевое отличие заключается в том, что аппаратное обеспечение разработано специально для этих инструкций, похожих на Python, что позволяет обойтись без отдельного программного интерпретатора.

 

Заглядывая в будущее

PyXL предлагает уникальный и потенциально мощный способ использования Python во встроенных приложениях и приложениях реального времени, создавая специально для него аппаратное обеспечение.

Несмотря на то, что он всё ещё находится в разработке и имеет ограничения, первые результаты показывают значительный скачок в скорости и предсказуемости по сравнению с использованием Python на традиционных микроконтроллерах.

Разработчик планирует поделиться более подробной технической информацией на PyCon 2025.

Вкратце, PyXL — это проект по созданию специального компьютерного чипа для очень быстрого и предсказуемого выполнения кода Python, открывающий возможности для использования Python в системах, где важна скорость.

 

Ресурс:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Scroll to Top