О проекте
Цель проекта
Цель проекта - создать “в кремнии” и предложить пользователям в России и за рубежом специализированные энергоэффективные многопотоковые процессоры, которые по показателю производительность на Ватт не будут уступать заказным системам на “топовых” ПЛИС, превосходя их на порядок по показателю производительность на $. При этом по простоте программирования разрабатываемые процессоры будут сравнимы с универсальными x86/GPU/ARM вычислительными системами, на порядок и более превосходя их по показателю производительность на Ватт.
Требования
Достижима ли поставленная нами цель? Будут ли такие кристаллы востребованы? Мы считаем, что да! Для этого разрабатываемые нами процессоры должны удовлетворять целому ряду критериев. Среди них выделим энергоэффективность, технологичность, специализацию, проектирование “с нуля”, многоядерность, удобство программирования. Обоснуем кратко эти требования:
Энергоэффективность. Время, когда во главу угла ставилась производительность, прошло. Нет, не потому, что сейчас энергоэффективность не важна, а потому, что сегодня основным ограничивающим производительность кристалла фактором является выделяемая мощность, соответственно производительность практически линейно растет с ростом энергоэффективности.
Технологичность. Архитектура функциональных блоков и микропроцессора в целом сегодня должна определяться энергоэффективностью соответствующего топологического решения, а не красотой или простотой отображения на примитивы языка программирования. Технология и электрофизические характеристики полупроводника определяют микроархитектуру.
Специализация - основной резерв для роста производительности. На отдельно взятом алгоритме универсальный процессор проигрывает порядок по производительности специализированному решению, специализированный процессор проигрывает порядок ПЛИС, ПЛИС проигрывает один или несколько порядков заказной микросхеме.
Проектирование “с нуля”. Все развитые программируемые архитектуры содержат множество рудиментов, доставшихся от предшественников, для обеспечения сквозной совместимости. Нам не требуется это "наследство”, каждый специализированные блок, чтобы быть предельно энергоэффективным, должен быть разработан “с нуля” под свой класс задач.
Многоядерность. По мере увеличения числа транзисторов и усложнения технологических процессов растут токи утечки в транзисторе и, как следствие, растет энергопотребление. Эти эффекты заметны на тех. процессах ниже 90 нм, их необходимо учитывать на 28 нм и более новых чипах. В современных условиях, когда большая часть кристалла является "тёмной", возможно размещение широкого спектра специальных вычислительных блоков, каждый из которых будет в 100-1000 раз энергоэффективнее на своих операциях, чем АЛУ классического процессора общего назначения. Таким образом, мы приходим к архитектуре многоядерного процессора скалярной, векторной или смешанной архитектуры.
Программирование. Ахиллесовой пятой всех специализированных процессоров является программирование, пользователи не желают переходить на новый язык, изучать новую архитектуру, отказываться от привычных библиотек, поэтому, вне зависимости от внутреннего устройства, процессор должен поддерживать С/С++ и стандартные библиотеки или их “разумное” подмножество.
Решение
Для достижения цели и создания решения, удовлетворяющего требованиям выше, нам пришлось заново осмыслить идею многоядерного процессора и мы это сделали. В разделе “Основные идеи” описаны подходы, программные, технические и организационные решения, которые легли в основу проекта. Все разрабатываемые нами чипы содержат от сотни до тысяч предельно компактных процессорных ядер с разрешением конфликтов одновременного доступа к данным на уровне контроллера общих ресурсов и программно-аппаратными механизмами планирования и исполнения потоков. Название разработки MALT - Manycore Architecture with Lightweight Threads, что в переводе означает "многоядерная архитектура с поддержкой легких потоков", достаточно точно отражает суть проекта. В разделе “Архитектура” вы найдете блок-схему, поясняющую устройство процессоров MALT.
Применения
Как указано выше, мы реалисты и не пытаемся сделать “идеальный” универсальный процессор, мы намеренно сужаем области применения процессоров MALT, чтобы добиться выдающихся результатов на тех задачах, для которых они спроектированы. К таким задачам относятся:
– Блокчейн и криптовалюты. MALT-C - универсальный процессор для выполнения вычислительно сложных криптопреобразований и, в частности, блокчейн транзакций с предельной энергоэффективностью.
– Большие данные. MALT-D - процессоры для параллельной работы с большими массивами данных, которые хранятся в оперативной или внешней памяти и характеризуются сложной логикой обработки.
– Математическая физика. MALT-F – процессоры для энергоэффективного решения задач математической физики, требующих нерегулярного доступа к памяти.
Подробнее о разрабатываемых нами чипах вы можете прочитать в разделе “Процессоры MALT”, примеры использования описаны в разделе “Применения”.
Программирование
Мы понимаем трудности, с которыми сталкиваются программисты при переходе на новую архитектуру, поэтому позаботились, чтобы программировать MALT было немногим сложнее, чем универсальные многоядерные процессоры. Пользователь в зависимости от своих предпочтений и требований к оптимизации прикладного кода может выбрать C/C++, OpenCL или MALTCС. Подробнее см. в разделе “Программирование”.
Ход проекта
Проект постоянно развивается. В 2011-том мы собрали на ПЛИС первый 10-ядерный, потом 49-ядерный и, далее, 210-ядерный прототип. В 2015-том мы добавили векторные сопроцессоры собственной архитектуры. В 2016-том мы спроектировали и в конце 2017-того испытали первый MALT-C, изготовленный на фабрике TSMC по технологии 28 нм. И так далее... Подробнее о развитии проекта можно узнать в разделе “Ход проекта”.