Разработан C-компилятор программируемого ускорителя для MALT-Сv1

 

Фото: maltsystem.com

 

Разработан компилятор подмножества языка Си, который генерирует оптимизированный код для архитектуры программируемого ускорителя. На целевых задачах производительность сформированного компилятором кода составляет 80% от производительности кода, реализованного программистом на языке ассемблера! Компилятор разрабатывался с использованием набора проблемно-ориентированных языков (DSL) для быстрого создания трансляторов. Данный набор DSL позволяет в компактной и читаемой форме описывать основные фазы трансляции. В частности, используются Пролог-подобные описания правил преобразования программ и комбинаторный подход к построению стратегий обхода графов промежуточного представления.


Ранние версии компилятора использовались уже на начальных этапах разработки архитектуры программируемого ускорителя и позволили автоматизировать поиск в пространстве архитектурных вариантов. На целевых задачах производительность сформированного компилятором кода составила 80% от производительности кода, реализованного программистом на языке ассемблера, что дало возможность полностью отказаться от разработки прикладных программ для программируемого ускорителя на языке ассемблера.