Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Лекция 2 Архитектура Intel Xeon Phi Программирование.

Презентация:



Advertisements
Похожие презентации
Архитектура микропроцессоров И ее эволюция. Процессор и память: Команды и данные.
Advertisements

Организация памяти. Иерархии памяти Идея иерархической (многоуровневой) организации памяти заключается в использовании на одном компьютере нескольких.
Современные микропроцессоры Тенденции развития. Рассматриваемые процессоры Intel Itanium 2 Intel Core 2 Duo IBM Cell.
Введение в параллельную обработку. Уровни параллелизма в процессорах Параллелизм данных (DLP – Data Level Parallelism) Параллелизм команд (ILP – Instruction.
Архитетура компьютерных систем. Архитектура системы команд как интерфейс между программным и аппаратным обеспечением Архитектура системы команд.
Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Лекция 4 Векторные расширения Intel Xeon.
Теория компиляторов-2. Л.31 Теория компиляторов Часть II Лекция 2.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Лабораторный практикум по курсу Принципы построения современных ОС Линёв А.В. – ассистент, кафедра ИИСиГИ ВМК ННГУ Свистунов А.Н. – ассистент, кафедра.
План изучения нового материала 1.Системная или материнская плата. Магистраль: 1 ). шина данных 2). шина адреса 3). шина управления 3. Шины периферийных.
Разработка кэша справочника для вычислительного комплекса на базе микропроцессора Эльбрус – 2S Студент : Петров Игорь, ФРТК, 613 группа Научный руководитель:
Core 2 Duo Двухъядерная 64-битная архитектура –За основу ядра взято ядро Pentium Pro Широкое динамическое исполнение Разделяемый КЭШ 2го уровня Поддержка.
Разработка программного обеспечения для сигнальных процессоров TMS320C64xx Часть 3. Архитектура ядра процессоров с64хх.
Архитектура компьютера. Функциональные характеристики ПК Лекция 2 часть г.
Системы с общей оперативной памятью UMA, SMP, NUMA.
Планирование выполнения инструкций для векторных процессоров с переменной длиной векторов Пантелеев Алексей Юрьевич Национальный исследовательский ядерный.
Архитектура ЭВМ (лекция 7) проф. Петрова И.Ю. Курс Информатики.
Общая структура персонального Общая структура персонального компьютера компьютера Системная магистраль (шина) Основная память МониторМанипуляторыМодем.
Периферийные устройства ЭВМ. ШИНЫ РАСШИРЕНИЯ Шина AGP AGP (от англ. Accelerated Graphics Port, ускоренный графический порт) специализированная 32- битная.
Лекция 6. Способы адресации в микропроцессорных системах.
Транксрипт:

Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Лекция 2 Архитектура Intel Xeon Phi Программирование для Intel Xeon Phi Линёв А.В. Кафедра программной инженерии При поддержке компании Intel

Содержание Введение Архитектура Intel Xeon Phi Конвейер ядра Intel Xeon Phi Иерархия памяти Итоги Архитектура Intel Xeon Phi

Н. Новгород, 2013 г. 3 Введение

Архитектура Intel Xeon Phi Геннадий Федоров. Intel® Xeon Phi. Курс молодого бойца.

Сопроцессор Intel Xeon Phi В конце 2012 года Intel представила первый процессор с архитектурой Intel MIC (Intel® Many Integrated Core Architecture) Основой архитектуры MIC является использование большого количества вычислительных ядер архитектуры x86 в одном процессоре Для разработки параллельных программ могут быть использованы стандартные технологии: pthreads, OpenMP, Intel TBB, Intel Cilk Plus, MPI Intel® Xeon Phi 5110P подключается к разъему PCIe x16 на материнской плате, в двухпроцессорной системе можно установить до 8 карт Intel® Xeon Phi 5110P Архитектура Intel Xeon Phi

Сопроцессор Intel Xeon Phi Архитектура Intel Xeon Phi Intel® Xeon Phi Coprocessor: Datasheet [

Что должен знать разработчик HPC- приложений… Программа, с которой обычно начинается изучение новой технологии параллельного программирования double A[N], B[N], C; int i; C = 0.0; for(i = 0; i < N; i ++){ C += A[i] * B[i]; } Знание системных основ параллельных вычислений позволяет понимать, как должна/будет работать такая программа на аппаратном уровне Архитектура Intel Xeon Phi

Что должен знать разработчик HPC- приложений Предварительные требования –Основы программирования –Алгоритмы и анализ сложности –Языки программирования Системные основы параллельных вычислений –Архитектура вычислительных систем (+ Ассемблер) –Компьютерные сети –Операционные системы –Компиляторы Использование параллельных вычислений –Параллельное программирование / Алгоритмы / Языки / Технологии / Инструменты / … Архитектура Intel Xeon Phi

Архитектура вычислительных систем… Введение Архитектура процессора, компоненты CPU Конвейеризация вычислений (статическое и динамическое планирование) Векторные вычисления Иерархия памяти Классификация архитектур вычислительных систем –Симметричное мультипроцессирование –Массивно-параллельные системы, кластерные системы –Параллелизм в процессорах специального назначения Примеры вычислительных систем Архитектура Intel Xeon Phi

Н. Новгород, 2013 г. 10 Архитектура Intel Xeon Phi

TD – Каталог тегов (Tag Directory), GDDR MC – Контроллер памяти Ядро L2 TD Ядро L2 TD... GDDR MC Ядро L2 TD... Ядро L2 TD GDDR MC Ядро L2 TD... Ядро L2 TD GDDR MC Ядро L2 TD Ядро L2 TD... GDDR MC Клиентская логика PCI Express (SBOX)

Архитектура Intel Xeon Phi До 61 процессорных ядер Высокопроизводительная кольцевая шина 8 контроллеров памяти обслуживают 16 каналов GDDR5 Отдельный компонент реализует клиентскую логику PCI Express Архитектура Intel Xeon Phi

Исполнительное ядро Intel Xeon Phi… Выполняет выборку и декодирование инструкций 4 аппаратных потоков Поддерживает выполнение 32- и 64-битного кода, совместимого с архитектурой Intel64 Ядро содержит 2 конвейера (U-конвейер и V-конвейер) и может выполнять 2 инструкции за такт –V-конвейер способен выполнять не все типы инструкций, возможность параллельного выполнения команд на U- и V-конвейерах задается набором правил Архитектура Intel Xeon Phi Блок декодирования инструкций Блок обработки скаляров Скалярные регистры Блок обработки векторов Векторные регистры 32 Кб кеш инструкций L1 32 Кб кеш данных L1 Интерфейс КШ (512 Кб L2, TD) Кольцевая шина

Исполнительное ядро Intel Xeon Phi Внеочередное выполнение инструкций не поддерживается Не реализованы команды Intel Streaming SIMD Extensions (SSE), MMX и Advanced Vector Extensions (AVX) Включает по 32 Кб 8-канальных множественно-ассоциативных кешей инструкций и данных (L1 I-Cache и L1 D-Cache) Архитектура Intel Xeon Phi

Исполнительное ядро Intel Xeon Phi 512-битный блок векторных вычислений (vector processor unit, VPU) – битных регистра (zmm0-zmm31) –Включает расширенный блок математических вычислений (extended math unit, EMU) –Выполняет за 1 такт 16 операций над числами с плавающей точкой одинарной точности или 32-битными целыми числами или 8 операций над числами плавающей точкой двойной точности –Для операции «умножение и сложение» (multiply-add, FMA) - 32 операции над числами плавающей точкой одинарной точности за такт –Поддерживает операции заполнения и перестановки содержимого векторного регистра –8 регистров масок для условного выполнения –Поддерживает вычисление для вещественных чисел одинарной точности 2 x, log 2 x, 1/x, 1/sqrt(x) –Один из аргументов может считываться из оперативной памяти с выполнением при необходимости преобразования типа Архитектура Intel Xeon Phi

Исполнительное ядро Intel Xeon Phi Интерфейс кольцевой шины (Core-Ring Interface, CRI/L2) –Обеспечивает подключение ядра к высокопроизводительному встроенному интерконнекту сопроцессора –Включает 512 Кб 8-канального (8-way) множественно-ассоциативного кеша L2 Каталог тегов (Tag Directory, TD) является частью распределенного каталога Архитектура Intel Xeon Phi

Компоненты Intel Xeon Phi Контроллер памяти (GDDR MC) включает: интерфейс кольцевой шины, планировщик запросов, интерфейс к устройствам GDDR –Каждый контроллер памяти включает два независимых канала доступа к памяти –Все контроллеры памяти сопроцессора действуют независимо друг от друга Архитектура Intel Xeon Phi

Компоненты Intel Xeon Phi SBOX реализует клиентскую логику PCI Express, включая механизм прямого доступа к памяти (Direct Memory Access, DMA) и ограниченные возможности по управлению питанием Двунаправленная кольцевая шина обеспечивает передачу данных между компонентами сопроцессора Архитектура Intel Xeon Phi

Теоретическая производительность Intel Xeon Phi содержит 61 ядро, но он исполняет собственную операционную систему, и одно ядро выделено для исполнения кода ОС Для вещественных чисел одинарной точности 16 (длина вектора) * 2 flops(FMA) * 1.1 (GHZ) * 60 (число ядер) = 2112 GFLOPS Для вещественных чисел двойной точности 8 (длина вектора) * 2 flops (FMA) * 1.1 (GHZ) * 60 (число ядер) = 1056 GFLOPS Архитектура Intel Xeon Phi

Н. Новгород, 2013 г. 20 Конвейер ядра Intel Xeon Phi

Конвейер ядра Intel Xeon Phi… Содержит 7 этапов Блок векторных вычислений также имеет конвейерную структуру и состоит из 6 этапов Все этапы основного конвейера кроме последнего (WB), поддерживают спекулятивное выполнение Каждое ядро может выполнять инструкции 4 потоков Архитектура Intel Xeon Phi Pre Thread Picker Function (PPF) Thread Picker Function (PPF) Decode Prefixes (D0) Instruction Decode (D1) Microcode Control (D2) Execution (E) Write Back (WB)

Конвейер ядра Intel Xeon Phi… Архитектура Intel Xeon Phi Декодирование T0 IP T1 IP T2 IP T3 IP L1 TLB L1 I-Cache Микрокод U-конвейер (Pipe 0)V-конвейер (Pipe 1) Векторные регистры Регистры x87 Скалярные регистры Векторнаяо бработка 512 б SIMD Операции x87 ALU 0ALU 1 L1 TLB, L1 D-Cache L2 TLB Кеш L2 512 Кб Интерфейс кольцевой шины

Конвейер ядра Intel Xeon Phi… Реализация выборки команд (стадии PPF и PF) накладывает ограничение на выполнение потоков – на двух последовательных тактах не могут выбираться инструкции одного и того же потока –для полной загрузки ядра необходимо выполнять на нем по крайней мере два потока одновременно, а при работе только одного потока выборка инструкций будет выполняться через такт –с учетом того, что заполнение буфера предварительной выборки требует 4-5 тактов при попадании в кеш инструкций и значительно больше при промахе, для обеспечения полной загрузки может потребоваться 3-4 потока Архитектура Intel Xeon Phi

Конвейер ядра Intel Xeon Phi Этап исполнения (E), реализован в виде двух конвейеров – U и V Первая инструкция всегда отправляется на U-конвейер, для второй инструкции проверяется возможность одновременного выполнения с первой согласно набору правил парного выполнения команд Скалярные целочисленные операции выполняются арифметико- логическими устройствами (ALU), для скалярных и векторных операций с вещественными числами используется дополнительный 6-стадийный конвейер Векторные инструкции выполняются в основном на U-конвейере Большинство инструкций с целыми числами и масками имеют латентность 1, большинство векторных инструкций – 4 или более при использовании операций чтения/записи с заполнением или перестановкой Архитектура Intel Xeon Phi

Н. Новгород, 2013 г. 25 Векторные операции

Векторные операции… Длина вектора – 512 бит Вектор может обрабатываться как –8 вещественных чисел двойной точности –16 вещественных чисел одинарной точности –8 64-битных целых чисел –16 32-битных целых чисел Планируется поддержка –32 16-битных целых чисел –64 8-битных целых чисел Архитектура Intel Xeon Phi

Векторные операции… Позволяют за одну инструкцию выполнить арифметическую операцию над несколькими парами операндов –Имеются унарные, бинарные и тернарные операции Использования векторизации –Специальные директивы или intrinsic –Автоматическая векторизация компилятором Архитектура Intel Xeon Phi A[i] + B[i] C[i] A[i+7] B[i+7] C[i+7] A[i+6] B[i+6] C[i+6] A[i+5] B[i+5] C[i+5] A[i+4] B[i+4] C[i+4] A[i+3] B[i+3] C[i+3] A[i+2] B[i+2] C[i+2] A[i+1] B[i+1] C[i+1] A[i] B[i] C[i] + double A[N], B[N], C = 0.0; for(int i = 0; i < N; i ++){ C += A[i] * B[i]; }

Векторные вычисления Аппаратно векторизованные функции для одинарной точности: 2 x, log 2 x, 1/x, 1/sqrt(x) Компилятор Intel поддерживает набор intrinsic, представляющих собой векторные версии скалярных математических операций (Short Vector Math Library Intrinsics, библиотека SVML) –Входной параметр – вектор, выходной параметр – вектор, над каждым элементом которого была выполнена скалярная операция –Поддерживаются операции для одинарной и двойной точности –Используется для векторизации циклов с математическими функциями Архитектура Intel Xeon Phi Операции, поддерживаемые SVML

Автовекторизация Компилятор Intel поддерживает возможность автоматической векторизации циклов –Для обеспечения возможности автоматический векторизации требуется выполнение ряда условий –Можно помочь компилятору выполнить векторизацию, используя специальные директивы pragma –Является рекомендуемым вариантом использования векторизации (обеспечивает переносимость кода между различными архитектурами) Автоматическая векторизация подробно рассмотрена в Лекции 4 «Векторные расширения Intel Xeon Phi» Архитектура Intel Xeon Phi

Н. Новгород, 2013 г. 30 Иерархия памяти Intel Xeon Phi

Иерархия памяти Intel Xeon Phi… Все ядра совместно используют оперативную память сопроцессора Каждое ядро сопроцессора Intel Xeon Phi имеет собственные кеши L1 и L2 Кеши L1 и L2 являются инклюзивными –все данные, хранящиеся в кэше L1, хранятся также в кэше L2 Кеши L1 и L2 используют псевдо-LRU алгоритм Архитектура Intel Xeon Phi

Иерархия памяти Intel Xeon Phi… Кеши первого уровня - кеш инструкций L1 I-Cache и кеш данных L1 D-Cache –размер - по 32 Кб –размер строки - 64 байта –степень ассоциативности – 8 –«чистая» латентность - 1 такт –средняя латентность доступа - 3 такта –load-to-use латентность - 1 такт (целочисленное значение, загруженное на текущем такте из кеша, может быть использовано на следующем такте целочисленной инструкцией, для векторных инструкций может быть больше) –обслуживает до ~38 одновременных запросов на ядро Архитектура Intel Xeon Phi

Иерархия памяти Intel Xeon Phi… Кеш второго уровня L2 –размер Кб –размер строки - 64 байта –степень ассоциативности – 8 –32 Гб кешируемых адресов (размер адреса 35 бит) –«чистая» латентность доступа - 11 тактов –средняя латентность доступа тактов –имеет аппаратное потоковое устройство предвыборки, способное выполнять избирательную предвыборку инструкций для исполнения и данных для операций чтения и записи может инициировать до 4 составных запросов предвыборки, позволяет инициировать параллельную предвыборку до 4 Кб данных –обслуживает до ~38 одновременных запросов на ядро Архитектура Intel Xeon Phi

Иерархия памяти Intel Xeon Phi… Для контроля когерентности кешей используется комбинация протоколов: MESI (Modified, Exclusive, Shared, Invalid) на каждом ядре и GOLS3 (Globally Owned Locally Shared) для распределенного каталога тегов Распределенный между ядрами каталог тегов сопроцессора (TD) разделен на 64 части, каждая из которых отвечает за контроль глобального состояния когерентности части строк кеша Особенности реализации кешей L1 и L2: –обращения к кешу L1 можно выполнять в последовательные такты, между обращениями к кешу L2 должен выдерживаться интервал в 1 такт (то есть к кешу L2 можно обращаться в лучшем случае через такт) –на каждом конкретном такте для L1 и L2 допускается выполнение либо чтения из кеша, либо записи в кеш, но не чтения и записи одновременно –реализованы только две схемы взаимодействия между кешем и основной памятью – отсутствие кеширования (uncacheable, UC) и отложенная запись (write-back, WB) streaming stores Архитектура Intel Xeon Phi

Иерархия памяти Intel Xeon Phi Оперативная память –8 встроенных контроллеров памяти, каждый обслуживает по два 32- битных канала GDDR5 –суммарная производительность - 5,5 GT/s (миллиардов пересылок в секунду) –суммарная пропускная способность GB/s –латентность доступа - более 300 тактов Компонент сопроцессора, реализующий клиентскую логику PCI Express, также обеспечивает работу механизма прямого доступа к памяти (DMA). 8 независимых каналов DMA, работающих на той же частоте, что и ядра сопроцессора, могут выполнять следующие типы передачи данных: –из GDDR5-памяти сопроцессора в оперативную память хоста –из оперативной памяти хоста в GDDR5-память сопроцессора –из GDDR5-памяти в GDDR5-память в пределах сопроцессора –Выполнение операции передачи данных может быть запрошено как со стороны центрального процессора хоста, так и со стороны сопроцессора Архитектура Intel Xeon Phi

Предвыборка данных (Prefetching) Использование intrinsics –_mm_prefetch((char *) &a[i], hint); –См. xmmintrin.h для возможных значений hint (for L1, L2, non- temporal, …) pragma / directive –#pragma prefetch a [:hint[:distance]] По умолчанию работает аппаратная предвыборка Архитектура Intel Xeon Phi

Страничная модель адресации… Архитектура Intel Xeon Phi MAX 0 ВАП RAM HDD Physical frame number N … Physical frame number 1 Physical frame number 0 Таблица страниц CR3 Поддержка виртуального адресного пространства процесса на основе страничного преобразования

Страничная модель адресации… Поддержка виртуальных адресных пространств процессов –32-битные физические адреса при работе в 32-битном режиме –36-битные адреса при использовании технологии PAE (Physical Address Extension) в 32-битном режиме –40-битные физические адреса при работе в 64-битном режиме Операционная система сопроцессора поддерживает работу только в 64-битном режиме Процессам предоставляется линейное виртуальное адресное пространство (ВАП) и возможность использовать 64-битные адреса –Для поддержки ВАП используется стандартная схема архитектуры x86_64 – страничная адресация с 4 уровнями таблиц страниц Архитектура Intel Xeon Phi

Страничная модель адресации… Архитектура Intel Xeon Phi Page Global Directory Страница ВАП Виртуальный адрес, 64 бита Регистр CR3 Page Upper Directories +... Page Middle Directories +... Page Tables +... Страница RAM +

Страничная модель адресации Поддерживаемые размеры страниц – 4 Кб и 2 Мб Кеш дескрипторов страниц (translation look-aside buffer, TLB) имеет двухуровневую архитектуру; каждое ядро имеет следующие кеши Архитектура Intel Xeon Phi

Н. Новгород, 2013 г. 41 Итоги

Требования к приложению, портируемому на MIC Параметры архитектуры Intel Xeon Phi позволяют выделить базовые характеристики приложения, определяющие возможность его эффективной адаптации –Эффективно распараллеленное на центральном процессоре Перед портированием приложения на специализированную архитектуру необходимо убедиться в возможности построения эффективной параллельной реализации –Массивный параллелизм –Векторизация кода –Высокая вычислительная сложность и переиспользование данных –Использование фиксированных интерфейсов из MKL –MPI-приложения Архитектура Intel Xeon Phi

Противопоказания Недостаточная степень параллелизма Множественные синхронизации Структуры данных подразумевают активное использование gather/scatter Использование 64-разрядных индексов или конверсия int64 fp Интенсивная коммуникация между host-частью и Xeon Phi Ограничение памяти 8Gb при непосредственном исполнении на Xeon Phi (native mode) Архитектура Intel Xeon Phi

Замечания для повышения производительности Размер задачи –Большие задачи имеют больший параллелизм –Но не слишком большие (доступно только 8GB RAM) Выравнивание данных –64 байта для эффективного использования векторизации Количество потоков OpenMP и их привязка –Избегайте миграции потоков для сохранения локальности данных Используйте большие страницы –Уменьшает количество промахов TLB и накладные расходы на поддержку ВАП Архитектура Intel Xeon Phi

Литература Reinders J. An Overview of Programming for Intel Xeon processors and Intel Xeon Phi coprocessors. –[ programming-for-intel-xeon-processors-and-intel-xeon-phi] Loc Q Nguyen et al. Intel Xeon Phi Coprocessor Developer's Quick Start Guide. –[ quick-start-guide] Intel Xeon Phi Coprocessor System Software Developers Guide – software-developers-guide] Rahman R. Intel Xeon Phi Core Microarchitecture –[ Архитектура Intel Xeon Phi

Авторский коллектив Линёв Алексей Владимирович, заведующий лабораторией кафедры программной инженерии факультета ВМК ННГУ. Н. Новгород, 2013 г. Компиляция и запуск приложений на Intel Xeon Phi