PyPIM: падение стены между классическим кодом и вычислениями в памяти

PyPIM: падение стены между классическим кодом и вычислениями в памяти

Компьютер научили понимать Python без переводчика.

image

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

В классических компьютерах процесс вычислений напоминает бесконечное движение по кругу. Программист пишет код на понятном человеку языке – например, Python. Специальный транслятор преобразует этот код в машинные команды, понятные процессору. Затем начинается самое интересное: процессор запрашивает данные из памяти, обрабатывает их и отправляет обратно. Каждая операция требует времени на пересылку информации – будто курьер носится между двумя офисами с документами. При современных объемах данных эти постоянные "путешествия" создают задержки.

Однако подход вычислений в памяти позволяет сократить количество таких передач данных между процессором и памятью, что значительно ускоряет обработку и снижает энергопотребление. В последние десятилетия скорость вычислений процессоров и объем памяти значительно возросли, что, в свою очередь, лишь усилило проблему узких мест при передаче данных между компонентами. Исследования профессора Шахара Кватински направлены на преодоление этой так называемой "memory wall", когда узким местом становится именно обмен данными между процессором и памятью.

За восемь десятилетий фундаментальные принципы написания кода почти не изменились. Однако новые методы вычислений потребовали полностью пересмотреть подход к программированию.

Без специального конвертера создание программ для таких систем превратилось бы в настоящий кошмар. Разработчикам пришлось бы заново писать низкоуровневый машинный код, распределяя задачи между процессором и памятью. PyPIM избавляет от этих сложностей – он сам преобразует привычные команды Python в инструкции, исполняемые непосредственно в памяти машины. Перенос части вычислений сократит объем передаваемых данных и ускорит работу всей системы.

Благодаря новому инструменту программисты смогут использовать привычные методы работы без необходимости полного переписывания кода. Им не придется менять привычные методы работы, да и вообще вникать в особенности новой архитектуры не обязательно. Дополнительно разработан симулятор, позволяющий оценивать прирост производительности при использовании новой архитектуры. Исследователи Техниона показали, что использование PyPIM в задачах, связанных с искусственным интеллектом и анализом данных, позволяет значительно сократить время выполнения операций.

PyPIM действует как промежуточный слой наподобие DXVK, который переводит команды DirectX в формат Vulkan.

Samsung и TSMC уже занимаются созданием специальных модулей на основе MRAM-ячеек для поддержки вычислений в памяти. Несмотря на экспериментальный характер разработок, производители постепенно приближают появление коммерческих образцов. Изобретение израильских специалистов дало мощный импульс развитию программного обеспечения для новой архитектуры. Помимо практического решения, Технион заложил теоретический фундамент для создания специализированных языков программирования.

Квантовый кот Шрёдингера ищет хозяина!

Живой, мертвый или в суперпозиции? Узнайте в нашем канале

Откройте коробку любопытства — подпишитесь