English
version

Новости

Все теги
Подписаться на новости

Подпишитесь на рассылку, чтобы всегда быть в курсе последних новостей в мире технологий

Вы успешно подписались!

Мы отправили вам на указанный адрес письмо со ссылкой-подтверждением.

Закрыть
30 марта 2017

Революционный процессор MIPS I6500: гетерогенность внутри и снаружиСтатья в блоге Тима Мейса (https://www.imgtec.com/blog/author/timmace/)

Тим Мейс, 12 октября 2016 года — В данной статье мы рассмотрим, как гетерогенная структура процессора MIPS Warrior I6500 I-класса обеспечивает значительные преимущества с точки зрения производительности и низкого энергопотребления.

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

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

Поддержка нескольких потоков

При типичных рабочих нагрузках, даже при использовании внеочередного исполнения, процессоры тратят бОльшую часть времени в ожидании доступа к системе памяти. Новое ядро MIPS I6500 имеет поддержку многопоточности — это когда программное обеспечение работает с несколькими потоками, при этом с каждым потоком — как с отдельным процессором. В зависимости от задач, реализация в процессоре второго потока увеличивает общую производительность в среднем на 40% при увеличении площади кристалла приблизительно на 10%. MIPS I6500 можно объединять в кластер с количеством процессоров от 1-го до 6-ти, в каждом из которых может быть задействовано до четырех потоков, так что в одном кластере может быть до 24-х потоков.

Кластер на MIPS I6500 отличается поддержкой аппаратной когерентности на уровне системы и интерфейсов, он использует когерентный шинный интерфейс AMBA ACE, что обеспечивает совместимость с популярными сетями на кристалле (NoC) с когерентностью кэша, такими как NetSpeed Gemini и Arteris Ncore. С сетью NetSpeed Gemini мульти-кластеры из 64-х MIPS I6500 кластеров способны задействовать 384 процессора, исполняющих 1536 потоков — что не может не впечатлять.

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

Общее представление о многопоточности

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

Рисунок 1. Пересылки памяти при переходе между кластерами

Рисунок 2. Внутри кластера пересылки памяти более быстрые и компактные

Поддержание когерентности кэшей разных процессоров

Когерентностью кэша можно управлять с помощью программного обеспечения. Для этого нужно, чтобы первый процессор (ЦПУ А) передал содержимое своего кэша в основную память перед переключением задачи на второй процессор (ЦПУ B). Затем ЦПУ B должен извлечь данные и команды обратно из основной памяти. Это может вызвать множество обращений к памяти, поэтому такой процесс является время- и энергозатратным; проблема усугубляется тем, что энергозатраты при обращении к основной памяти, как правило на порядок выше, чем энергозатраты при выборке из кэша. Для противодействия такому эффекту кластеры процессоров I6500 поддерживают аппаратную когерентность кэша, что минимизирует энергозатраты и увеличивает производительность.

В системе, использующей кластеры I6500, при передаче задачи от ЦПУ A к ЦПУ B последний будет обращаться к строкам кэша, которые находятся в локальных кэшах ЦПУ A. Аппаратные средства обеспечения когерентности кэша отслеживают местонахождение этих кэш-строк и обеспечивают целостность данных, получаемых из кэшей.

Еще одно преимущество кластера I6500 кроется в самом кластере.

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

В процессоре I6500 MIPS все обстоит иначе.

Его отличительные черты мы называем «гетерогенностью внутри». Это означает, что процессор I6500 поддерживает гетерогенную комбинацию процессоров, когда высокопроизводительные процессоры и процессоры с оптимизированным энергопотреблением находятся в одном кластере. Передача задачи от одного типа процессора к другому теперь осуществляется гораздо более эффективно, поскольку пустым является только кэш уровня 1, и затраты на слежение за предыдущим кэшем уровня 1 значительно снижены, благодаря чему время передачи задачи существенно сокращается.

Сочетание центральных процессоров и специализированных ускорителей

Центральные процессоры – это машины общего назначения. Гибкость позволяет им справляться с любыми задачами, но за это им приходится поступаться своей эффективностью. Графический процессор PowerVR благодаря оптимальности своей архитектуры способен выполнять объемные вычислительные задачи с высокой степенью параллельности при очень высокой производительности и хорошей энергоэффективности за счёт некоторого снижения гибкости по сравнению с центральными процессорами. Позиции этого графического процессора подкреплены хорошо развитой экосистемой разработки программного обеспечения с такими средами, как OpenCL.

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

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

Аппаратное ускорение может расширить возможности ЦПУ и позволить работать с блоками типа «одиночный поток команд, множественный поток данных» (ОКМД) и с блоками арифметико-логических устройств (АЛУ) с плавающей точкой. Отметим, что ЦПУ при обработке данных с помощью блока ОКМД выступает в роли контроллера прямого доступа к памяти (DMA), обеспечивающего перемещение данных, однако, надо признать, ЦПУ являются очень неэффективными контроллерами DMA.

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

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

Рисунок 3. Минимальный размер пакета функций, позволяющий скомпенсировать затраты на переключение, снижается при уменьшении затрат на переключение

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

Снижение затрат на передачу данных

Чтобы помочь решить данную проблему, в I6500 предусмотрена общая виртуальная память (SVM) с аппаратными средствами обеспечения когерентности кэша. Благодаря этому устраняется значительная часть затрат на переключение задачи, поскольку исключается копирование данных и передача содержимого кэшей.

Чтобы еще больше сократить затраты времени и энергии, необходимы другие методы. Консорциум HSA Foundation разработал среду для поддержки интеграции гетерогенных вычислительных элементов в систему, которая выходит за рамки центральных и графических процессоров. В системе с гетерогенной системной архитектурой (HSA) используется промежуточный язык HSAIL, который обеспечивает общий компиляционный путь к гетерогенным архитектурам наборов команд (ISA), что значительно упрощает разработку системного программного обеспечения, а также позволяет определять очереди в пользовательском режиме.

Такие очереди позволяют планировать выполнение задач и переключать задачи на другие вычислительные элементы, в результате чего последовательности задач выполняются с весьма низкими непроизводительными затратами.

Блоки когерентности ввода-вывода

Наряду с ЦПУ в кластере на MIPS I6500 поддерживается несколько блоков когерентности ввода-вывода (IOCU). Такие блоки IOCU обладают функциональностью блока управления памятью (MMU) для трансляции транзакций в физическое адресное пространство и сквозного использования общего кэша уровня 2 таким же образом, как для транзакций от ЦПУ, что позволяет поддерживать когерентность со всеми локальными кэшами. Во многих системах такая функциональность обеспечивает эффективную интеграцию ускорителей с ЦПУ.

При выполнении более объемных задач в ускорителе пропускная способность, необходимая контроллеру прямого доступа к памяти (DMA), обеспечивающему ускоритель, может быть велика и даже может быть ограничена характеристиками системы памяти. В результате в системе памяти будут накапливаться очереди транзакций ускорителя, а к транзакциям ЦПУ, которые используют одни и те же порт и путь, будет добавляться задержка ожидания в очереди. Ускорители, работающие с большими объемами данных, могут иметь слабую зависимость между транзакциями, что позволяет ускорителю использовать предварительную выборку. Это дает высокую устойчивость к задержкам доступа к памяти кэша уровня 2.

Рисунок 4. Схема гетерогенной системы с центральным процессором I6500, графическим процессором PowerVR и ускорителем

* Ускоритель имеет прямой доступ к данным в кэше уровня 2 и непрямой доступ к кэшу уровня 1 с когерентностью. Результаты, скорее всего, будут найдены процессором в кэше уровня 2

** Трафик с высокой пропускной способностью может регулироваться системным механизмом обеспечения качества обслуживания (QoS), не влияя на производительность процессорного кластера

Процессор MIPS I6500 с когерентным шинным интерфейсом позволяет ускорителю использовать отдельный, независимый путь к системной памяти, сохраняя при этом когерентность с процессорным кластером. Мы называем это «гетерогенностью снаружи».

Преимущества гетерогенной системы

Гетерогенные системы позволяют значительно повысить производительность системы и снизить её энергопотребление, благодаря чему обеспечивается возможность дальнейшего масштабирования систем с обходом ограничений, накладываемых постоянно уменьшающимися нормами технологического процесса. Многопоточные, гетерогенные и когерентные кластеры на основе ЦПУ MIPS I6500 обладают идеальными характеристиками, чтобы лечь в основу таких создаваемых систем.

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

Об авторе

Тим Мейс является старшим менеджером по развитию бизнеса подразделения MIPS процессоров в Imagination Technologies. До прихода в компанию в 2014 году Тим работал в ARM Ltd., где он занимал инженерные, технические и маркетинговые должности с 2001 года. Ранее он работал инженером и консультантом в различных компаниях. Он имеет степень бакалавра в области физической электроники, полученную в Манчестерском университете – в Институте науки и техники, а также степень МВА Открытого университета.

Оригинал этой статьи.

Теги
Мы в соцсетях