AMD Bulldozer: ждать ли революции?
AMD Bulldozer: ждать ли революции?
Автор: Андрей Луценко
Опубликовано 18 октября 2011 года
Анонс новых процессоров AMD Bulldozer ("Бульдозер") получился неоднозначным. В комментариях и обзорах царит полный скепсис. Тесты показывают отсутствие значимого повышения эффективности в сравнении с предыдущей архитектурой К10 в пересчете на единичное ядро. Долгожданная архитектура процессоров от AMD вызвала всеобщее разочарование. А зря. Незамеченным осталось главное: в архитектуре процессорных систем AMD применила совершенно новый способ повышения производительности.
Чтобы понять суть произошедших революционных изменений в архитектуре нового процессора AMD, нужно абстрагироваться от результатов конкретных тестов. Никто не спорит - технология сырая. Но не будем с водой выбрасывать младенца: главное - концепция.
Посмотрите на блок-схему новых процессоров AMD. Сразу видно, архитектура ориентирована на связное выполнение двух зависимых вычислительных процессов.
Ранее за производительность боролись тремя способами: наращивали количество ядер в процессоре, повышали число команд, выполняемых за единичный такт, или увеличивали тактовую частоту, упираясь в тепловой пакет на уровне 130-150 Ватт.
"Бульдозер" двинулся другим путём. В борьбу за повышение производительности вступила многопоточная обработка команд. Возникло новое понятие: "тесно связанные вычислительные ядра", или, ещё короче, "процессорный модуль".
И вот с этого места начну поподробнее, хоть и популярно.
Задаче повышения эффективности межпроцессорного взаимодействия до сих пор внимания практически не уделялось; системы межпроцессорных прерываний остаются неизменными на протяжении уже третьего десятилетия. За это время изменилось многое, и главное, на что пока не реагировали разработчики микропроцессорных архитектур, - это совмещение на одном кристалле нескольких процессорных ядер. Нонсенс - процессоры на одном кристалле, а связь между ними организована по внешней шине и по устаревшему протоколу...
Да и программисты наизобретали множество способов облегчить себе жизнь, в то время как эффективность самого вычислительного процесса катастрофически упала.
Их "творения" даже на последних суперскоростных процессорах работают с "тормозами". Почему? Да потому, что оптимальные алгоритмы вычислительных процессов были изменены в угоду удобству поточной индустрии программирования (слово "индус" произошло от слова "индустрия"? или наоборот?).
Базовыми технологиями производства программного продукта на настоящий момент являются объектное программирование и универсальные виртуальные машины.
Следствием такой индустриализации стало использование методов связывания объектов на этапе выполнения и выполнение кода в среде интерпретаторов. Фактически функций компилятора были перенесены в среду исполнения кода. То, что ранее выполнялось один раз на этапе компиляции дистрибутива, теперь выполняется каждый раз во время работы программы у конечного пользователя.
Но не всё так мрачно. Как говорится, "не было счастья, так несчастье помогло". Сейчас весь типовой вычислительный поток состоит из двух компонент, функций компилятора и собственно рабочего тела программы. Этот поток можно разбить на два тесно связанных потока и параллельно выполнять на разных процессорах, но вот беда: архитектура межпроцессорных взаимодействий пока такого не позволяет.
Как бороться с этой бедой? Да очень просто: есть связанные вычислительные потоки, значит, по ассоциации, нужно сделать тесно связанные вычислительные ядра для их эффективной обработки. Бульдозер выбрал этот путь.
Недавно появилась ещё одна область вычислительных задач, на которых явно применяются тесно связанные вычислительные потоки, - виртуализация. В ней используются связанные вычислительные потоки типа "хост-задача".
Да и старая академическая тема спекулятивного выполнения кода сводится к параллельной работе нескольких тесно связанных вычислительных потоков, а как уверяют теоретики, этот метод сулит небывалые уровни производительности в системах с избытком аппаратных ресурсов.
Короче говоря, настало время научить аппаратуру работать со связными вычислительными потоками, это путь к существенному повышению эффективности вычислений. А программистов научить распараллеливать код на тесно связанные потоки.
Подведём итог. Имеется устаревшая технология межпроцессорного взаимодействия, Программисты вовсю явно и неявно используют связные вычислительные потоки. Чего пока не хватает для полного "энергоэффективного" счастья? "Бульдозера", чтобы всё это расчистить под площадку для новой процессорной архитектуры.
Конечно, современное ПО не может реализовать потенциал архитектуры "Бульдозера". Использование зависимых процессорных модулей в независимых вычислительных потоках будет только ухудшать результирующую производительность системы. Но уже анонсирована поддержка данной архитектуры в Windows 8, и это дает, по предварительным оценкам специалистов, около пятнадцати процентов производительности. Даже для такой элементарной оптимизации на уровне диспетчера потоков ОС. Если же заточить под эту архитектуру виртуальные машины и компиляторы, тогда к этим процентам можно смело приписывать ещё один ноль...
Кому-то это утверждение покажется слишком оптимистичным, но с учётом того, что, к примеру, связывание на этапе выполнения требует сначала просмотра таблиц связи и только после этого вычисления адреса требуемой процедуры, то разделение процессов связывания и выполнения как раз и повышает результирующее быстродействие в два раза (минимум).
Кстати, на заре архитектуры К10 бродили слухи о том, что AMD собирается внедрить многопоточность в это ядро, причём эта гипотетичная технология красноречиво называлась "антигипертрединг" (Anti HyperThreading). Теперь понятно, почему. Видимо, на тот момент концепция ещё не созрела, а теперь, похоже, настало её время.
Для реализации всех преимуществ архитектуры "Бульдозера" недостаточно только оптимизаций, обязательно потребуются специализированные системные команды для тонкого управления аппаратурой. Потребуется и дополнительная аппаратура, но это потом, в новых "строительных машинах", которые AMD собирается выпускать каждый год, а пока достаточно и того, что сделано. Удалось бы внедрить оптимизацию на уровне общих кэшей процессорного модуля, и этого уже будет достаточно для начала.
Остается загадкой: изначально авторы данной архитектуры предполагали подобное использование своего детища, или это получилось у них случайно? Типа того, как Колумб плыл в Индию, а открыл Америку?
Будущее покажет, а пока пора застолбить тему несколькими заявками, и пускай у меня с годик эти патенты попылятся...
С Intel у меня получилось угадать. Интересно, получится ли с AMD?
Если и здесь угадаю, то буду менять профессию - пойду в экстрасенсы. Говорят, там больше платят и по телевизору показывают.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
В. АЛЬТОВ Из огня революции
В. АЛЬТОВ Из огня революции Как и все документы тех героических лет, это удостоверение было предельно лаконичным: «Предъявитель сего тов. Богородский Федор действительно есть заведующий Особым отделом Оренбургской губернской Чрезвычайной комиссии, что подписью и
Официант не может ждать
Официант не может ждать Французский официант – это во многом плохо изученное существо. Вроде гиены. Вот только та не смеется над вами – она просто издает звуки самодовольства. С французскими официантами иногда тоже такое бывает. Они могут быть невероятно обаятельными,
Именем революции
Именем революции — Товарищ комиссар, в Салтыковском переулке купца Егорова убили!— Кто убил?— Неизвестно…— Выставить охрану, вызвать медицинского эксперта, — распорядился Николай. — Сейчас еду…Трошин надел фуражку, набросил на плечи шинель.— Пошли! — позвал он
6. Будем ждать
6. Будем ждать Все началось с того, что Толик получил письмо. Он стал чаще браться за книги и газеты. Вроде бы ничего особенного, но нет! Именно это и показалось мне не вполне обычным: то, бывало, не усадишь его, а тут…Подхожу я к нему однажды, заглядываю через плечо: газеты,
До революции
До революции Мы приступаем к разговору об условиях существования евреев в России в XX в. И здесь перед нами стоит довольно непростая задача. С одной стороны, мы уже более или менее знаем, какими были судьбы евреев-бизнесменов до 1914 г. Весь дореволюционный период
Революции и общества
Революции и общества «Буржуазно-демократическая» и «пролетарская социалистическая» революция. Даже при беглом прочтении практически всей коммунистической литературы можно заметить частое использование терминов «буржуазно-демократическая» и «пролетарская
ПРЯМАЯ ДОРОГА К РЕВОЛЮЦИИ?
ПРЯМАЯ ДОРОГА К РЕВОЛЮЦИИ? В одной из своих программных статей Элтон решительно выступил против тех, кто оценивал значение исторических событий ретроспективно. В качестве примера он избрал деятельность парламентской оппозиции начала XVII столетия, которая
1. ЛЕНИН О РУССКОЙ РЕВОЛЮЦИИ (Доклад о задачах РСДРП в русской революции) 40
1. ЛЕНИН О РУССКОЙ РЕВОЛЮЦИИ (Доклад о задачах РСДРП в русской революции) 40 Важнейшей предпосылкой для «чуда» переворота в России был «великий мятеж» 1905–1907 годов, так подло оклеветанный нынешними господами Гучковыми и Милюковыми, которые теперь ликуют по поводу «славной
Глава 12 От революции до революции
Глава 12 От революции до революции Вам, господа, нужны великие потрясения, а мне нужна великая Россия! П. А. Столыпин 12 августа 1906 г. эсеры-максималисты организовали покушение на председателя Совета министров и министра внутренних дел П. А. Столыпина. Двое боевиков,
Майдан умеет ждать
Майдан умеет ждать Что сказали корреспонденту «РР» активисты протеста, когда услышали новости из КрымаПод Львовскими вратами горит бочка. Огонь выглядывает из дырок на ее боках, поднимается из жерла, освещая арматуру моста и большой желтый циферблат, украшающий
Кожанка – мандат революции
Кожанка – мандат революции В условиях разрухи и нищеты никакая система распределения не могла обеспечить нормального существования даже «классово полноценным элементам». Ощущение неравенства в обществе усиливалось. Ведь наряду с обшарпанной массой, на улицах во
Суды революции
Суды революции Сначала на волю из тюрем хлынули «птенцы Керенского» – мазурики, фармазоны, жиганы и уркаганы, выпущенные либеральным правительством по случаю падения 300-летней монархии. А к власти в итоге пришли большевики, которые не знали никаких нравственных норм и
Глава 8. ЦК В РЕВОЛЮЦИИ
Глава 8. ЦК В РЕВОЛЮЦИИ Первый отклик Ленина на Февральскую революцию была его телеграмма на французском языке в Стокгольм 6 (19) марта 1917 года. Телеграмма была адресована «Большевикам, отъезжающим в Россию», В ней в нескольких словах дана тактическая директива Русскому
ОТ РЕВОЛЮЦИИ К СТРОИТЕЛЬСТВУ
ОТ РЕВОЛЮЦИИ К СТРОИТЕЛЬСТВУ Речь на Эссенской областной партийной конференции 25 июня 1934года, переданная по немецкому радио.Национал-социалисты! Немецкие соплеменники!Я говорю с вами сегодня не как рейхсминистр, а как национал-социалист, который, как мало кто другой,
3. «Революции» на марше
3. «Революции» на марше Факты свидетельствуют, что многие трудящиеся во всех Прибалтийских республиках действительно приветствовали образование народных правительств, связывая с ними возможность демократизации общественной жизни, улучшения материального положения