Последние месяцы ознаменовались бурными баталиями в отечественной индустрии разработки микроэлектроники и причастных. Государство, наконец-то пристально обратив своё око на данную, мягко скажем крайне проблемную отрасль, посулило крупные инвестиции на её развитие, в первую очередь на разработку мозга любой вычислительной техники - процессора. Прения по поводу того, как правильно потратить выделенные средства, из тишины министерских кабинетов выплеснулись наружу и дошли до прессы. Не вдаваясь в политические моменты, всегда присущие такого рода дебатам, хотелось бы сконцентрироваться на технической стороне вопроса и обрисовать позицию, почему ставка на легендарный микропроцессор Эльбрус - это тупик для развития отечественного процессоростроения.
Российское процессоростроение, в силу понятной специфики зарождения и функционирования последних лет в основном на военных и окологосударственных заказах, критически страдает от отсутствия сколь либо открытой и доступной общественности, и при этом профессиональной дискуссии. Безусловным прорывом в данном вопросе можно считать проведение Elbrus Tech Day:
Жаль, что это происходит с примерно 15-ти летним опозданием, но лучше поздно, чем никогда. Результатом такой закрытости является нагромождение мифов вокруг Эльбруса, где антагонисты утверждают, что Эльбрус это просто старые процессоры Итаниум с переклеенными шильдиками, а сторонники рассказывают о супер архитектуре и гениальных компиляторщиках, которых не смог переманить Интел, благодаря чему Эльбрус имеет ни с чем не сравнимую производительность. Правда лежит в параллельной реальности, поэтому сначала несколько тезисов в качестве ликбеза для широкой публики, не столь глубоко знакомой с темой процессоров.
-
Микропроцессоры архитектуры Эльбрус (e2k) - это абсолютно аутентичная разработка компании МЦСТ, основанная на предыдущем опыте создания линейки Эльбрусов 1/2/3 ещё в СССР.
-
Хотя архитектура Эльбрус является достаточно типичной VLIW-архитектурой (процессоров на базе которой было построено много, самые известные из которых это Intel Itanium и Transmeta), у неё есть некоторые особенности, которые нельзя обобщать на все VLIW процессоры. Но для простоты повествования в рамках статьи я буду говорить о VLIW именно в контексте Эльбрусовской реализации.
-
Компания МЦСТ также разрабатывает линейку процессоров с архитектурой Sparc V9. В названии данные процессоры также имеют слово Эльбрус, что часто вызывает путаницу. Все дальнейшие рассуждения относятся именно к VLIW-архитектуре Эльбрус (e2k), а не к Sparc V9.
-
Самые популярные в мире процессоры на данный момент от Intel и Arm - это представители CISC и RISC архитектуры.
-
Создание процессора можно в первом приближении разделить на разработку процессора и производство. Компания, которая только разрабатывает процессор, но для производства использует чужие мощности, называется "фаблесс". МЦСТ - это фаблесс разработчик процессоров. Как и абсолютное большинство дизайн-центров в мире, включая Apple, Qualcomm, Nvidia, HiSilicon и т.д. и т.п.
-
В России на данный момент нет заводов по производству процессоров, которые пригодны для производства сколь-либо современных процессоров топ-уровня. Кому интересно актуальное состояние данной отрасли, можно почитать здесь. Дальше все претензии и обсуждения на тему "а производят-то на Тайване!" здесь не принимаются. Статья касается только вопроса разработки процессоров.
-
Сама по себе разработка высокопроизводительного процессора любой архитектуры - крайне сложная инженерная задача
-
При обсуждении микропроцессоров крайне важно понимать различие между Архитектурой и Микроархитектурой. Говоря простыми словами, Архитектура процессора - это набор команд, который предоставляет аппаратура для использования софтом, иначе говоря интерфейс между миром ПО и миром железа. Микроархитектура - это то, как процессор устроен внутри, т.е. каким образом он реализует предоставленные Архитектурой интерфейсы. В современных процессорах именно микроархитектура является ключевым фактором достижения производительности. Именно из-за неё разные процессоры линейки x86 или Arm, реализующие одинаковую архитектуру, при схожих параметрах тактовой частоты могут в разы отличаться по производительности.
Так в чём же проблема Эльбруса? Если не углубляться в кучу технических и не очень нюансов, их две основных:
Собственная архитектура
Интересно, что руководство МЦСТ всячески пиарит данный пункт, выставляя его в качестве преимущества. Парадокс в том, что это большой недостаток. Проблема в том, что своя архитектура означает портирование всего стэка софта, необходимого пользователям. А это колоссальные затраты, тем более для VLIW-архитектуры (об этом ниже). В МЦСТ это прекрасно понимают (несмотря на публичные заявления о собственной архитектуре как о достоинстве) и именно поэтому в Эльбрусе на аппаратном уровне сделана поддержка бинарной трансляции из x86, что означает потенциальную возможность запускать привычные пользователю программы без какого-либо портирования. Но это стоит транзисторов, перформанса и всё равно имеет много ограничений для применения в реальности. В итоге можно сказать, что создание процессора с собственной архитектурой должно иметь крайне веские обоснования, иначе это получение колоссального геморроя на ровном месте. Да, к сожалению мы не можем делать аналог x86. Да, с лицензированием Arm есть потенциальные угрозы. Но любая лицензионно чистая открытая RISC/CISC архитектура здесь будет лучше, потому что увеличивает коммьюнити, занимающееся портированием софта.
VLIW-архитектура
Главная техническая проблема. Дело в том, что VLIW-архитектура принципиально уступает по производительности современным RISC/CISC процессорам с Out-of-Order (OoO) исполнением.
Тут требуется немного технического погружения. Основная идея VLIW заключается в том, что компилятор должен создать максимально оптимальный код, который железо просто исполнит, неукоснительно следуя тому, как компилятор создал широкие команды. Широкими команды как раз называются потому, что компилятор помечает операции, которые можно исполнить независимо, и планирует их в одну команду, которую процессор может исполнить за такт. Например, вот так:
{ addd,0 %r0, %r5, %r5 addd,1 %r0, %r6, %r6 addd,2 %r0, %r7, %r7 }
В то же время процессоры RISC/CISC архитектуры логически получают инструкции как бы по одной, но само железо может в процессе исполнения проанализировать поток инструкций и перемешать их, если это возможно.
Идея VLIW на первый взгляд выглядит красиво, но она разбивается о реальность. В реальной жизни невозможно статически проанализировать код настолько, чтобы максимально плотно упаковать широкие команды. Пришедший указатель или сложная работа с памятью - и вы не можете спланировать Load выше операции Store (и наоборот). Если в горячем цикле есть вызов функции - его надо обязательно заинлайнить, иначе мимо него нельзя будет ничего поднять вверх и тем более применить критически важную оптимизацию конвейеризации цикла. Но при компиляции без профиля установить какие циклы горячие невозможно. Да и наличие профиля плохо помогает в случае динамической линковки, динамических вызовов, отсутствия ярко выраженного горячего кода. Опять-таки, сколь-либо сложное управление в цикле препятствует его накрутке.
В то же время классические RISC/CISC архитектуры с OoO автоматически оптимизируют и конвейеризируют любой исполняемый код. И хотя это стоит определённых транзисторов и мощности, на выходе такой подход оказывается более эффективным.
Например, чтобы получить некоторую интуицию проблемы с инлайном, не погружаясь сильно глубоко в сложные технические детали, давайте рассмотрим простейший синтетический код:
int get_inc_val () { return 3; }; ... int a=0; while (a < 10000) { a+=get_inc_val(); } ...
Архитектура Эльбрус крайне плохо исполняет код, если в нём появляются не заинлайненные вызовы функций. В таком случае производительность может падать на порядок.
Если в данном цикле вызов функции get_int_val по какой-то причине не заинлайнится компилятором, то для RISC/CISC архитектуры с OoO итерация цикла будет занимать ~1 такт, не отличаясь принципиально от случая, если инлайн сработал.
В то же время на Эльбрусе одна итерация данного цикла будет занимать порядка 17 тактов. Конкретно в данном случае компилятор lcc с высокой вероятностью данную функцию заинлайнит, если будет видеть определение функции ( что далеко не всегда применимо в сложных проектах). Но минимальное усложнение кода, например, путем добавления бОльшего числа команд в функцию, легко сломает логику работы инлайна в реальной жизни.
Чтобы хоть как-то решать возникающие проблемы в VLIW архитектуру приходится добавлять различные, иногда достаточно нетривиальные архитектурные фичи. Нужно иметь много архитектурных регистров, т.к. требуется хранить большое количество промежуточных результатов вычислений. Как следствие, аппаратура получается сложной (а от этого как раз хотели уйти) и в итоге падают частоты, на которых VLIW-процессор может работатать. Вот сравнение самых топовых решений процессоров на базе VLIW-архитектур от Intel и МЦСТ с их RISC/CISC аналогами:
CPU model |
Year |
Architecture |
nm |
Freq, GHz |
Cores |
TDP,W |
transistors, billion |
Intel Itanium Processor 9760 |
2017 |
VLIW |
32 |
2,66 |
8(16) |
170 |
3,1 |
Intel Xeon Processor E5-2687W |
2012 |
CISC |
32 |
3,1-3,8 |
8(16) |
150 |
2,27 |
Intel Itanium Processor 9750 |
2017 |
VLIW |
32 |
2,53 |
4(8) |
170 |
? |
Intel Xeon Processor E3-1290 |
2011 |
CISC |
32 |
3,6-4,0 |
4(8) |
95 |
1,16 |
|
|
|
|
|
|
|
|
Эльбрус-8СВ |
2020 |
VLIW |
28 |
1,5 |
8 |
90 |
3,5 |
Эльбрус-R2000 |
2019 |
RISC |
28 |
2,0 |
8 |
36 |
0,5 |
Как видно, VLIW-процессоры на тех же нанометрах, имеют меньшие тактовые частоты, при этом имеют более высокое тепловыделение и больше транзисторов.
В итоге VLIW процессоры проигрывают не только по микроархитектурной скорости в пересчёте на Герцы, но и по самим частотам. Кстати, данная таблица чётко демонстрирует, что декларируемая "энергоэффективность VLIW" - это миф.
Собственно говоря, именно с вышеуказанными проблемами связаны те многочисленные истории, когда пользователи Эльбруса, получив возможность скомпилировать и запустить своё ПО на данном железе, часто с первого раза получают удручающие результаты. Потому что если на небольших бенчмарках или тем более Spec2006/2017 (которые вылизывали 20+ лет) компилятор худо-бедно справляется и может сгенерировать близкий к оптимальному код, то на реальных проектах он уже не справляется, а т.к. аппаратура тут подстраховать не может, то производительность падает в разы. И начинается долгая история про то "как правильно переписать код проекта, чтобы lcc смог скомпилировать оптимальный код".
Кстати, именно с этой проблемой связана достаточно странная политика МЦСТ, когда получить Эльбрус можно только написав официальный запрос на имя генерального директора. Ведь казалось бы, если вы хотите продавать свои процессоры, надо их максимально пиарить и первые партии раздавать чуть ли не бесплатно. А тут такие бюрократические препоны. Дело в том, что руководство МЦСТ в общем-то прекрасно понимает недостатки Эльбруса и максимально пытается избежать негативной огласки. Поэтому оно старается фильтровать потенциальных клиентов, чтобы в случае возникновения перформанс проблем привлечь своих специалистов, которые могут разобраться в проблемах и с помощью правильных опций, допилок компилятора или переписывания горячего кода "под Эльбрус" улучшить производительность пользовательских задач. Но масштабируемость такого подхода, думаю, всем понятна.
Отсюда следует ещё один, крайне важный вывод - процессор на базе VLIW архитектуры существенно более требователен к квалификации программистов, компилирующих программы под данную платформу. Т.е. это своеобразный дополнительный налог, который взымает архитектура с разработчиков, и чем она шире используется, тем этот налог выше. Что тоже не добавляет плюсов Эльбрусу.
Вот пример далеко не самой сложной ШК из Эльбруса:
{ loop_mode alc alcf=1, alct=1 abn abnf=1, abnt=1 ct %ctpr1 ? %NOT_LOOP_END muls,0,sm %g17, %b[10], %b[1] addd,1,sm 0x4, %b[15], %b[13] adds,2,sm %b[8], 0x3, %g17 ldw,3,sm %r0, %b[17], %b[0] ? %pcnt12 adds,4,sm %b[22], %b[13], %g16 staaw,5 %g16, %aad0[ %aasti1 ] incr,5 %aaincr0 }
Разобраться в логике данного кода непросто, даже имея опыт и необходимую квалификацию. А теперь представьте, это будут делать программисты в мире, где простой x86-ой ассемблер хоть как-то понимают хорошо если 1 из 100. А тут надо будет не только разобраться в коде, но ещё и понять, а что же компилятор "сделал не так" и что исправить в коде, чтобы решить проблему.
Собственно, как следствия, вполне понятны вытекающие из вышесказанного дальнейшие недостатки VLIW :
-
"Жирный" код, ведущий к повышенным кэш-миссам кода
-
Дополнительная нагрузка на кэш данных в следствие спекулятивного исполнения кода
-
Фактическая непереносимость кода между версиями процессора (если были какие-то изменения в архитектуре, то надо перекомпилировать код, чтобы получить преимущества новой версии)
-
Сложность развития микроархитектуры, т.к. в случае VLIW это почти всегда влечёт за собой изменение в архитектуре
-
Сложность оптимизации кода, сложность обработки прерываний и т.д.
Резюмируя - процессорная платформа, которая претендует стать массовой и конкуретной на рынке десктопных и серверных процессоров, не может быть VLIW архитектурой, т.к. это заведомо проигрышный путь. Дело не в конкретной имплементации или профессионализме разработчиков Эльбруса ( в МЦСТ есть специалисты, безусловно, мирового уровня в своих сферах). Проблема именно в самой архитектуре Эльбрус, которая принципиально менее производительна, чем RISC/CISC архитектуры с современными реализациями микроархитектур с OoO исполнением.
Именно поэтому, при всей уникальности линейки процессоров Эльбрус, они не могут служить базовой платформой для массового производства отечественной вычислительной техники.
Комментарии
С нетерпением жду комментов.
Правительство озаботилось этой проблемой. Деньги выделяются Ростеху. Новость июля: https://mobidevices.ru/rostec-risc-v
Что такое RISC-V?
RISC-V — это свободная архитектура набора команд. Проект зародился в Калифорнийском университете в Беркли в 2010 году. Важную роль в его успехе сыграла открытость кода и свобода использования, что резко отличалось от многих других архитектур. Возьмите ARM: чтобы создать совместимый процессор, вы должны заплатить авансовый сбор от $1 млн до $10 млн, а также выплачивать роялти 0,5−2% с продаж. Свободная и открытая модель делает RISC-V привлекательным вариантом для многих, в том числе для стартапов, которые не могут оплатить лицензию на ARM или другой процессор, для академических исследователей и (очевидно) для сообщества open source.
Важную роль, как и в случае с Microsoft, сыграли не очередные ля-ля-ля по последней моде, а связи с IBM. Посмотрите, кто такая Calista Redmond.
Ну а "туземцам" RISC-V впаривают как стеклянные бусы (в нашем случае -- с особым остервенением) либо как "цифровые ножки буша" (если не в курсе, таковыми и в Африке местный сельхоз убивали).
Из статьи понятно,что для массово-потребительского сегмента не подходит.
А в узких средах?Военный/Корпоративный сектор.Если бы акцент сделали на защищенности тотальной от взлома соперниками/конкурентами.В силу как раз альтернативной архитектуры,немногочисленности специалистов по ней, и линейки взаимодействии.Тогда производство Эльбрусов имело бы смысл?
Как (рекламный слоган)ваша безопасность-Эльбрус.Самый защищенный процессор в мире
То есть-просто ошибка позиционирования на мировом рынке?
Вы знаете, опасность взлома соперниками\конкурентами, мне кажется, исчезающе малоинтересна большинству лиц, принимающих решения. Там, где без этого не обойтись - МО РФ, эту систему и применяют как-то.
Я думаю, что позиционирования на мировом рынке сейчас не совсем, и оно и не планировалось. А вот на российском - кому-то в обязаловку продают, но по доброй воле его вряд ли кто-то выберет: очень много неясностей.
Ещё есть устойчивость к вирусам. Система резервного копирования на Эльбрусе имеет преимущество по устойчивости к большинству того, что может прилететь по локальной сети.
А вы в курсе что разработчик Трансметы тесно общался с разработчиками эльбрусов порядка ГОДА ДО того как был изготовлен первый образец трансметы работоспособный? Знаю напрямую как от Бабаяна так и от двух ещё лиц.
Вам неинтересна, а вот мне иметь процессор который имеет повышенную защищённость от действий в случае ВЧ навязывания интересно. У меня как и у отца были потери дорогих данных, многократно превышающие в каждом случае стоимость 4 процессорного сервера на 8С.
Скорость не слишком важна, важен уровень защищённости, меня и 0,8ГГц устроит с ОС касперского простыми функциями офиса и сервера хранения данных.
Как разработчик я пользуюсь часто старинным софтом не от того что нет компов пошустрее а с тем чтобы была ниже утечка данных, да и 2000-х начала годов ПО работает гораздо быстрее чем 2019-2020, В НЕСКОЛЬКО РАЗ. Так что корректной эмуляции х86 вполне хватит.
" это будут делать программисты в мире, где простой x86-ой ассемблер хоть как-то понимают хорошо если 1 из 100. " - знаете, если будет фортран 77 для суперкомпьютеров меня вполне устроит как решение для узкоспециализированных задач, он гораздо лаконичнее С на том что приходилось считать, вся программа несколько строк а не 2 страницы как к однокашника, ныне достаточно хорошего ИТшника. Синтаксис и прочее надо знать досконально и будет вам счастье.
Мне приходилось с крейтами КАМАК и иже с ними подобными работать. Вот это уже труднее было. Я ни разу не программист. Но хороших программистов видел и был с некоторыми корифеями 1960-х знаком, когда FFT определённого анализа данных программа 6,5кб весит и считает в раз 5 быстрее чем на С - и на PDP-11 и на тогда новейшей 2-процессорной DEC Alpha 21064А
.
Системы автоматизированного программирования совершенствуются. Есть глубокие сомнения что не будет неолуддизма среди программистов в ближайшие лет 7. Середнячки и слабые ненужны будут
Или простейшая работа по интерфейсу за чашку риса или действительно сложное программирование.
Точно, современный софт работает медленнее и занимает объёмы памяти в 100 раз больше.
Вы зря думаете, что разработать хороший интерфейс так уж просто. Это ОЧЕНЬ сложно.
Просто все более развивается специализация. Писатели алгоритмов. Разработчики общих концепций интерфейсов. Рисовальщики отдельных экранов… Работа есть для всех!
Поэтому все новые интерфейсы со свитоперделками - полное говно ( извините за мой французский ).
Ощущение что тебя, как пользователя, держат за полного дебила - раскраски в стиле "шкафчик в детском саду" , где вместо надписей Коля-Лена-Ваня мы видим картинки Яблочко-Вишенка-Йожык.
За что некоторые и любят macOS и iOS! Остальные вообще с ума посходили…
Помню я когда эти огрызки появились,зашли в страну.Взял.Покопался два дня.Увидел что меня как владельца гаджета -этот самый гаджет хрен куда пускает.И не дает копаться в системных настройках.Дабы настроить под себя аппарат.Офигительно обалдел от концепции яблока по отношению к пользователю.
И на этом все отношения с огрызками были прекращены в принципе.По банальной причине нафига мне аппарат если я там не могу лазить.
Советский ребенок , получив в подарок самосвал, первым делом разбирает его.
Хорошая привычка.
Низкий уровень продуманности интерфейсов новых программ - бич. От рабочих программ до большинства популярных приложений на смартфонах. Usability в хлам, а в смартфонных часто приложения требуют практически полный контроль над вашим гаджетом с возможностью шпионажа уже в открытую, причём по факту надо ДВА разрешения но ставят 7-11.
И из этих всех с работой никто за конечный результат не отвечает
Боинг Вам в помощь
С одной стороны неплохо. С другой - и виноватого не найти и доработка любой шняги занимает непропорциональное время.
А это никому не надо, ведь всем известно, что производство процов нужно исключительно для прыщавых юнцов!
Пишу с домашнего "Эльбрус-16С".
Весь процитированный масловский бред выеденного контакта не стоит.
Жаль, что так много народу, не разбираясь в вопросе и поленившись даже в яндекс-музей сходить и пощупать "Эльбрус-8С" самостоятельно, некритично отнеслись к предложенному на лопате "контенту".
А действительно специалист и честный человек в ответ написал вот что: http://habr.com/ru/post/575302/ (я в курсе, что Маслову оказалось мало сесть в лужу единожды и он поспешил на повторный сеанс -- что ж, другим подонкам из "камеди-клаба" в прошлом году просто сделали заказ, а он за бабки IBM или по зову эээ... души -- уж не знаю).
Из текста понял, что не тот тип архитектуры выбрали.
Но не понял: а почему не выбрали RISC?
К сожалению, не могу достоверно ответить на ваш вопрос.
Подозреваю, что проблемы с лицензирование или не дали, как с Опелем.
Строго говоря RISC это не совсем архитектура это набор команд подчиняющихся определенным правилам (ну да бог бы с ней пускай будет архитектура). На базе этих правил (RISC) были созданы процессора POWER/OpenPOWER/PowerPC (от IBM), ARM (пошел от StrongARM из UK лаборатории компании DEC), PA-RISC (от HP), SPARC (от SUN и Fujitsu и та и другая компания выпускала SPARC процессора) и т.д.
SPARC v9 - это процессора с RISC архитектурой. Открыта полностью. Наши изготавливают на базе этой архитектуры процессора R-500 (SPARC v8 - 32 бит), R-1000 (SPARC v9 - 64 бит), R-2000 (SPARC v9 - 64 бит)
P.S. Чуть не забыл про MIPS тоже является RISC ставился на мной любимые рабочие станции SGI (которого щас нет)
Автор - молодец. Прямо как у Пелевина "гламура и дискурса". (Это не критика, если что, а наоборот - уважение).
Лжец он. А перепостивший не знает, _что_ взялся без рефлексии распространять.
Мипсу еще самые бюджетные в сегменте микроты юзают
Уже давно существует "открытый" RISC, для всех желающих. Есть и российские процессоры на его основе. Удивительно, что автор не в курсе.
Сайт сообщества, для ознакомления.
https://riscv.org/
RISC-V такой же "открытый", как зачем-то притащенные сюда человеком помои подонка Маслова -- "статья".
Бишь с виду вроде да, а на поверку -- нет.
Поинтересуйтесь, кто такая Calista Redmond. И в пользу клона изделия какой лавки убивали _все_ отечественные разработки в части микроэлектроники.
Да, и сейчас из попытки замочить Эльбрус, который тогда отстояли для себя военные -- тоже торчат уши IBM. Причём, блин, на уровне около вице- и -предов.
Жаль тех, кого втравили в Yadro.
"В суперскалярных процессорах также есть несколько вычислительных модулей, но задача распределения работы между ними решается аппаратно. Это сильно усложняет устройство процессора, и может быть чревато ошибками. В процессорах VLIW задача распределения решается во время компиляции и в инструкциях явно указано, какое вычислительное устройство какую команду должно выполнять.
VLIW можно считать логическим продолжением идеологии RISK, расширяющей её на архитектуры с несколькими вычислительными модулями. Так же, как в RISC, в инструкции явно указывается, что именно должен делать каждый модуль процессора. Из-за этого длина инструкции может достигать 128 или даже 256 бит." (c)
Резюме. Вся статья - одна большая глупость.
https://www.ixbt.com/cpu/vliw.shtml
Не путайте организацию команд и способы их выполнения.
VLIW - да, позволяет в одну команду процессора засунуть несколько операций, что позволяет выполнять эти операции параллельно. Но команды выполняются последовательно, строго по одной.
В RISC-процессорах - да, в одной команде одна операция, но в современных RISC-процессорах эти команды выполняются параллельно (вместе с соответствующими операциями.
Т.е. и во VLIW и в RISC операции выполняются параллельно, но это разный параллелизм. Во VLIW процессор тупо последовательно выполняет составные команды, в RISC процессор смотрит на поток будущих команд и сам решает, как распараллелить операции.
Т.е. во VLIW об эффективности параллелизма должен думать компилятор, процессор - тупой исполнитель. В RISC о параллелизме думает в первую очередь процессор. Об этом и статья.
Ближайшая аналогия: VLIW - это движение автобусов по расписанию, каждому транспортному средству заранее записано когда куда ехать. А RISC - это Яндекс-Такси, когда все заявки проходят через одного диспетчера, который раскидывает их на исполнителей в зависимости от их состояния.
Вы несете бред сивой кобылы в лунную ночь.
Расплодилось в последнее время юнных горе-знатоков процессоров.
Во VLIW все команды выполняются параллельно, потому что они на этапе компиляции собраны так чтобы не конфликтовать. Команда загрузилась - и запустила выполнение на всех указанных блоках одновременно.
К примеру не упомянутый тут TI DSP C6000 выполняет до 8 команд за такт. Никакому RISC такое и не снилось в самых эротических снах!
Про распараллеливание команд в RISC я вообще промолчу. Даже CISC Intel/AMD x86/x64 в лучшем случае умеют выполнять максимум две, и то только очень простых команды, за такт.
Только где по производительности все RISC, а где Intel/AMD? Прекращайте свои влажные фантазии!
Вы поаккуратнее с оценками! На мой взгляд, вы говорите ровно одно и то же, но очень по-разному :)
Про сравнение производительности RISC и CISC вообще не понял. Вы за какую команду играете? :)
https://en.wikipedia.org/wiki/Instructions_per_second
10 инструкций за такт в RISC-ядрах - это реальность.
Вот болван!
Это фейк, потому что с учетом SIMD.
Открой спецификацию на интеловский проц и убедись, что там только некоторые очень простые команды выполняются за полтакта.
В SIMD выполняется одна команда над многими данными, например регистр SSE 128 бит, а операция над байтами. Так это не 16 команд за такт, а 1 операция над 16 байтами за такт! Понятно?
Вы все юнные болваны такие - пытаетесь прослыть знатоками даже в том, в чем разбираетесь как свинья в апельсинах. В результате вы просираете работу, вас спускают пинками под зад с лестницы и больше на порог не пускают в приличное общество.
Ну, если так считать, то в некоторых современных ARM есть встроенные модули нейронных сетей. Если учитывать и их, вообще запредельном число команд за такт получится!
Давайте отделять мух от котлет, все же!
Поумерь пыл, боец.
Код теста Dhrystone MIPS, который используется для оценки параллелизма - очень прост. В частности, он помещается в кеши всех современных процессоров и не использует инструкции SIMD.
https://johnloomis.org/NiosII/dhrystone/ECLDhrystoneWhitePaper.pdf, страница 4
Давайте примем уже, что современные RISC-процессоры не являются чистыми с точки зрения идеи, бывают многоядерными, исполняют не все команды за такт, могут иметь множество параллельных исполнительных модулей и конвейеризацию исполнения.
И закончим этот спор. ОК?
Это принципиальный момент. Если современные суперскалярные процессоры уже умеют эффективно динамически распараллеливать код, выполняя по 8, 10 и более инструкций за такт на ядро, то перспектив у Эльбруса действительно нет.
По факту, выбора между "глубокий ILP+геморрой с компиляцией" или "динамический ILP + стабильный ISA" уже нет, современные реализации x86, ARM, RISC-V дают все лучшее.
Это очень категоричное и совершенно неверное мнение.
Мнение, основанное на фактах, не может быть "совершенно не верным".
Суперскалярная архитектура фактически обеспечивает ILP, сопоставимый с теоретически возможным у Эльбруса, на существенно бОльших частотах. Это - факт.
Попытки ручной(!) адаптации реальных приложений широкого назначения под Эльбрус не дали сопоставимой с конкурентами производительности даже в пересчете на мегагерцы - это тоже факт.
Геморрой с постоянной перекомпиляцией приложений под каждую версию ядер Эльбруса - это тоже факт.
А все, что вы здесь пишите в пользу Эльбруса - ваши не подтвержденные гипотезы.
Повторю оговорку автора статьи - мы говорим о процессорах общего назначения.
"Геморрой с постоянной перекомпиляцией приложений под каждую версию ядер Эльбруса - это тоже факт." (с)
Это как раз и не факт. Проблема решена на уровне компиллятора.
Совершенно очевидно, что и VLIW, и суперскалярный подходы имеют свои достоинства и говорить об их альтернативности не уместно. Создание плана выполнения во время компиляции существенно для обеспечения высокой степени распараллеливания на уровне команд, даже для суперскалярного процессора. Также ясно и то, что во время компиляции существует неоднозначность, которую можно разрешить только во время исполнения, и для решения этой задачи процессор требует наличия динамических механизмов. Сторонники EPIC согласны с обеими этими позициями — различие только в том, что EPIC предоставляет эти механизмы на уровне архитектуры так, что компилятор может управлять такими динамическими механизмами, применяя их выборочно где это возможно. Столь широкие возможности помогают компилятору использовать правила управления этими механизмами более оптимально, чем это позволяет аппаратура.
Кардинально же проблему решит специализированный программируемый аппаратный сопроцессор-компиллятор.
Ну вот опять. Я вам факты, вы в ответ агитки.
Не интересно уже.
"Я вам факты..." (с)
Не факты, а ваши личные оценочные суждения.
Факты в том, что Эльбрусы уже достаточно производительны как для офиса, так и для создания кластеров.
Ой, не смешите. Кластеры на Эльбрус. Тут стоек из 2x28 обычно хватает для маленького Hadoop'а.
В NAS-ы их засунуть - потолок.
Понятно. Вы просто плохо осведомлены. Росатом уже имеет 2 таких кластера на своей площадке в Удомле.
Никто никому не запрещает строить кластера на процессорах, эквивалентных по производительности процессорам 10-летней давности.
Но это ничего не говорит об успешности этих процессоров.
"Но это ничего не говорит об успешности этих процессоров." (с)
Успешность определяется успешным решением тех задач, для которых кластер создан. Других критериев не существует.
Ваш перфекционизм здесь неуместен.
Так-то я и на Raspberry Pi могу кластер собрать для любых задач в рамках условно неограниченного бюджета. Как это относится к теме статьи? Никак.
Кластер на Эльбрусе построен в прошлом году ещё и в Арзамасе-16. Для ОЧЕНЬ серьёзных расчётов. Клиент доволен. Это показатель успеха?
Страницы