Цитата: nekto_mamomot от 05.01.2017 21:45:26Напомним, микропроцессор Эльбрус –8С был полностью разработан в России. В 2014-м году появилась первая опытная партия, а уже в 2016-м началось серийное производство. Кристалл микропроцессора спроектирован по технологии 28 нм, имеет 8 процессорных ядер с улучшенной 64-разрядной архитектурой Эльбрус 3-го поколения, кэш-память 2-го уровня общим объёмом 4 мегабайта и 3-го уровня объёмом 16 мегабайт. Уникальность данной технологии заключается в невероятной продуктивности, ведь при тактовой частоте всего в 1,3 ГГц Эльбрус 8С имеет производительность 250 гигафлопс (то есть 250 млрд операций в секунду) на операциях с одинарной точностью, что сравнимо с последними поколениями современного семейства процессоров Intel с архитектурой X86-64: 6-ядерный Intel Core i7-4930K (поколение Ivy Bridge) при тактовой частоте 3,7-4,2 ГГц имеет теоретический пик производительности в районе 177 гигафлопс.
На 2018-ый год намечены испытания на следующее поколение микропроцессоров Эльбрус -16С, которые будут иметь производительность уже 1 терафлопс и технопроцессы на уровне 16нм, что, в принципе, будет соответствовать самым топовым и мощным процессорам мира.
https://ru.wikipedia.org/wiki/FLOPS>Intel i7 4770: 16*4*3900 МГц = 249.6 Гфлопс пиковая двойной точности, 32*4*3900 = 499.2 Гфлопс пиковая одинарной точности.Так что урезайте осетра у эльбруса в два раза и получаете примерно то, что там на самом деле и есть, в двойных попугаях. Это, во-первых. Во-вторых, эльбрус = VLIW, а это значит, что быстро и параллельно он сможет выполнять только такой код, который сам будет содержать пакеты с несколькими параллельными командами. В плюсе - параллельность в ручном режиме, в минусе - она же = категоричное требование к компилятору, он должен уметь собирать такие "широкие команды" + по всей видимости какие-то ограничения на оптимальную модель вычислений. Думаю, не случайно, единственным не маргинальным вливом были видеокарты - ищите любой пример шейдера на GLSL, вот это и будет примерно то, на чем будет достигаться максимальная производительность.
Для наглядного сравнения: 250 gflops в обычном флоате = видюха от XBOX 360.
Это не для того, чтобы полить эльбрус говном, а для того, чтобы было понятно, что это такое. Это безусловно большое достижение и хорошее начало для чего-то большего, но, мое главное опасение - оно этим началом и останется. Поведение разработчиков как бы намекает...
ИМХО
-----
https://www.youtube.…LQU3P64Uk02 минута - "широкие команды"
4:30 то, почему перспективы реализации JITа для OpenJDK под Эльбрус крайне туманны и опять же к вопросу об оптимальной модели вычислений и GLSL:
- ручное управление параллельностью в циклах
- "мы не используем предсказание переходов.."
6:20 собственно "бенчмарк"
10:00 - "5 гфлопс двойной точности на одном 4 процессорном сервере 8С (но на слайде "4С")... общая пиковая 100 гигафлопс.."
... "мы получаем 5 процентов от пикой производительности" - это еще раз к вопросу об оптимальной модели и к предложению посмотреть код шейдеров и как там "распространены" вложенные циклы...
Если мой слух меня не подвел - на проц получается 25 гфлопс в double'ах.
12:00 "..125 двойной..."
ну и так далее.
------
Более того, у меня теперь еще больше подозрений к поведению разрабов - они так легко разбрасываются терафлопсами за счет роста ядер(хрен с ними) и за счет "увеличения вектора", при том что их же код с 2 циклами выдал 5 процентов от пика.
Включу ка я видео на HD.
Если посмотреть на тамошний ассемблер, значит внутренний цикл они упихали в 1 такт на проход по нему, а компенсирующий код, который "корректирует результат конвейерной обработки" + внешний цикл, занял 11? Ок, пусть там будет еще один цикл и увеличение счетчика - 1 такт в одной жирной команде ("jz/jnz + add на счетчик + локальная переменная"), и еще 1 такт на присвоение результата ("mov"), а еще 9 куда?
Если бы они его крутили без параллелизма на одном проце 4С (25 гфлопс), они бы все равно скушали 5 только в одном случае... если бы крутили его на одном ядре из 4... И тут мы вспоминаем, что VLIW это всего лишь про жирные команды, а вовсе не про магическое превращение однопоточного софта в многопоточный и сишный код бенчмарка на это как бы намекает. И смотрим опять выше про модель вычисления и про видеокарты (параллельное выполнение однотипных кусков) как единственный не маргинальный пример использования.
Опять, ИМХО.