Intel larrabee: новый gpu от intel

Intel larrabee: новый gpu от intel

Стремительная сообщение: кольцевая шина

Дабы снабжать когерентность кэшей, связь между различными процессорами и доступ к фиксированным блокам, таким как текстурные блоки, Intel реализовала достаточно хорошую кольцевую шину. Этот тип топологии сравнительно не так давно снова стал широко применяться, в качестве примеров возможно привести процессор Cell и кое-какие GPU AMD (X1800, X1900 и т.д.), потому, что он значительно упрощает проблему связи между компонентами, в то время, когда количество передаваемых данных возрастает.

Intel снабдила Larrabee двумя 512-битными шинами, по одной на каждое направление, дабы снизить задержки на сообщение. Но подобное ответ не хватает, дабы избежать задержек, каковые смогут достигнуть проблематичного уровня, в то время, когда число процессоров превысит определённое число. Исходя из этого в реализациях Larrabee, каковые применяют более 16 ядер, используются пара более маленьких кольцевых шин (возможно, обслуживающих лишь по восемь ядер).

Кстати, диаграмма Intel Larrabee не совсем правильная. Дабы избежать лишнего усложнения, Intel расположила контроллеры памяти по обе стороны чипа, а все текстурные блоки слева. На практике контроллеры памяти и текстурные блоки будут распределены на протяжении периферии кольца, а не будут размешаться в одном месте.

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

Текстурные блоки

Как мы уже говорили чуть выше, Larrabee не весьма похож на классический GPU, но в случае если Intel удалось устранить движок настройки (setup engine) и блоки растровых операций (ROP), интегрировав эти функции напрямую на уровне ядер Larrabee, то для текстурных блоков такое сделать уже не получилось. Эти блоки делают достаточно своеобразную работу, с которой справляются как раз специальные блоки. Сжатие текстур (DXTC), к примеру, весьма аппаратно, что и обусловило успех данной технологии, но оно требует значительных ресурсов для программной реализации. Intel посчитала, что исполнение текстурных операций на процессорах будет в от 12 до 40 раз медленнее, чем на отдельных блоках, в зависимости от конфигурации (таковой как уровень качества фильтрации, сжатый либо несжатый формат текстур).

Текстурные блоки достаточно хорошие, и Intel не даёт о них большое количество информации, за исключением того, что они будут поддерживать все стандартные операции Direct3D 10 и режимы сжатия. Практически, это единственная изюминка, которая может сократить способности эволюции Larrabee. Как мы заметим позднее, ПО всецело руководит конвейером рендеринга Larrabee, оно может додавать будущие функции программного интерфейса приложений (API) Микрософт через простое обновление 3D-движка, исполняемого ядрами Larrabee. Иначе, текстурные блоки будут ограничены определённым уровнем функциональности, что будет определять работу чипа в целом.

Одна любопытная изюминка данных текстурных блоков в том, что они смогут делать преобразование виртуальных адресов в физические. В случае если быть более конкретным, это указывает, что вам больше не требуется загружать полную текстуру с её mipmap-стеком в локальную память. В памяти в виде страниц размером в пара килобайт будут храниться лишь те части текстуры, каковые нужны для её отображения. В случае если страницы в памяти нет (page fault), текстурный блок оповещает процессор, что может позвать требующиеся эти. Данный механизм упростит жизнь программистам, каковые не ленятся делать сложные реализации, к примеру, метода, аналогичного id Software MegaTexturing.

Larrabee против Cell

Весьма заманчиво сравнить Larrabee и Cell. Оба процессора применяют множество одиночных ядер (с упорядоченным исполнением команд), делают упор на векторные вычисления, имеют 256 кбайт выделенной кэш-памяти на ядро, кольцевую шину для связи и т.д. На первый взгляд сходств большое количество. Но и различия также очень значительны: Cell, первым делом, это центральный процессор. И не смотря на то, что он ориентирован на потоковые приложения, он не подходит для вывода и расчёта рендеринга, другими словами текстурных блоков у него нет.

Вторым значительным отличием есть метод работы с памятью. У Cell, за исключением PPE, что есть единственной частью процессора с глобальным доступом к пространству памяти, доступ к памяти всех SPU ограничен 256 кбайт локальной памяти. Исходя из этого доступ к главной памяти обязан выполняться только через операции прямого доступа (DMA).

Как мы уже видели выше, все ядра Larrabee имеют доступ ко всему пространству памяти через кэш-память, работа которой прозрачна программисту, кроме того имеется кое-какие возможности управления. Выбор Intel значительно упрощает программирование и разрешает избежать добавления более неспециализированных ядер, таких как PPE. Подобная неоднородная совокупность есть одним из недочётов Cell, потому, что она усложняет жизнь программистов.

Не считая тщательной проработки доступа к памяти, программист обязан собирать два исполняемых файла посредством двух комплектов руководств, что предусматривает работу с двумя различными компиляторами.

Исходя из этого ядра Larrabee намного более функциональные, чем SPU у Cell, поскольку они поддерживают все инструкции x86. Да и производительность расчёта векторов также выше. Это связано с тем, что ядра трудятся с 512-битными векторами, а не 128-битными, как в SPU. И в случае если у Cell сохранится преимущество по частоте (Larrabee, как ожидается, будет трудиться на частотах от 2 до 2,5 ГГц, но это всё до тех пор пока весьма предположительно), подобная изюминка компенсирует столь большой недочёт.

Свидетельствует ли, что Cell нечего противопоставить? Отнюдь. Cell, с 234 миллионами транзисторов (число, которое впечатляло три года назад, но сейчас поразить им сложно) существенно дешевле создавать, чем Larrabee, что будет больше и значительно дороже в производстве.

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

Сейчас Larrabee существует лишь на бумаге, а также в то время, когда новый графический процессор Intel будет воплощён в кремнии, вряд ли многие программисты решаться копать целину. Большая часть просто начнёт использовать API (OpenGL/Direct3D для 3D и OpenCL/Compute Shader для GPGPU).

Но, с аппаратной точки зрения не вызывает сомнений, что Larrabee весьма и весьма увлекательный графический процессор. Cell послужил прообразом нескольких ответственных концепций, каковые сейчас показали себя в Larrabee. Но в случае если посмотреть назад в прошлое, процессор Cell был однако через чур амбициозен для собственного времени, и IBM было нужно пойти на важные компромиссы, дабы видение процессора было совместимо с разработками, дешёвыми тогда.

Larrabee против GPU

Как мы уже сообщили раньше, Larrabee не похож на простой GPU по большому счету за исключением текстурных блоков. Тут нет ни мельчайшего следа вторых фиксированных блоков, каковые в большинстве случаев видятся у GPU: движка настройки (setup engine), преобразовывающего треугольники в пиксели и интерполирующего разные атрибуты вершин, растрового конвейера (ROP), что записывает пиксели в кадровый буфер, делает сглаживание и все нужные операции смешения.

При Larrabee все эти операции выполняются напрямую ядрами. Преимущество для того чтобы подхода содержится в повышении гибкости. При смешения, к примеру, возможно руководить прозрачностью независимо от порядка, в котором отсылаются примитивы, что достаточно сложно достижимо у современных GPU.

Недочётом возможно назвать то, что Intel нужно будет обеспечивать GPU большей вычислительной мощностью, чем у соперников, каковые применяют выделенные блоки для задач подобного рода, а программируемые блоки концентрируются на шейдерах.

Не смотря на то, что GPU стали весьма эластичными по окончании появления Direct3D, они так же, как и прежде далеки до гибкости, которую способен обеспечить Larrabee. Одно из главных ограничений GPU, кроме того при применении API подобно CUDA, содержится в доступе к памяти. Как и при Cell, работа с памятью очень сильно усложнена, и для получения оптимальной производительности, необходимо минимизировать число применяемых регистров, и приходится применять маленькие участки памяти в пара килобайт.

Более того, не обращая внимания на гибкость, которую взяли современные GPU, их функции остаются, в значительной степени, ориентированными на чистые расчёты. К примеру, никто кроме того не думает делать операции ввода/вывода на GPU. Наоборот, Larrabee способен с этим совладать, другими словами Larrabee может напрямую делать операции printf либо трудиться с файлами.

Помимо этого, возможно применять рекурсивные и виртуальные функции, что при GPU нереально.

Само собой разумеется, все эти функции даются не безвозмездно, и все они неотвратимо воздействуют на эффективность исполнения программ, поскольку мы отходим от парадигмы параллельного программирования. Но всё это приемлемо для кода, что не будет употребляться в области, чувствительной к производительности. Возможность исполнения аналогичного кода без применения CPU открывает последовательность занимательных возможностей.

К примеру, современные GPU применяют компилятор just-in-time (JIT) в драйверах, что адаптирует шейдеры к своеобразным подробностям архитектуры на лету на протяжении исполнения задачи. Larrabee не стал исключением из правила, но вместо интеграции данного компилятора с центральным процессором, он трудится напрямую на Larrabee.

Ещё одна занимательная возможность – код возможно отлаживать напрямую на Larrabee, вместе с тем отладка кода CUDA, в большинстве случаев, неосуществима без применения эмуляции на CPU. В аналогичных случаях CPU эмулирует GPU, но не в точности повторяет его поведение, исходя из этого смогут появиться разные неточности, выловить каковые не всегда легко.

Larrabee против себя?

На первый взгляд, Larrabee думается победившим при сравнении с прямыми соперниками. Процессор более параллельный, чем Cell, более эластичный, чем GPU, другими словами, помой-му, лучшего хотеть не приходится. Но в действительности не всё так гладко. Продукт, существующий лишь на бумаге, постоянно обладает всеми нужными качествами без недочётов.

Продолжительное время Itanium казался будущим процессоров, перед тем как его тяжёлый промах не стал очевидным: если не весьма легко динамически реорганизовать инструкции программы на процессоре, то столь же не легко сделать это статически в компиляторе.

Исходя из этого не следует слепо встречать объявление каждой новой технологии. В некоторых форумах на любой вопрос, касающийся рендеринга либо каких-либо методов, кто-то всё равняется упомянет Larrabee в качестве совершенного ответа, что сейчас преждевременно. Larrabee не примет решение всех неприятностей рендеринга 3D в настоящем времени, не смотря на то, что и может привести к заметному прогрессу.

Larrabee, вне сомнения, встречают весьма положительно, исходя из этого Intel нужно быть весьма осмотрительной, что не взять обратный эффект, в случае если первое поколение продуктов не будет соответствовать ожиданиям (синдром Merced).

Через пара дней мы разместим статью, касающуюся программной стороны Larrabee, так что оставайтесь на связи.

Случайная статья:

CONFIRMED! Raja Koduri leaves AMD for Intel! Intel to resurrect Larrabee?


Похожие статьи:

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.