Последние записи

Intel Larrabee | Обзор -

Введение Прошлый год дал немало продвижений в мире 3D-графики. Мы получили первое настоящее обновление архитектуры nVidia в виде . Мы также стали свидетелями возвращения AMD на рынок производительных видеокарт с , который использовал совершенно другой подход, поскольку компания представила маленький и эффективный чип, а не крупный кристалл со сложным дизайном. Что касается программного интерфейса приложений (API), то . Но даже с учётом всех перечисленных продвижений, знаковым событием стало официальное объявление Intel технологии Larrabee на SIGGRAPH. Что же здесь такого интересного? Всё очень просто: факт, как вы увидите дальше в статье, что Larrabee радикально отличается от любого GPU, доступного сегодня. И это интригует. Энтузиастам остаётся только гадать, изменит ли этот дизайн нынешнее восприятие, да и насколько хорошо Intel и графика будут сочетаться вместе? Intel возвращается на рынок high-end GPU после того, как компания отказалась от i740 около десяти лет тому назад. Этот уход совпал с окончанием "золотой эры" графики для ПК, когда многочисленные компании боролись друг с другом за рынок топовых GPU, после чего они стали исчезать одна за другой или переквалифицировались на менее конкурентные секторы. Сегодня на рынке high-end GPU между собой бьются AMD и nVidia, а попытки других компаний проникнуть на этот рынок закончились неудачей. Matrox, со своей Parhelia почти семь лет назад, XGI со своей Volari и 3DLabs с видеокартой Realizm – все они ушли со сцены. Возможно, это и к добру: современные GPU очень сложные, поэтому они требуют существенных вложений средств и крупный интеллектуальный потенциал, что могут позволить себе немногие компании. Ожидаемое возвращение? Повторный выход Intel на рынок high-end графики привлёк немало внимания, у пользователей появились новые ожидания и надежды. Intel – одна из немногих компаний, которые обладают достаточными финансовыми ресурсами, чтобы войти в игру, а также всеми необходимыми технологиями для разработки современных производительных раздельных GPU. По этой причине Intel – единственный конкурент, который может реально растрясти устоявшееся положение на этом рынке. Но всё же давайте будем реалистами. Десять лет назад многие пользователи думали то же самое, когда Intel вышла на сцену графики, и надежды были высоки. В то время рынок был поделён на две категории: стартапы, которые обеспечивали превосходную 3D-производительность (3Dfx, Nvidia и PowerVR), а также "тяжеловесы", рассматривавшие потребительское 3D-ускорение больше как гаджет и добавку к традиционным сферам (Matrox, S3 и ATI до того, как её купила AMD). Многие надеялись, что появление Intel оздоровит этот рынок и даст неслыханную производительность. Конечно, в то время у Intel был козырь в рукаве: компания только что купила Real3D, известную своими аркадными видеокартами Sega Model 2 и Model 3, которые в то время давали весьма высокую производительность. Да, несмотря на все свои качества, графический процессор i740 так и не смог соответствовать ожиданиям, и видеокарты, подобные Voodoo 2 и TNT, быстро затмили его по производительности. И вместо того, чтобы продолжать биться на этом рынке, Intel решила использовать данную технологию в своих чипсетах, намереваясь производить интегрированные платформы. И данная стратегия себя оправдала. Нажмите на картинку для увеличения. Всё могло бы остаться таким, каким оно есть, если бы некоторым исследователям, с учётом тенденции роста программируемости GPU, не пришла в голову необычная идея использования графического процессора в качестве высоко параллельного универсального вычислительного блока. Поначалу эту идею никто не воспринимал всерьёз, но затем она получила широкую поддержку – до той степени, что nVidia и AMD, чувствуя возможность завоевать новый рынок, стали всё больше говорить о при выпуске своих новых графических процессоров. А это Intel стерпеть не могла. Компания вряд ли позволила, чтобы GPU отобрали у неё свой хлеб. Графические процессоры, взявшие на себя наиболее "тяжёлые" вычислительные задачи, могли бы привести к тому, что high-end центральные процессоры стали бы избыточными. Вообще, само появление GPU ограничило эффект от высокопроизводительных CPU в игровом мире, поэтому для Intel было очень важно избежать подобного эффекта на этот раз (на самом деле, последствия ещё шире). Поэтому компании пришлось реагировать и предлагать альтернативу. И, как часто бывает в случае Intel, альтернатива была построена на старой доброй проверенной архитектуре x86. Общий обзор Первое, что нужно отметить насчёт Larrabee – технология очень не похожа на другие GPU. На самом деле, перед нами даже не графический процессор в его классическом понимании. Как видно на приведённой диаграмме, Larrabee представляет собой набор очень простых процессоров x86, выполняющих инструкции упорядоченно, которые дополнены векторным блоком FPU, работающим с 512-битными векторами (вектор состоит из 16 чисел с плавающей запятой одинарной точности или целых чисел, либо из восьми чисел с плавающей запятой двойной точности). Каждое ядро снабжено 256 кбайт кэш-памяти, а связь между процессором и когерентность кэшей обеспечивается кольцевой шиной. Единственные компоненты, которые намекают, что перед нами не только высоко параллельный CPU, подобный Cell, это текстурные блоки и интерфейс дисплея. Нажмите на картинку для увеличения. Ядра в деталях: что-то новое, что-то (очень) старое Подобно IBM с её архитектурой Cell, Intel сделала следующее наблюдение: у самых требовательных к вычислительной мощности приложений поток инструкций, как правило, очень линеен. Там немного операций ветвления и зависимостей между инструкциями, следовательно, современные процессоры, где большая часть кристалла отведена под управляющую логику (предсказание ветвлений и динамическое планирование инструкций) не очень хорошо подходят для подобных задач. Давайте на момент откажемся от привычной тенденции современного дизайна CPU – интеграции двух или четырёх "больших" процессоров на кристалл. Для описанных выше задач с тем же количеством транзисторов будет намного полезнее использовать большое число маленьких, намного более простых процессоров. Intel даже представила сравнительную таблицу, оправдывая свой выбор. Нажмите на картинку для увеличения. Как видно по таблице, при сравнимой площади ядра и энергопотреблении, ядра с упорядоченным выполнением инструкций (не идентичные тем, что используются в Larrabee – взятые просто для примера) обеспечивают пропускную способность по выполнению векторных инструкций в 20 раз больше, чем у Core 2 Duo на той же тактовой частоте. Сделав выбор, настал время выполнить дизайн самих процессоров. Для набора инструкций других вариантов просто не было. Поскольку Larrabee должна стать "троянским конём" Intel, а именно такую роль можно отвести новому GPU на архитектуре x86, набор инструкций должен быть хорошо известен и проверен временем. Впрочем, данный выбор всё равно несколько удивляет, так как набор инструкций x86 довольно сложный (всё же архитектура CISC) и поддержка всех инструкций, добавленных на протяжении существования архитектуры, не очень хорошо влияет на число необходимых транзисторов, если сравнивать с архитектурами RISC. x86: правильный выбор? Сегодня можно забыть о дополнительной стоимости нескольких сотен тысяч транзисторов, поскольку у современных процессоров их сотни миллионов. Но если вернуться на 15 лет назад, когда Pentium и PowerPC 601 были конкурентами, последний процессор Intel использовал примерно на 15% больше транзисторов, чем IBM. И разница в 500 000 транзисторов, если у всего процессора их было около трёх миллионов, довольно заметная. Значит, экономические факторы противоречат хорошему технологическому решению? Не совсем. Во-первых, у Intel есть важное преимущество 30-летнего опыта со своей архитектурой x86, и даже если у компании есть навыки с архитектурами VLIW (IA64) и RISC (i860, i960), опыт с архитектурой x86 всё же намного весомее. Причём этот опыт касается как аппаратной части, так и программной, так как Intel может опираться на свои многолетние исследования в области компиляторов x86. Нажмите на картинку для увеличения. Во-вторых, выбор CISC имел как преимущества, так и недостатки. Если инструкции RISC имеют одинаковый размер и сконструированы по одному принципу, чтобы облегчить декодирование, инструкции CISC могут быть разного размера. И, пусть декодирование выполняется сложнее, но код x86 традиционно более компактный, чем эквивалентный код RISC. Здесь, опять же, можно подумать о ничтожности этого фактора, но данные процессоры оснащены очень маленьким кэшем, когда на счету каждый килобайт. Выбор x86 имеет ещё одно преимущество: у Intel появляется возможность повторно использовать какой-либо старый дизайн, что, как раз, и сделали инженеры. Последним процессором Intel с упорядоченным выполнением инструкций был Pentium MMX (P55), но его улучшения по сравнению с классическим Pentium (P54C) не очень стоящие в рамках проекта Larrabee. Поэтому имело намного больший смысл использовать оригинал. Но возникает два вопроса: не лучше ли было начать "с нуля" и разработать процессор, который идеально подходил бы для Larrabee? Вообще, в умах пользователей царит древний миф о начале "с нуля" при разработке новых дизайнов процессоров, что рассматривается даже как синоним качества. Большинство оценивают подобный шаг как возможность избавиться от всех недостатков прошлого. Но на практике инженеры редко создают что-то "с нуля". Во-первых, потому что в этом нет особого смысла. Многие строительные блоки можно использовать повторно, их не нужно придумывать каждый раз. Во-вторых, подход "с нуля" более затратный как по времени, так и по деньгам. Intel, вне всякого сомнения, знает, как разрабатывать и производить процессоры x86. И не стоит забывать о времени, которое требуется на полную отладку дизайна. Здесь на ум сразу всплывают знаменитые ошибки, такие как проблемы у Pentium с делением чисел с плавающей запятой или проблемы работы с буфером TLB у Phenom, которые были во всех новостях. Но на самом деле, у всех процессоров есть ошибки той или иной значимости. Достаточно просто почитать спецификации производителя, где приведён список ошибок для конкретной модели процессора. Преимущество модификации существующего дизайна, такого как Pentium, как раз и заключается в том, что он скрупулёзно протестирован и проверен, а это важный плюс. По информации инсайдеров, Intel повторно использовала дизайн Pentium, который был аккуратно модифицирован "Пентагоном" для военных применений. Это вряд ли заслуживает доверия, но увеличивает загадочность Larrabee, поэтому Intel особо и не торопится опровергать слух. В деталях: скалярный блок и SMT Теперь давайте рассмотрим ядра в деталях. Как мы уже отметили выше, они базируются на дизайне Pentium, к которому Intel добавила несколько важных изменений. Наследие P54C бесспорно по скалярному блоку, который использует конвейер суперскалярного выполнения Pentium с двумя блоками "U" и "V". Первый способен выполнять все скалярные инструкции x86, а второй ограничен относительно полным набором (за исключением, например, сложных арифметических и логических инструкций, таких как умножение и деление). Но Intel, как мы уже говорили, внесла в ядро Pentium ряд изменений. Сначала инженеры добавили 64-битную поддержку, а также несколько инструкций для управления кэш-памятью второго уровня. Эти инструкции особенно важны для приложений потокового типа, которые не следуют принципу временной локализации, характерному для традиционных программ. То есть, как только будет выполнена операция для каких-либо данных, они наверняка в ближайшее время не будут использоваться повторно. Подобная характеристика, как доказывает практика, имеет просто ужасные последствия для кэш-памяти, использующей алгоритм LRU (алгоритм удаления дольше всех неиспользовавшихся элементов). Кэш-память будет тратить своё время и ресурсы