Heterogeneous system architecture или о встрече cpu и gpu

Heterogeneous system architecture или о встрече cpu и gpu

Продолжительное время развитие микроэлектроники проходило под девизом «меньше и стремительнее». Уменьшался техпроцесс, вводились новые элементы архитектуры x86 (комплекты расширений руководств), возрастала тактовая частота вычислительного ядра. В то время, когда рост «грубои?» производительности упёрся в экономические и физические факторы, популярными стали разные методы параллелизации вычислений.

Одновременно с этим развивались не только CPU, показывавшие хорошую производительность в однопоточных и сложных вычислениях, но и GPU, талантливые скоро делать много однотипных и несложных задач, каковые еле поддавались простым процессорам.
Смотрите кроме этого: Желаете сделать суперкомпьютер еще более суперским? Применяйте архитектуру Intel аккумуляторная-Path

Стали известны кое-какие показатели производительности совокупности коммутации суперкомпьютеров нового поколения Intel Omni-Path Architecture (OPA), которая на данный момент проходит тестирование у вендоров. По экспериментальным результатам была взята очень нарядная статистика (сравнение производится с разработкой Infiniband):скорость потока данных в пересчете на порт — до 30% выше;скорость потока данных в пересчете на чип — до 73% выше;задержки передачи из порта в порт — на 23% ниже;задержки в фабрике средних либо громадных размеров — на 60% ниже.

Сейчас мы вступаем в новую эру развития чипов, несущих ответственность за проведение вычислений в сердцах десктопов, серверов, мобильных девайсов и носимой электроники. Объединив подходы к обработке информации на CPU и GPU мы создали новую, открытую архитектуру, без которой предстоящее выполнение того же закона Мура представляется трудновыполнимым. Встречайте HSA — Неоднородную Системную Архитектуру.

Минутка историиДля того, дабы всецело понять, как HSA, с одной стороны, близка, а иначе — превосходит архитектуру современных ответов, давайте обратимся к истории. Кроме того в случае если отбросить десятилетия ламповой техники, и начать с 1950-х, с момента появления в микроэлектронике транзисторов, история окажется такая, что отдельную статью возможно написать. Пройдёмся весьма кратко по главным «вехам» процессоростроения, и совсем чуть-чуть по истории видеоплат.

На заре компьютеростроения CPU были достаточно несложны. По сути, все операции сводились к сложению чисел в бинарной совокупности. В то время, когда требовалось вычитать — использовались т.н. «обратные коды»: они были несложны и легко укладывались «в железо», не требуя сложнейших архитектурных изысков, реализовывающих «честное» вычитание чисел.

Под каждую модель компьютера программы писались раздельно, пока не настал 1964 год.IBM System/360В первой половине 60-ых годов двадцатого века компания IBM выпустила System/360, компьютер, что поменял подход к созданию процессоров. Вероятнее, как раз ему в собственности честь внедрения для того чтобы понятия, как системная архитектура. Легко вследствие того что до него никакой «совокупности» не было. Дело в том, что до System/360 все компьютеры 50-х и 60-х годов трудились лишь с тем программным кодом, что был написан как раз для них.

IBM же создали первый комплект руководств, что поддерживался в разных по конфигурации (и производительности), но однообразных по архитектуре System/360. К слову, в этом же компьютере байт в первый раз стал 8-битным. До этого практически во всех популярных компьютерах он складывался из шести бит.

Вторым большим новшеством в 60-х была разработка компании DEC. В собственном компьютере PDP-8 они применили очень несложную для того времени архитектуру, содержащую всего четыре регистра по 12 бит любой и чуть больше 500 блоков CPU. Тех самых «транзисторов», каковые в 1970-х уже измерялись тысячами, а в 2000-х — миллиардами. создание и Эта простота компанией IBM для того чтобы понятия, как «комплект инструкции?» и выяснили предстоящее направление развития вычислительной техники.В 70-х начался бум микроэлектроники.

Всё началось с производства первых однокристалльных процессоров: многие компании тогда создавали чипы по лицензии, а после этого совершенствовали их, додавая новые инструкции и расширяя возможности.С середины 70-х рынок 8-битных процессоров был переполнен и ближе к концу десятилетия в компьютерах показались дешёвые 16-битные ответы, принёсшие с собой архитектуру х86, которая (пускай и со большими улучшениями) жива и здорова до сих пор. Главным бичом, останавливающим развитие 16-битных процессоров в то время была «заточенность» производителей на производстве т.н. микросхем помощи под 8-битные архитектуры.

Совместно они составляли то, что в последствии именовалось «северным» и «южным» мостами. В начале 80-х, устав бороться с инертностью рынка, многие производители перенесли часть управляющих «микросхем помощи» вовнутрь самого процессора. В последствии что-то из процессора уйдёт в чипсеты материнской платы и после этого возвратится обратно, но уже тогда подобная архитектура была чем-то похожа на современные SoC’и.

конец и Середина 80-х годов прошли под флагами перехода на 32-битную адресацию памяти и 32-разрядные процессорные ядра. Закон Мура трудился как и раньше: число транзисторов росло, росла грубая производительность и «тактовая» частота процессоров.В первой половине 90-ых годов двадцатого века свет заметили процессоры AMD Am386DX и Am386SX, производительность которых была сравнима со следующим поколением совокупностей (486).

Как раз Am386SX многие вычисляют первой независимой отправной точкой и разработкой компании для практически 15-и летнего доминирования на рынке высокопроизводительных домашних ПК и рабочих станций. Да, архитектурно он был клоном чипа i368SX, но владел меньшим техпроцессом, на 35% лучшей энергоэффективностью и наряду с этим трудился на более высокой тактовой частоте, чем его прародитель, а стоил дешевле.

Сами девяностые были достаточно богаты как на события в области микроэлектроники, так и на бурный рост рынка. Как раз в 90-е годы компанию AMD начали разглядывать как одного из важных игроков на рынке, поскольку отечественные процессоры по производительности и соотношению цены довольно часто оставляли не у дел собственных соперников в лице Intel Pentium, в особенности в домашнем сегменте.

Расширенные комплект руководств (MMX / 3DNow!), появление кэш-памяти второго уровня, агрессивное уменьшение техпроцесса, рост тактовых частот… и вот уже на дворе новое тысячелетие. В 2000-м году процессоры AMD в первый раз в мире перешагнули предел в 1 ГГц, а чуть позднее всё та же архитектура К7 забрала и новую высоту — 1.4 ГГц.

В конце 2003 года мы выпустили новые процессоры на архитектуре К8, которая содержала три ответственных новшества: 64-битная адрессация памяти, встроенный контроллер памяти, и шину HyperTransport, которая снабжала потрясающую в то время пропускную свойство (до 3.2 Гбайт/с.).В 2005 году показались первые двухъядерные процессоры (у Intel — два отдельных кристалла-ядра на одной подложке, у AMD — два ядра в одного кристалла, но с раздельной кеш-памятью). Через несколько лет естественного развития архитектура K8 сменилась новой (K10).

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

То, что нас интересует в эволюции GPU (в рамках статьи о HSA) возможно обрисовать совсем кратко. С распространением компьютеров в качестве универсальных домашних ответов для развлечений и работы популярность компьютерных игр росла. Вместе с ней росли и возможности 3D-графики, требуя новые вливания и всё «новые» мускулов в лице видеоускорителей.

Применения особых микропрограмм, шейдеров, разрешило реализовать в 3D-графике реалистичное освещение довольно малой кровью. Первоначально аккумуляторная процессоры делились на вершинные и пиксельные (первые отвечали за работу с геометрией, вторые — с текстурами), позднее показалась унифицированная шейдерная архитектура и, соотвественно, универсальные шейдерные процессоры, каковые имели возможность делать код как вершинных, так и пиксельных шейдеров.

Реализовывать GPGPU, вычисления неспециализированного назначения на графическом ускорителе, возможно было с применением открытого стадарта и OpenCL, либо пара упрощенного диалекта языка С. С тех про из главных новшеств в GPU возможно упомянуть лишь появление низкоуровневого API Mantle, разрешающего обращаться к видеоплатам AMD приблизительно на том же уровне, на каком осуществляется доступ к графическим ускорителям в консолей PS4 и Xbox One) и взрывной рост количеств памяти у GPU в последние два года.На этом с историей покончено, настало время переходить к самому занимательному: HSA.Что такое HSA?Начать хочется с того, что HSA, первым делом, есть открытой платформой, на базе которой производители микроэлектроники смогут выстроить собственные продукты (независимо от применяемого комплекта руководств), соответствующие общим правилам и определённым принципам. Одновременно с этим, HSA — это процессорная архитектура, объединяющая скалярные вычисления на хороших CPU-ядрах, массовые параллельные вычисления на GPU и работу с обработкой сигналов на DSP-модулях, и связывающая их посредством когерентного доступа к оперативной памяти.

Другими словами вся история процессоро- и видеокартостроения в HSA сходится в одну точку: практически 50 лет прогресса в области микроэлектроники стали причиной созданию того, что логичным образом сочетает лучшие стороны совокупностей разного назначения.Развитие архитектуры х86 и процессоров разрешили создать высокоэффективные процессорные модули, каковые снабжают исполнение неспециализированных задач и низкое энергопотребление.Унификация шейдерных процессоров в GPU-ядра и неспециализированное упрощение программирования под совокупность с огромным числом параллельных выполняющих модулей дали путь GPGPU и применению вычислительной мощности видеоплат в тех областях, где раньше употреблялись отдельные аппаратные ускорители, так и не завоевавшие какое количество-нибудь ощутимую долю рынка, дабы остаться на плаву.Интегрированный контроллер памяти, шины PCIe и совокупности ввода-вывода обеспечил прозрачный доступ к памяти для разных модулей HSA.Наконец, встроенный DSP разрешает снять нагрузку с CPU и GPU при работе с видео- и аудиоконтентом, поскольку аппаратно заточен на работу по декодированию и кодированию соответствующих сигналов. Все эти модули совместно покрывают целый спектр современных задач, а HSA разрешает прозрачно и легко научить программы трудиться со всем многообразием имеющихся аппратных возможностей применяя такие хорошие инструменты, как языки как Java и C++.

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

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

Люди привыкли к тому, что с 70-х годов ежегодно процессоры бьют рекорды по производительности, игры становятся прекраснее, совокупности и софт сложнее (и наряду с этим не теряют в визуальной скорости работы), а современые инструменты программиста содержат всё больше слоёв абстракции от железа, любой из которых забирает частичку настоящей производительности. Ну а современные разработки в области интеллектуальных ассистентов, перспективы развития и виртуальных ассистентов ИИ легко таки требуют обычного распознавания людской речи, мимики, жестов, что, со своей стороны, требует повышения как прямой производительности, так и оптимизации делаемых операций по декодированию видео- и аудио-потока.Все эти неприятности разрешила бы решить универсальная аппаратная архитектура, реализованная в виде SoC, и соединяющая в себе прелести хороших CPU и GPU, грамотно распределяющая последовательные и параллельные операции между теми модулями, каковые способны делать соответствующие задачи самый действенно. Но как научить софт трудиться со всем этим великолепием вычислительных возможностей?Главные изюминки неоднородной системыУ программистов не должно быть неприятностей с доступом к вычислительным возможностям таковой совокупности. Для этого HSA имеет последовательность главных изюминок, упрощающих работу разработчиков ПО с ней и приближающих HSA к хорошим совокупностям с позиций разработки:

  • Унифицированная адресация для всех процессоров;
  • Полная когерентность памяти;
  • Операции в страничной совокупности памяти;
  • Пользовательский режим отправки;
  • Управление рабочими очередями на уровне архитектуры;
  • Высокоуровневая языковая помощь для вычислительных процессоров – GPU;
  • Смена контекста и вытесняющая многозадачность.

Разработчику приложения не нужно разбираться в низкоуровневых языках программирования: стандартные компоненты, несложный промежуточный язык, железо и интерфейсы взаимодействия дешёвы разработчику, а когерентная память да и то, как задачи будут распределены между вычислительными модулями легко скрывается «под капотом». Роль унифицированной адресации памяти так и вовсе сложно переоценить. Формально, без неё никакой HSA не было бы.

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

Абстракция памяти на уровне платформы разрешит применять одинаковый код для различных платформ, упрощая жизнь разработчикам ПО.Сложности OpenCL и C++ AMPПрограммирование под параллельные совокупности — задача не из лёгких. Для облегчения разработчикам судьбы мы создали библиотеку Bolt, которая предоставляет действенные паттерны для чаще всего применяемых шаблонов сортировки, сокращения, преобразования и сканирования данных с применением параллельных вычислений.

Для ускорения Java-кода без переписывания его на OpenCL используется особая библиотека AparApi (с открытым исходным кодом), которая разрешает преобразовать байт-код Java в OpenCL с помощью параллельных вычислений на CPU и GPU-ядрах. В последствии планируется доработать Aparapi, сперва связав его с HSAIL, после этого добавив особый оптимизатор. В итоге HSA обязана трудиться с неоднородным ускорением напрямую через Java-машину, прозрачно для программиста и пользователя.

аппаратная и Открытый стандарт независимостьМы уже говорили о том, что HSA — это открытая платформа. API и спецификации предоставляются разработчиком безвозмездно, а сама HSA не зависит от комплекта руководств CPU либо GPU. Для обеспечения совместимости аппаратных ответов разных вендоров был создан собственный комплект ISA: HSAIL (HSA Intermediate Layer), снабжающий работу ПО независимо от того, что находится в HSA-решения.

Сам же Intermediate Layer поддерживает работу с исключениями, виртуальными функциями, моделями памяти современных языков, так что никаких неприятностей с помощью C++, Java и .Net не предвидится, наряду с этим разработчики смогут как обращаться к «железу» напрямую, так и задействовать готовые библиотеки оптимизации HSA, каковые будут самостоятельно распределять задачи и упорядочивать общение с железом, упрощая работу программиста.Аппаратная составляющаяНе AMD единым жив HSA. Разработчикам принципиально важно, дабы написанный единожды код одинаково прекрасно трудился на различных устройствах.

Кто-то использует для этого языки программирования большого уровня, наподобие C++ либо Java, мы же предлагаем трудиться на более низком уровне. С одной стороны, хорошие приложения смогут трудиться на HSA-устройствах так, как будто бы ничего не изменялось. Операционные совокупности будут предоставлять ветхим приложениям понятный и несложный доступ к процессору, памяти, видеоядру.

Иначе, HSAIL разрешает извлечь всю мощь из новых SoC, и разработчики смогут создавать высокопроизводительные и экономно относящиеся к ресурсам приложения так же легко, как и для хороших связок ОС и «железа».на данный момент HSA Foundation насчитывает семь компаний, каковые являются основателями данной организации: AMD, ARM, Imagination Technologies, MediaTek, Texas Instruments, Samsung Electronics and Qualcomm®.Стандартизация в области распределения задач по вычислительным ядрам, передачи данных и указателей памяти, работы главных элементов платформы посредством HSAIL разрешает вендорам применять их наработки в области железа, а разработчикам не заботиться о том, что находится под капотом. Приложения, заточенные под HSAIL будут трудиться на любой платформе.минусы и Плюсы аппаратных ответов на базе HSAГетерогенная архитектура разрешает соединить возможности CPU и GPU, и в этом содержится её основной плюс.

Одновременно с этим HSA аккуратно относится к потребляемой электричества, не нагружая процессор вычислениями, каковые куда действеннее запускать на GPU.Симуляция физики жёстких тел сейчас употребляется везде: начиная с компьютерных игр и 3D-пакетов, заканчивая САПР, тренажёрами для медиков, спортсменов и военных. Работа на CPU подобной системы обычно неоптимальна, т.к. требует бессчётных, но несложных вычислений.

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

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

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

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

Heterogeneous System Architecture (HSA) Defined


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

  • System/360 — аппаратное обеспечение

    В то время, когда я начинал первую статью про IBM System/360, я не воображал, что это выльется в целую серию статей, так была широкой и увлекательной эта…

  • Что такое kingston system specific memory?

    Полная совместимость — залог стабильной работы в большинстве электронных устройств. Необходимо дабы все было замечательно: и процессор, и материнская…

  • Ibm system/360 — продолжаем разговор

    В прошедшей статье я обрисовал линейку IBM System/360 «в целом», не вдаваясь очень в подробности реализации. Сейчас мы продолжим разговор об данной ЭВМ и…

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

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