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)


  1. checkpoint
    28.07.2025 00:13

    Недавно посмотрел видео про этот Electron E1, из чего сделал вывод, что парни из Питтсбурга пытаются выкопать стюардессу возродить VLIW на новой базе - реконфигурируемый конвейер из огромного числа блоков обработки (ALU, LOAD/STORE и прочее). Как и во VLIW, у них за всё отвечает компилятор, в том числе за оптимальную конфигурацию конвейера на стадии компиляции. Видимо опыт предыдущих поколений их ни чему не научил. Либо я прослушал как они собиратся решать типовые проблемы VLIW (в частности, где брать оптимизирующий компилятор).


    1. Zhuikoff
      28.07.2025 00:13

      VLIW сам по себе как технология крут, но он совсем другой. Чтобы писать под него, нужно мыслить иначе, а у человека память держит от 3х до 7 объектов одновременно, мы слишком слабые и ленивые, нам вайб кодинг подавай и желательно с голосовым вводом. Поэтому страх и отторжение. И это глубокий-глубокий минус.


    1. old_bear
      28.07.2025 00:13

      в частности, где брать оптимизирующий компилятор

      Может нейросеть натренируют чтобы она магию делала.


  1. old_bear
    28.07.2025 00:13

    На Transport triggered architecture похоже.
    Как уже заметили комрады выше, всё отлично за вычетом необходимости написать мега-компилятор. Который вероятнее всего будет выполняться на Фон-Неймановской архитектуре. :)