netch80: (Default)
[personal profile] netch80
Может, баян, но я для себя ещё не формулировал.

Общеизвестная критика Intel с позиции "этот ваш x86 полный отстой, надо было делать как в ARM/MIPS/etc., конверсия во внутренний RISC не нужна, команды разбирать слишком дорого", которой полны соответствующие форумы - обычно заканчивается тем, что оппонент или стихает, или переходит в режим "от обоснуя слышу" и на этом обсуждение заканчивается якобы победой критика.

Но я ни разу не видел возражения на это, что RISC, VLIW, etc. организации банально нерасширяемы. Да, иногда цена расширения велика - начиная от тотального OOO+Tomasulo во внутренней логике (дорогая таки штука) до префиксов на каждую операцию (в x86-64 коде, ~38% всех команд с префиксом REX, и это я не считал те, у которых он подразумевается из-за единственности сути), но она подъёмна и, главное, перспективна в плане сохранения совместимости с существующими готовыми продуктами. X86-32 пережило даже внедрение AVX:) и умирать не собирается.

Отсюда обратный вывод - что x86 живо только пока идёт бурное развитие (по закону Мура). Как только последний остановится, она потеряет преимущество и лет за 10 уйдёт в ноль; но пока рост есть - она непобедима. Закон Чёрной королевы в действии.

Но странно другое. Практически каждое архитектурное решение Intel это в лучшем случае оптимальность на один шаг вперёд, уже через два шага побочные эффекты сиюминутной выгоды становятся явными недостатками. Результат выглядит как корабль, слой ракушек на котором в несколько раз толще ширины корабля. Зачем? Я не верю, что у них так плохо с мозгами.

Date: 2014-01-07 06:39 am (UTC)
From: [identity profile] netch80.livejournal.com
> Альфа проектировалась и была спроектирована на максимальную longevity архитектуры,

Я охотно верю, что таковы были амбиции её создателей. Но я говорил не о том, что им хотелось, а как оно получилось. Её авторы прошляпили всё, что можно было.
К несерверной нагрузке она была в принципе не готова. Например, как можно было исключать крайне важную часть в самом начале и потом спешно доделывать BWX вслед уходящему поезду? В результате работа с текстами получилась провальной.
А для серверов? Где возможность того развития, которое в случае x86 вылилось в MMX, SSE, AVX и так далее? Неужели сложно было на основании опыта векторного сопроцессора VAX (который был догнан Intel'ом только в SSE2) понять, что это крайне перспективное направление?

> с запасом отсутствия архитектурных ограничений по росту производительности реализаций на 40 лет,

Ага, ага. В то время, как у соседей за счёт AVX считается по 8 действий за такт, эти так и будут по одному гонять. Зато на 6-8 гигагерцах (которые так и не наступили, если не в сжиженном сферическом вакууме). И PALcode, который типа независимый от всех будущих революций, но на вызов которого уходит всё время.

> и с как минимум 1000-кратной масштабируемостью по отношению к начальной реализации.

В смысле - 1000 маленьких процессорчиков в ряд? Если плоский SMP, то из-за поддержки когерентности кэшей весь пар уйдёт в свисток. Если NUMA, то кому сейчас такое нужно?

Date: 2014-01-07 11:00 pm (UTC)
From: [identity profile] oboguev.livejournal.com
> К несерверной нагрузке она была в принципе не готова.

Стив Джобс желавший предлагавший DEC-у использовать Альфу в новом Макинтоше думал иначе.

> как можно было исключать крайне важную часть в самом начале

Ее ведь и не исключали.
Просто приняли (разумное и верное) решение, что time to market важнее, чем полнота системы комманд в первом же EV.

> спешно доделывать BWX вслед уходящему поезду
> В результате работа с текстами получилась провальной


Неужели?
Что, TPU или Rdb или Oracle работали неудовлетворительно?

> А для серверов? Где возможность того развития, которое в случае x86 вылилось в MMX, SSE, AVX и так далее?

http://en.wikipedia.org/wiki/DEC_Alpha#Motion_Video_Instructions_.28MVI.29

> векторного сопроцессора VAX (который был догнан Intel'ом только в SSE2)

VAX vector и SSE -- это совершенно разные вещи.
SSE не покушается на крее-подобную архитектуру, поэтому утверждать, что "SSE догнал VAX Vector" -- бессмысленно.

> Неужели сложно было на основании опыта векторного сопроцессора VAX ... понять, что это крайне перспективное направление?

Вы, очевидно, не рефлектируете, что смотритесь со стороны несколько странно с утверждением, что вы, к этим делам никакого реального отношения не имевший, дескать, "понимаете", а организация, разработавшая и продававшая (или пытавшаяся продавать) векторные машины, и имевшая обширный технологический и рыночный опыт в этой области и вообще компьютерной области (и также определившая векторные расширения в PRISM, проекте-прототипе Альфы) -- "не понимает".
При этом вам почему-то даже в голову не приходит задаться вопросом, каков оказался рынок для VAX VECTOR, и было ли придание Альфе крееподобных векторных расширений окупаемым и рыночно-приоритетным в тот отрезок времени.

> В смысле - 1000 маленьких процессорчиков в ряд?

В смысле,
10х за счет повышения тактовой частоты, т.е. сугубо технологий реализации.
10х за счет увеличения глубины конвейеризации и внутрипроцессорной параллелизации исполнения.
10х за счет SMP.

Цифры разумеется условны, может быть не 10х, а 20x или 30х -- речь о порядковых целях ставившихся разработчиками.

В конечом счете, архитектура x64 значимо хуже Альфы ровно в одном, но важном фукциональном отношении: массой имплицитных взаимозависимостей в наборе инструкций, каковые зависимости из набора инструкций Альфы тщательно устранены. В поздних моделях x86/x64 влияние данных зависимостей на скорость исполнения одного потока маскируется благодаря большой глубине спекулятивного исполнения -- но это достигается за счет нескольки-кратного увеличения требуемого количества транзисторов и энергопотребления.

Иными словами, сегодяшний максимально-быстрый на отдельном потоке процессор с архитектурой Альфы не был бы радикально быстрее, чем максимально-быстрый процессор с архитектурой x64, но он был бы (при прочих равных обстоятельствах, как то условно-равных масштабах и накладных расходах производства) в несколько раз дешевле и в несколько раз энерго-экономичнее.

Или, прочтя то же в обратном направлении, за одинаковые деньги на производство и эксплуатацию high-end машины можно было бы иметь в такой машине в несколько раз большее количество Альфа-ядер, чем x64-ядер, при равной производительности ядра.

Или же, для устройств класса Xeon Phi, при одинаковой стоимости производства и эксплулатации, архитектура Альфы давала бы в несколько раз бОльшую производительность, чем архитектура x86/x64.
Edited Date: 2014-01-07 11:43 pm (UTC)

Date: 2014-01-08 10:37 am (UTC)
From: [identity profile] netch80.livejournal.com
> VAX vector и SSE -- это совершенно разные вещи.
> SSE не покушается на крее-подобную архитектуру, поэтому утверждать, что "SSE догнал VAX Vector" -- бессмысленно.

Вы, наверно, говорите о чём-то другом (возможно, VAX 9000?) Я говорю об вот этом, которое ничем принципиально не отличается от того же SSE; а, если в более общем смысле - то о том, что сама по себе идея поддержки векторных операций родилась задолго до рождения Alpha (и почти одновременного с ним рождения Intel MMX), и это могло бы намекнуть, что здесь открывается совершенно новое поле для развития. VAX был выбран как ближайший по времени крупный пример. Специфика Cray, своя у каждой модели, слишком разнообразна, чтобы с ней сравнивать.

> Вы, очевидно, не рефлектируете, что смотритесь со стороны несколько странно с утверждением, что вы, к этим делам никакого реального отношения не имевший, дескать, "понимаете", а организация, разработавшая и продававшая (или пытавшаяся продавать) векторные машины, и имевшая обширный технологический и рыночный опыт в этой области и вообще компьютерной области (и также определившая векторные расширения в PRISM, проекте-прототипе Альфы) -- "не понимает".

Ничего странного не вижу. Совершенно очевидно, что для истории Alpha я здесь уже изображаю типичного второго участника из "был бы я таким умным, как моя жена завтра". Это не умаляет ценность их работы, и того, что они приняли посильное участие в развитии отрасли. Но это позволит сделать вывод о причинах их проигрыша.

> При этом вам почему-то даже в голову не приходит задаться вопросом, каков оказался рынок для VAX VECTOR, и было ли придание Альфе крееподобных векторных расширений окупаемым и рыночно-приоритетным в тот отрезок времени.

Здесь Вы уже однозначно не понимаете, что я говорю. Я не предлагаю включать машину времени и срочно гнать векторные расширения (не "крееподобные"!) в изделия 90-го года. Но я говорю, что сама по себе возможность лёгкого включения таких расширений без глобального перелома архитектуры и без массового заката солнца вручную оказалась важнее, чем другие полезные свойства.

>> А для серверов? Где возможность того развития, которое в случае x86 вылилось в MMX, SSE, AVX и так далее?
> http://en.wikipedia.org/wiki/DEC_Alpha#Motion_Video_Instructions_.28MVI.29

Это эквивалент для 1-2 первых этапов в цепочке. Но не для неограниченного развития.

> Что, TPU или Rdb или Oracle работали неудовлетворительно?

Есть ссылка на сравнения тех времён при примерно равной цене за решение? Потому что, насколько я помню, такая работа была крайне медленной, а для эквивалента надо было переплатить в несколько раз.

> Иными словами, сегодяшний максимально-быстрый на отдельном потоке процессор с архитектурой Альфы не был бы радикально быстрее, чем максимально-быстрый процессор с архитектурой x64, но он был бы (при прочих равных обстоятельствах, как то условно-равных масштабах и накладных расходах производства) в несколько раз дешевле и в несколько раз энерго-экономичнее.

Почти безусловно, так (с заменой "Alpha" на "почти generic RISC"). Именно поэтому на смартфонах и планшетах взлетел ARM, а попытки загнать туда же x86 пока не дают заметного успеха. Но взлёт андроида произошёл на яве, а не на родном коде процессора.

> В конечом счете, архитектура x64 значимо хуже Альфы ровно в одном, но важном фукциональном отношении: массой имплицитных взаимозависимостей в наборе инструкций, каковые зависимости из набора инструкций Альфы тщательно устранены.

Это отдельная долгая тема. Но заметим, что современная компиляция для x86 уверенно направлена на то, чтобы эти зависимости сократить до минимума, и это в основном получается.

Date: 2014-01-23 01:44 am (UTC)
From: [identity profile] oboguev.livejournal.com
>> VAX vector и SSE -- это совершенно разные вещи.
>> SSE не покушается на крее-подобную архитектуру, поэтому утверждать, что "SSE догнал VAX Vector" -- бессмысленно.
> Вы, наверно, говорите о чём-то другом (возможно, VAX 9000?) Я говорю об вот этом, которое ничем принципиально не отличается от того же SSE


VAX Vector -- это процессор с длиной вектора 64 double и SIMD-фактором 64 с набором команд ориентированным на плавающую точку и рудиментарной поддержкой целых чисел и битовых операций (насколько помню, всего по 1 команде из последних категорий).
SSE -- это процессор с очень короткой длиной вектора (лень смотреть, но примерный SIMD-фактор 2-4, позднее при продвижении к AVX чуть больше) ориентированный первоначально по преимуществу на битовые и целочисленные операции, с первоначально третьестепенной и далее нарастающей ролью floating point.

Это совершенно разные устройства с совершенно разными назначениями:
VAX Vector -- это сопроцессор клонирующий архитектуру Cray-1/2 предназначенный для задач типа газовой динамики и т.п. решаемых алгоритмически так, как они решались на Cray-1/2 или других машинах подобной же архитектуры вроде Convex C1-C4.
SSE -- это набор команд с коротким SIMD-вектором предназначенный изначально в основном для битовых и целочисленных операций, т.е. для задач multimedia, и потом очень медленно расширявшийся в сторону большей пригодности для BLAS.

SSE совершенно не является аналогом VAX Vector.
Аналогом SSE является Alpha MVI.

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

> Я не предлагаю включать машину времени и срочно гнать векторные расширения (не "крееподобные"!) в изделия 90-го года. Но я говорю, что сама по себе возможность лёгкого включения таких расширений без глобального перелома архитектуры и без массового заката солнца вручную оказалась важнее, чем другие полезные свойства.

В Альфе эта возможность не только существовала, но и была осуществлена в виде MVI.

>> http://en.wikipedia.org/wiki/DEC_Alpha#Motion_Video_Instructions_.28MVI.29
> Это эквивалент для 1-2 первых этапов в цепочке. Но не для неограниченного развития.


В архитектуре Альфы не существует никаких ограничений для "неограниченного развития".

>> Что, TPU или Rdb или Oracle работали неудовлетворительно?
> Есть ссылка на сравнения тех времён при примерно равной цене за решение?


Разумеется есть: тесты SPECххх, TPC и других смесей, которые совершенно несомненным образом позиционировали Альфа-системы в качестве самых высокопроизводительных микропроцессорных машин своего времени, с далеким отрывом.
До тех пор, пока этот отрыв не был преодолен увеличением глубины спекулятивного исполнения в x64, со всей стоимостью этого решения.

>> Иными словами, сегодяшний максимально-быстрый на отдельном потоке процессор с архитектурой Альфы не был бы радикально быстрее, чем максимально-быстрый процессор с архитектурой x64, но он был бы (при прочих равных обстоятельствах, как то условно-равных масштабах и накладных расходах производства) в несколько раз дешевле и в несколько раз энерго-экономичнее.
> Почти безусловно, так (с заменой "Alpha" на "почти generic RISC").


Нет, без замены: RISC-архитектура сама по себе вовсе не подразумевает устранение implied зависимостей между командами.

>> В конечом счете, архитектура x64 значимо хуже Альфы ровно в одном, но важном фукциональном отношении: массой имплицитных взаимозависимостей в наборе инструкций, каковые зависимости из набора инструкций Альфы тщательно устранены.
> Это отдельная долгая тема. Но заметим, что современная компиляция для x86 уверенно направлена на то, чтобы эти зависимости сократить до минимума, и это в основном получается.


Это получается не за счет компиляции (опыт Itanium-а показывает, что эффективная статически-предиктивная компиляция недостижима), а за счет глубокого спекулятивного исполнения, т.е. за счет увеличения по сравнению с Альфой в несколько раз площади и стоимости кристалла процессора и его энергопотребления.
Edited Date: 2014-01-23 02:00 am (UTC)

Date: 2014-03-02 09:04 am (UTC)
From: [identity profile] netch80.livejournal.com
> VAX Vector -- это сопроцессор клонирующий архитектуру Cray-1/2 предназначенный для задач типа газовой динамики и т.п. решаемых алгоритмически так, как они решались на Cray-1/2 или других машинах подобной же архитектуры вроде Convex C1-C4.

Отлично. Но под что он использовался кроме этого? И аналогичные векторные процессоры конкурентов? Использование под нужды графики и аналогичные, да и просто короткие пачки сихронных однотипных операций, возникло достаточно рано и показало основное направление, а также то, что это направление может развиваться достаточно долго. Газовая динамика, 64 значения - это всё уже вторично.

> В Альфе эта возможность не только существовала, но и была осуществлена в виде MVI.

И насколько его можно было расширять? Могло оно пройти полный путь нынешнего векторного процессинга в x86? Думаю, ответ очевиден.

> В архитектуре Альфы не существует никаких ограничений для "неограниченного развития".

Это требует доказательства. Доказательство должно начинаться с того, каким именно образом неограниченное расширение предполагается в архитектуре с фиксированным размером команды. Пожалуйста, косвенные методы типа "префиксов", которые что-то заливают в спец. регистры, не предлагать.

> До тех пор, пока этот отрыв не был преодолен увеличением глубины спекулятивного исполнения в x64, со всей стоимостью этого решения.

OK, предположим (с поправкой, что x86-64 сам по себе тут ни при чём). И что плохого в этой стоимости, если она приемлема для >99% применений?

> Это получается не за счет компиляции (опыт Itanium-а показывает, что эффективная статически-предиктивная компиляция недостижима), а за счет глубокого спекулятивного исполнения, т.е. за счет увеличения по сравнению с Альфой в несколько раз площади и стоимости кристалла процессора и его энергопотребления.

То есть, в переводе на понятный язык, на десктопе и выше она перестала тянуть из-за слабой расширяемости и недостаточно "спекулятивного" исполнения, а для более embedded ниш она в разы кривее MIPS, ARM и прочих конкурентов.

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 11th, 2026 08:54 am
Powered by Dreamwidth Studios