«Камо грядеши?» в кремнии. О процессорах и путях, которые мы выбираем.

Илья Вайцман (Stranger_NN)
специально для radeon.ru

18.02.2017

 


Вступление.

Мне много раз уже писали (кричали, презрительно бросали через губу), что у меня в отношении «российской школы процессоростроения» (детища гр. Бабаяна Б.А.) - голое критиканство, и что я все равно не могу предложить ничего лучшего, чем уже состоявшийся путь развития (приведший «отечественные процессоры» в концептуальный тупик, не оставляющий шансов на дальнейший рост производительности, но об этом ниже). Я, признаться, думал, что господа «патриоты и государственники» немного лучше разбираются в теме, по которой пытаются спорить, и мне казалось, что все настолько очевидно - «как надо было», и как «не надо было», что и говорить не о чем, и это просто истерика. Однако, это оказалось не так - и мне придется потратить час времени и потыкать «патриотов» носом.

Немного истории, и повесть о том, как мы дошли до жизни такой.

Скажите, вы слышали что-нибудь про архитектуру MIPS? Нет, не надо кидаться в гугл, не слышали. И про SPARC/Ultra SPARC тоже нифига не знаете, даже не пытайтесь возражать. Так вот, докладываю: компания МЦСТ – это, есличо, «Международный центр SPARC-технологий». Потому что в середине 90-х именно SPARC v.8 была выбрана в качестве базовой архитектуры будущего российского процессора. Почему? Ну, полагаю, что из-за своей простоты и небольшого числа транзисторов, из-за нетребовательности к техпроцессу и дешевизны лицензии. И, надо признать, что первые отечественные процессоры получились быстро и с вполне ожидаемыми параметрами. Что дальше? А дальше - всё, приехали. IPC (не путать с теоретической параллельностью!) даже для Ultra SPARC v.9 примерно никакая, так что несмотря на приличные, казалось бы, частоты - итоговая производительность не радует (кстати, именно поэтому компания SPARC и сошла со сцены - ее процессоры застряли на уровне начала 90-х).

Собственно, самым быстрым продуктом МЦСТ архитектуры SPARC на сегодня является МЦСТ R1000 который при проектной норме 90 нм имеет производительность 8 GFlops, что примерно соответствует четырехядерному процессору Intel Atom N3540 (в маркетинговых целях его перекрестили в Pentium N3540, но какой же он Pentium? Смех один...). Ну, сами понимаете, что сегодня это самый-самый-самый low-end потребительского рынка. Конечно, такой производительности для всякого военного и встроенного применения хватает, но и только. Усугубляет проблему R1000 и древний интерфейс, с крайне ограниченной ПСП (6,4 GB/s против 21,32 GB/s), и недостаточный размер кэша, так что в алгоритмах с несложным счетом он еще и в память упирается (Есть, конечно, в мире и линейка Venus SPARC64 от Fujitsu, там совсем другие величины производительности в ходу (128 и более GFlops), и даже 32-ядерные вычислители SPARC64 XIfx терафлопного класса - но там от оригинального процессора SUN осталась только, наверное, система команд, для совместимости, при полностью переработанной архитектуре - и они вряд ли продадут лицензию.).

Развивать эту концепцию дальше смысла уже просто не было - да и было ли это в планах, кроме как на сайте МЦСТ? Не знаю, но рискну предположить, что одним из факторов выбора этой архитектуры был запланированный тупик «отечественных процессоров», прорыв из которого состоялся на припасенном в рукаве принципиально другом, фактически «анти-SPARC» принципе - сверхшироком (VLIW) низкочастотном процессоре явного параллелизма и чудовищной IPC, каковой принцип унаследован из еще советских разработок. Тогда, из-за глобального отставания советской микроэлектроники частоты, которыми оперировали компьютеростроители «вероятного противника» были недостижимы, вот и придумали делать компьютеры (серии Эльбрус) «более широкие, чем быстрые» (собственно, саму концепцию VLIW придумали конструкторы компании Burroughs Corporation в 70-х, несколько ранее и по той же причине - уперлись в достижимые частоты).

Суть идеи явного параллелизма в том, что еще на этапе компиляции (неторопливо и качественно, с большой глубиной просмотра кода) выявляются все зависимости и возможности распараллеливания, после чего команды собираются в «пакеты одновременного исполнения» - слова VLIW, содержащие несколько команд. При этом процессору на этапе исполнения уже не надо ни о чем думать (никаких предсказаний ветвления, никакого переупорядочивания команд, в попытках рационально использовать свои ресурсы на неизвестном коде - ему надо просто тупо «взять и выполнить»). Разумеется, что это существенно упрощает схемотехнику процессора и, теоретически, существенно улучшает использование ресурсов как процессора, так и компьютера в целом.

Однако, если западные конструкторы, работавшие над VLIW системами сумели найти какой-то разумный уровень явного параллелизма (в Itanium, к примеру, шесть команд в слове), то наши конструкторы, сделав еще в до-микропроцессорную эпоху парочку пристойного уровня производительности (про надежность не будем) VLIW-машин - остановиться не смогли. И довели ширину слова до 23, а теперь уже и до 25 команд. В принципе, на некоторых алгоритмах, позволяющих хорошо заполнить слово, это позволяет получить совершенно невероятный уровень IPC. В первую очередь, это задачи цифровой обработки сигналов и криптография. Но проблема в том, что полное использование всей ширины VLIW процессора Эльбрус возможно далеко не всегда. Последовательная природа многих алгоритмов не позволяет распараллеливать их исполнение в достаточной степени. Судя по прикидкам «на пальцах», при сравнении производительности с классическими процессорами - средний уровень заполнения командного слова у Эльбрусов болтается где-то на уровне 7-10-12 команд из 23-25 в довольно хорошо параллелящемся тесте LINPACK. Это получается, примерно, 30-50%. Неплохо, конечно, если бы не одно «но».

    Надо четко понимать, что «сверхширокий» и «низкочастотный», неразрывно и двунаправленно связанные параметры - огромной сложности схема с явным параллелизмом на 25 команд просто не разгоняется из-за проблем синхронизации, даже когда компоненты/техпроцессы, вроде бы, уже и доступны. Не зря даже на 28 нанометрах получилось выжать всего 1300 MHz, в то время как VLIW процессор Itanium с учетом интегрированных контроллеров памяти и много чего еще разного еще на 65-нанометровом процессе разгонялись до 1750 MHz (при том, что шесть команд в слове - вполне реалистичный уровень явного параллелизма, стало быть КПД процессора близок к 100%). О частотах, которые достижимы для менее «сильносвязанных» архитектур просто умолчим.

В итоге мы имеем на сегодня «десктопный» Эльбрус-4С, который с миллиардом транзисторов примерно вдвое (теоретический максимум 251 GFlops - и это на Linpack, не считая сложностей достижения этого максимума на системах с таким уровнем параллелизма в произвольных задачах) медленнее уже устаревшего Core 2 Quad (42-47 GFlops – измерено на практике), причем, процессор Intel еще и вдвое меньше транзисторов имеет (ниже себестоимость). Собственно, на этом все - новейший чудовищный Эльбрус-8С с почти тремя миллиардами транзисторов представляет собой экстенсивный перепил дизайна2 и максимум что может дать, с учетом новой частоты, на новом техпроцессе - 70-80 GFlops, вряд ли больше (обещают 125, но я не верю, потому что это просто арифметический расчет теоретического предела. Если из сотни в реальных тестах выберется - чудо будет). На этом, собственно, все. Дальше расти Эльбрусам просто некуда, а многосокетные системы на них... Ну, наверное, кто-то им может найти применение. Если денег не считать.

Что делать, когда нечего делать?

Существует ли другой путь, коль скоро титаны Intel и AMD не горят желанием лицензии продавать? Еще как существует, и любой серьезный IT специалист про него знает. По этому пути пошел Китай.

Что же наши друзья из Китая? А наши друзья из Китая не стали придумывать способы как обхитрить самих себя два раза, и как изобретать велосипеды. Они с конца 90-х взялись за архитектуру MIPS, известную, как раз, довольно короткими конвейерами и высокими значениями IPC. И уже через пару лет показали процессор Godson-1 архитектуры MIPS32. Простенький камешек, работающий, однако, на частоте 200 MHz и показывающий производительность больше, чем вышедших в то же время российских R100 и R150. А потом понеслось - через год появился 64-разрядный (MIPS-III 64-bit) Godson-2, работавший в два раза быстрее, за четыре года его раскрутили до 1200 MHz получив в 2007 году вполне путный десктопный процессор, сопоставимый по производительности с Pentium4 с частотой 2.4 GHz - но потребляющий всего 5 (пять!) ватт. Помнящие времена раскаленных Pentium4 и связанные с этим проблемы могут оценить.

Изображение
Godson-3B1500


А потом китайцы перешли на архитектуру MIPS64 (заметьте - они снова не разрабатывали архитектуру, и даже уже не пиратствовали, как раньше, а просто лицензировались (через STMicroelectronics) и прикладывали дизайн на техпроцесс, обвешивая ядро стандартными компонентами типа кэшей и контроллеров внешних шин, что на порядок быстрее и дешевле) - и уже в 2012 году имели полуторагигагерцовый процессор Godson-3c с 16 ядрами, примерно двумя миллиардами транзисторов и суммарной производительностью 512(!) GFlops. По 32 GFlops на ядро3, в смысле. Это, конечно, серверный топ, и вообще - почти штучное достижение, но и десктопные процессоры этой архитектуры с меньшим количеством ядер и частотой в один гигагерц показывают вполне достойную производительность при достаточно умеренном потреблении (15 ватт для гигагерцового четырехядерного Loongson 3A с производительностью около 80 GFlops и около 40 ватт для восьмиядерного Godson/Loongson-3B1500 (1350 MHz ) с производительностью 172,6 GFlops). Это, напомню, в 3+ и 6+ раза соответственно - быстрее, чем Эльбрус-4С, а если ориентироваться на Эльбрус-8С, текущее наше высшее достижение - то Loongson 3A ему не уступает, имея вчетверо меньше транзисторов, а Loongson-3B1500, имея транзисторов вдвое меньше - вдвое его обгоняет.

Насколько это эффективно по сравнению с эльбрустикой?

Давайте сравним архитектуры в разрезе удельной производительности на ватт, на гигагерц и на транзистор. Результаты, прямо скажем, не радуют, с какой стороны ни смотри.

Если смотреть на ватт, то результаты выглядят как-то так:
  • Intel Core i7-5960X Haswell-E: восемь ядер, 2,6 млрд. транзисторов, 384 GFlops/140 ватт, 3000 MHz (ТП 22 нм) - 2,74 GF/W
  • Godson-3B1500: восемь ядер, 1,14 млрд. транзисторов, 1350 MHz (ТП 32 нм), 172,6 GFlops/40 ватт, 2012 год - 4,315 GF/W
  • Эльбрус-8С: восемь ядер, 2,73 млрд. транзисторов, 1300 MHz (ТП 28 нм), 125,04 GFlops/75-90 ватт, 2015 год - 1,38-1,7 GF/W

Совершенно очевидно, что даже имея лучший, чем у китайского изделия техпроцесс - Эльбрус с треском ему проигрывает. Несколько неожиданным является отставание в удельной производительности интеловского процессора, имеющего двухкратное преимущество в абсолютных величинах, но тут надо понимать, что из 2,6 миллиардов транзисторов интеловского процессора - значительную часть (около половины) составляют не счетные ядра, а 24 мегабайта кэшей второго (8x512 KB) и третьего (20 MB) уровней, необходимые для работы на частоте, многократно превышающей частоту памяти, чтобы ядра не простаивали. Они же вносят очень существенный вклад в общую TDP. С другой стороны, и у Эльбруса кэша 20 мегабайт (8x512 KB L2 + 16 MB L3) - а толку?! «Эльбрус» демострирует потрясающе низкую энергоэффективность!!! Только что TDP 75-90 ватт.


Изображение

Китайский же Godson-3B1500 с такой же частотой и существенно большей производительностью обходится всего девятью мегабайтами кэшей второго (8х128 KB) и третьего (8 MB) уровней - что отлично видно по числу транзисторов и TDP 40 ватт (и, опять же, понятно, что с ростом частоты ему будут наращивать размеры кэшей, получая близкий к демонстрируемому процессорами Intel график абсолютной скорости - и по моему мнению, даже существенно обгоняя их при равной частоте). Ему не мешает даже худший техпроцесс, архитектура MIPS справляется.

Изображение
Loongson 3A1500

Про самые новые китайские процессоры Loongson 3A2000/1500 и 3B1500 на новой архитектуре GS464E информации пока мало, но некоторые публикации говорят, что они, имея примерно такое же количество транзисторов (в пределах полутора миллиардов), показывают с четырьмя5 ядрами уровень производительности в те же 170-180 GFlops, что несильно меньше интеловских десктопных процессоров вышесреднего уровня - и это при сохраняющемся кратно меньшем потреблении энергии (точной информации у меня нет, но исходя из техпроцесса - должны бы ватт в 30-35 вписаться). Собственно, никакого чуда тут нет - им же не надо волочить за собой чудовищный хвост совместимости с процессорами и решениями полувековой давности, так что ничего волшебного.

    Кстати, обратите внимание: если бы китайцы сделали восьмиядерный (хотя бы и двухкристальный, как Godson-3B1500) процессор на новых ядрах, то они могли бы догнать интеловский процессор и по абсолютной скорости счета, имея еще приличный запас по частотам и тепловыделению!
Может быть, нас ждут чудеса в удельной производительности VLIW на гигагерц? Однако, и тут ничего интересного:
  • Intel Core i7-5960X Haswell-E: 2,6 млрд. транзисторов, 384 GFlops, 3000 MHz - 128 GF/GHz
  • Godson-3B1500: 1,14 млрд. транзисторов, 172,6 GFlops, 1350 MHz - 125 GF/GHz
  • Эльбрус-8С: 2,73 млрд. транзисторов, 1300 MHz, 125 GFlops - 96 GF/GHz

В полтора раза (при равной частоте) превосходящий результат достигнут на MIPS64 при вдвое меньшем, чем у Эльбруса количестве транзисторов, и при вдвое меньшем потреблении, энергии, несмотря на худший техпроцесс, понимаете? Это приговор всей прикладной и теоретической эльбрустике и рассказам о непревзойденной эффективности VLIW в том виде, в котором ее продвигает МЦСТ. Больше прошу не беспокоить с рассказами про «превосходящую всё существующее и не имеющую аналогов архитектуру «Эльбрус». Это не соответствует действительности, если политкорректно. Почему так? Я думаю, как уже писал выше, что это из-за очень большого недозаполнения свер-сверхдлинного командного слова. 23-25 - это слишком много.

    При этом, обратите внимание, удельная производительность на гигагерц у китайских процессоров архитектуры MIPS такая же, как у интеловских топов, при заметно большей энергоэффективности.

И еще один гвоздь в гроб эльбрустики. Экономический.

Есть и еще одно неочевидное, но смертельное для «отечественных процессоров» следствие «своего пути»: хождение «своим путем»: придумывание и изготовление всего абсолютно с нуля, без использования чужих наработок - это очень долго и очень дорого. Чем выливается для конечного пользователя такое «натягивание совы на глобус», которым несколько десятилетий занимались сотни высокооплачиваемых специалистов? Тем, что такая «сова на глобусе» в магазине стоит совершенно дурных денег. Вычислительный комплекс «Эльбрус-401PC» имеет оглушительный ценник в 199000.00 р. Даже с учетом того, что там монитор на 23 дюйма в комплекте - это раза в четыре дороже, чем можно купить нормальный компьютер на платформе Intel или AMD. При этом, за свои деньги покупатель нормального компьютера получит еще и вчетверо (грубо) большую производительность. Т.о., «патриотизм» в вычислениях обойдется в шестнадцать (грубо) раз дороже, чем при использовании нормальных компьютеров. Я не думаю, что существует хоть сколько-нибудь заметное количество людей, готовых купить это за свои деньги. «Эльбрусы» принудительно распихают за бюджетные деньги в государственные и бюджетные учреждения. Разумеется, с учетом всех привходящих обстоятельств (несмешная производительность, падающая еще примерно вдвое при использовании знакомого ПО (х86/64) через режим динамической трансляции кода) и сложности с переносом имеющегося программного обеспечения - «патриотические компьютеры» будут использоваться только для показов начальству и отчетности. А работать будут на «вражеской» технике.

ИТОГО: китайцы с нуля за двадцать лет заполучили современные микропроцессоры мирового уровня, практически без технологического риска, и сдается мне, что существенно дешевле, чем нам «Эльбрусы» обошлись. И у них перспектива открыта - а мы опять в тупике. Продать получившийся ущербный продукт можно только самим себе за свои деньги. Как из него выбираться? Перестать, наконец, ходить «своим путем», и отлицензировать ту же современную MIPS64. Люди, способные запустить трехмиллиарднотранзисторный Эльбрус-8С на 1300 мегагерц (тот же МЦСТ) - года за 2-3 сделают и десктопные MIPS64 камни на 100+ GFlops (настоящих, 64-разрядных) и серверные на 500+.

Если, наконец, начать ехать по дороге, а не продираться через «суверенные» буераки VLIW, потому что это «традиция такая, предки так ездили».

Изображение

Знаете, что на этой фотографии? На этой фотографии - ноутбук на процессоре Loongson 3A2000. Небольшой ноутбук с диагональю 13,3 дюйма, под управлением Linux, что естественно - и с производительностью свыше 150 GFlops. При том, что типовой ноутбук на i7 дает производительность в пределах сотни. Честно говоря, такое уже хочется купить для нормальной работы, а не просто как поиграть с экзотической хреновиной.

P.S. В России сегодня тоже разрабатываются процессоры архитектуры MIPS32 и даже -64, но это крохотные низкочастотные (от 33 до 150 MHz) счетчики для встраиваемого и военного применения. Слово «Гигафлопс» в их присутствии произносить невежливо. Плакать будут. Изображение Хотя, в отличие от «Эльбрусов» - они-то вполне коммерчески успешны. Что намекает.




1. Компания МЦСТ любит слегка лукавить, раздельно указывая гигафлопсы для 64- и 32-разрядной точности. «В попугаях» (32-разрядной точности) у них ровно в два раза больше, чем в стандартном для современной индустрии 64-разрядном тестировании. Публично, для неспециалистов, они озвучивают только 32-разрядные результаты. Я, разумеется, здесь и далее ссылаюсь только на «64-разрядные гигафлопсы», как позволяющие относительно корректно сравнивать производительность разных по архитектуре процессоров.
2. Строго говоря, увеличение ширины слова с 23 до 25 команд (как и любое другое изменение архитектуры процессоров с явным параллелизмом) требует, для полного использования возможностей, перекомпиляции всех приложений. Это оборотная сторона выноса анализа кода из процессора в компилятор. Программу надо вручную «перепривязывать» к новым возможностям процессора. При этом обратный перенос программ, скомпилированных в ширину 25 команд в слове на старые процессоры с 23 командами в слове невозможен вообще. Тоже здорово...
3. Если бы китайцы сделали 32-ядерную версию, то они при сравнимом количестве транзисторов на полутора гигагерцах догнали бы 32-ядерный Fujitsu SPARC64 Xifx, работающий на частоте 2.2 GHz. Это замечание к вопросу IPC у разных архитектур.
4. Для китайского процессора реально измеренная величина, для Эльбруса-8С - теоретический максимум.
5. Т.е., производительность на ядро увеличена по ср. с предыдущим поколением в два раза.

 

Наверх


Обсудить в конференции

 

 

Верстка:
- frontier -


На главную страницу

Главная | Справочник | FAQ | Статьи | Загрузки | Контакты | Конференция

Логотипы, торговые марки и прочие зарегистрированные знаки принадлежат их правообладателям.
Copyright © 2001 - 2017, Radeon.ru Team.
Перепечатка материалов запрещена.

Рейтинг@Mail.ru Rambler's Top100