Сообщение Re[18]: .Net на эльбрусах от 15.08.2022 19:14
Изменено 15.08.2022 19:18 vdimas
S>Ну всё таки нет. у SIMD есть офигенное преимущество — single instruction. То есть тайминг всей команды одинаковый.
Тайминг всей одной команды одинаков? ))
VLIW способен на это же by design через явный параллелизм на уровне команд (EPIC), для этого достаточно задать одну и ту же команду разным операндам в широком слове и получишь "одинаковый тайминг всей команды".
Вот тебе за такт 41 векторная операция (упакованные данные — это которые идут последовательно в памяти).Основная особенность линейки отечественных процессоров «Эльбрус» — заложенный в архитектуру принцип явного параллелизма операций, он даёт возможность выполнять на каждом ядре за один машинный такт до 25 операций неупакованных 32- и 64-разрядных данных и до 41 операции в векторном режиме (упакованные 32-разрядные данные)[8], что обеспечивает высокую производительность при умеренной тактовой частоте;
Одна такая операция равна одной SIMD-операции привычной тебе архитектуры, а тут их 41.
25 неупакованных за такт — тоже неплохо, позволяет вести эффективные вычисления в регистрах без обмена с RAM.
Для сравнения с SIMD раздели на 4, получишь 6 аналогов SIMD-инструкций за такт.
Но аналогично лишь условно, бо VLIW/EPIC оставляют больше простора для реализации всевозможной комбинаторики сценариев.
Впрочем, я уже пытался обратить на этот важный факт внимание, не зря ведь когда-то суперкомпьютеры делались по такой технологии.
Насчёт задержек — компилятор обладает информацией о таймингах операций.
Далее.
Со своей стороны железо использует несколько спекулятивных конвейеров, где по итогу ветвления ненужные ветки (и результаты их вычислений) отбрасываются.
Примерно то же самое происходит и в суперскалярах, т.к. ОО — это лишь один из трюков, без спекулятивности никак.
=====================
Чтобы два раза не вставать и не возвращаться к этой скучной теме:
SIMD выручает там, где вычисления дороги, например, из-за планирования OO и спекулятивности.
Именно это и есть "его офигенное преимущество" (С), оно же единственное, т.к. вычисления в суперскалярных процах слишком дороги — до половины всей энергии и транзисторов на кристалле заняты обслуживанием потока команд, а не целевыми вычислениями. В архитектурах EPIC больше ресурсов заняты полезными вычислениями.
По-сути, суперскаляры являются компроммисом между быстрыми вычислительными ядрами и ужасного медленного IO, в т.ч. RAM.
И если обратишь внимание на относительный рост характеристик компонент вычислителных систем, то станет видно, что все 90-е и примерно до 2004-го резко отрывались в быстродействии ЦП, а IO безбожно отставало. Сейчас кривая роста эффективности ЦП давно в насыщении, зато IO продолжает стабильно улучшать свою эффективность.
По мере увеличения эффективности обмена с RAM значимость EPIC-вычислений будет расти. Но в данный исторический период, когда RAM с т.з. ЦП работает чудовищно медленно, суперскаляры рулят, ес-но.
Ну а я просто вижу, что кеши в процах тоже непрерывно растут, а там статическая быстрая память, сегодня уже есть по 64 метра.
Рано или поздно внутренняя память процов вырастет до размера "достаточности" и OO-исполнение потеряет свою остроту. ))
S>Ну всё таки нет. у SIMD есть офигенное преимущество — single instruction. То есть тайминг всей команды одинаковый.
Тайминг всей одной команды одинаков? ))
VLIW способен на это же by design через явный параллелизм на уровне команд (EPIC), для этого достаточно задать одну и ту же команду разным операндам в широком слове и получишь "одинаковый тайминг всей команды".
Вот тебе за такт 41 векторная операция (упакованные данные — это которые идут последовательно в памяти).Основная особенность линейки отечественных процессоров «Эльбрус» — заложенный в архитектуру принцип явного параллелизма операций, он даёт возможность выполнять на каждом ядре за один машинный такт до 25 операций неупакованных 32- и 64-разрядных данных и до 41 операции в векторном режиме (упакованные 32-разрядные данные)[8], что обеспечивает высокую производительность при умеренной тактовой частоте;
Одна такая операция равна одной SIMD-операции привычной тебе архитектуры, а тут их 41.
25 неупакованных за такт — тоже неплохо, позволяет вести эффективные вычисления в регистрах без обмена с RAM.
Для сравнения с SIMD раздели на 4, получишь 6 аналогов SIMD-инструкций за такт в регистрах (с произвольной их адресацией).
Но аналогично лишь условно, бо VLIW/EPIC оставляют больше простора для реализации всевозможной комбинаторики сценариев.
Впрочем, я уже пытался обратить на этот важный факт внимание, не зря ведь когда-то суперкомпьютеры делались по такой технологии.
Насчёт задержек — компилятор обладает информацией о таймингах операций.
Далее.
Со своей стороны железо использует несколько спекулятивных конвейеров, где по итогу ветвления ненужные ветки (и результаты их вычислений) отбрасываются.
Примерно то же самое происходит и в суперскалярах, т.к. ОО — это лишь один из трюков, без спекулятивности никак.
=====================
Чтобы два раза не вставать и не возвращаться к этой скучной теме:
SIMD выручает там, где вычисления дороги, например, из-за планирования OO и спекулятивности.
Именно это и есть "его офигенное преимущество" (С), оно же единственное, т.к. вычисления в суперскалярных процах слишком дороги — до половины всей энергии и транзисторов на кристалле заняты обслуживанием потока команд, а не целевыми вычислениями. В архитектурах EPIC больше ресурсов заняты полезными вычислениями.
По-сути, суперскаляры являются компроммисом между быстрыми вычислительными ядрами и ужасного медленного IO, в т.ч. RAM.
И если обратишь внимание на относительный рост характеристик компонент вычислителных систем, то станет видно, что все 90-е и примерно до 2004-го резко отрывались в быстродействии ЦП, а IO безбожно отставало. Сейчас кривая роста эффективности ЦП давно в насыщении, зато IO продолжает стабильно улучшать свою эффективность.
По мере увеличения эффективности обмена с RAM значимость EPIC-вычислений будет расти. Но в данный исторический период, когда RAM с т.з. ЦП работает чудовищно медленно, суперскаляры рулят, ес-но.
Ну а я просто вижу, что кеши в процах тоже непрерывно растут, а там статическая быстрая память, сегодня уже есть по 64 метра.
Рано или поздно внутренняя память процов вырастет до размера "достаточности" и OO-исполнение потеряет свою остроту. ))