Efficient Computer — стартап из Питтсбурга, основанный в 2022 году командой исследователей из Университета Карнеги-Меллона. Между прочим, именно Университет Карнеги-Меллона является основным поставщиком кадров в MicrosoftResearch.
Efficient Computer разрабатывает принципиально новую не Фон-Неймановскую архитектуру процессоров и программную экосистему.
Их флагманская технология, известная как архитектура Fabric, представляет собой перенастраиваемый процессор с потоковой обработкой данных, минимизирующий внутренние перемещения данных и управляющие издержки — основные источники энергопотерь в классических решениях. Fabric размещает инструкции пространственно на чипе. Это позволяет данным перемещаться по заранее определённому маршруту между вычислительными узлами — так называемыми Tiles. Поскольку tile переводится как плитка, я бы и название архитектуры перевел как Кафель. Каждая плитка — это упрощённый вычислительный блок, лишённый избыточных механизмов, таких как предсказание ветвлений или выборка инструкций, что значительно снижает энергопотребление.
Недавно вышедший процессор Electron E1, реализующий архитектуру Fabric, обеспечивает до 100-кратного повышения энергоэффективности по сравнению с традиционными CPU. Он поддерживает параллелизм, а также способен обрабатывать произвольные управляющие конструкции, включая циклы и ветвления, благодаря специальным инструкциям и маршрутам обратной связи. Встроенная память и энергонезависимая память интегрированы в вычислительный конвейер, обеспечивая низкую задержку при выполнении задач ИИ и обработки сигналов. Fabric подходит для встраиваемых систем, носимых устройств, IoT и даже космических приложений, где критичны параметры SWaPC (размер, вес, мощность, стоимость). Благодаря своей гибкости и энергоэффективности, Efficient Computer открывает новые горизонты для вычислений на периферии (edge computing).
Другой ключевой компонент экосистемы — Компилятор effcc, предназначенный для преобразования обычного кода (на C, C++, TensorFlow и других языках) в оптимизированное представление для архитектуры Fabric. Вместо традиционного пошагового выполнения, effcc трансформирует код в граф потоков данных, определяя наиболее эффективное пространственное размещение операций на чипе. Это позволяет значительно сократить энергопотребление, устраняя избыточные перемещения данных и управляющие инструкции. Компилятор автоматически анализирует и оптимизирует код, обеспечивая максимальную производительность и длительное время работы от батареи.
Efficient Computer также предлагает Compiler Playground — веб-инструмент, визуализирующий выполнение программы на Fabric, позволяя разработчикам увидеть, как операции распределяются по архитектуре.
Мне посчасливилось поиграть в песочнице Efficient Computer и проверить, насколько хорош компилятор в автоматическом режиме.
Я попробовал три программки, каждая из которых имеет одинарный цикл одной и той же длины, но демонстрирует разные варианты параллелизма: чрезвычайную параллельность, примитив Reduce, и примитив Scan.
Первая задачка – векторная операция AXPY.
Для компиляции функции в код для Кафеля, необходимо указать атрибут __effcc_rip:

Запускаем программу и наблюдаем за ее выполнением в визуализаторе.
Действительно похоже на кафельный пол:

Программа выполняется за 27 тактов. Запомним эту цифру для сравнения.
Вторая программа – сумма всех элементов массива.

Поскольку отсутствуют промежуточные операции записи в память, плитки используются более эффективно. Активных плиток на кафеле гораздо больше. И время выполнения программы меньше – всего 18 тактов.
Интересно взглянуть на прогноз энергоэффективности:

Время работы процессора E1 от батарейки при выполнении данной программы выводится в годах(!), а время работы сопоставимых маломощных процессоров – в днях.
Наконец, программа накопительной суммы элементов массива.

Кафель набит плотненько, но тем не менее время выполнения программы целых 117 тактов. Видимо, компилятор не сумел распознать параллелизм накопительной суммы. Это действительно непростая задача и область активных исследований в теории компиляторов.
Как бы ни был хорош компилятор, в процессе всегда найдется место для программиста в машинном (или кафельном) коде.
Сейчас замечательное время, когда как грибы появляются новые вычислительные архитектуры, отвечающие на новые запросы к вычислительной мощности и энергопотреблению в задачах искусственного интеллекта. И отрадно видеть нестандартные подходы к проблеме, например, Efficient Computer.
Комментарии (4)
old_bear
28.07.2025 00:13На Transport triggered architecture похоже.
Как уже заметили комрады выше, всё отлично за вычетом необходимости написать мега-компилятор. Который вероятнее всего будет выполняться на Фон-Неймановской архитектуре. :)
checkpoint
Недавно посмотрел видео про этот Electron E1, из чего сделал вывод, что парни из Питтсбурга пытаются
выкопать стюардессувозродить VLIW на новой базе - реконфигурируемый конвейер из огромного числа блоков обработки (ALU, LOAD/STORE и прочее). Как и во VLIW, у них за всё отвечает компилятор, в том числе за оптимальную конфигурацию конвейера на стадии компиляции. Видимо опыт предыдущих поколений их ни чему не научил. Либо я прослушал как они собиратся решать типовые проблемы VLIW (в частности, где брать оптимизирующий компилятор).Zhuikoff
VLIW сам по себе как технология крут, но он совсем другой. Чтобы писать под него, нужно мыслить иначе, а у человека память держит от 3х до 7 объектов одновременно, мы слишком слабые и ленивые, нам вайб кодинг подавай и желательно с голосовым вводом. Поэтому страх и отторжение. И это глубокий-глубокий минус.
old_bear
Может нейросеть натренируют чтобы она магию делала.