Ускорители разных типов сегодня применяются в широком спектре компьютерных систем, от ПК и до суперкомпьютеров, дополняя центральные процессоры, однако чипы второго поколения ускорителей Intel Xeon Phi серии x200 (Knights Landing) способны полностью заменить центральные процессоры x86-64. Это, в частности, означает возможность выполнения без перекомпиляции всех имеющихся программ и уменьшение сложности, связанной с обеспечением одновременного использования центральных и графических процессоров в одной системе.
Ускорители Knights Landing относятся к устройствам класса MIC (Many Integrated Core Architecture) и обладают рядом архитектурных особенностей [1, 2]. Ускорители построены на микросхемах, содержащих до 36 процессорных «плиток» (tile), связанных межсоединением по топологии двумерной решетки (см. рисунок). Каждая «плитка» содержит два процессорных ядра, специально адаптированных для выполнения приложений систем высокопроизводительных вычислений (HPC). Это ядра Intel Atom Silvermont с двумя VPU (векторными процессорными устройствами) — AVX512 для работы с числами в формате с плавающей запятой двойной точности (DP). В ядрах Atom в Knights Landing много усовершенствований по сравнению с версией для первого поколения процессоров — Intel Xeon Phi (Knights Corner). Например, добавлена внеочередная обработка команд и модернизирована AVX-архитектура, а благодаря увеличению числа ядер, обеспечивающих выполнение по 16 операций над числами в формате DP на ядро за такт, производительность увеличилась вдвое.
Архитектура ускорителя Knights Landing |
Как и у Knights Corner, каждое ядро нового ускорителя имеет кэши команд и данных по 32 Кбайт с дополнительным разделяемым ядрами плитки кэшем второго уровня емкостью 1 Мбайт. Во всей микросхеме обеспечивается когерентность кэша второго уровня для всех ядер c общей емкостью до 36 Мбайт. Каждое ядро предполагает одновременное использование четырех нитей, или тредов (одновременно выполняемые потоки команд, HyperThreading в процессорах Intel x86-64).
Микросхемы Knights Landing изготовлены по технологии 14 нм и работают на частотах 1,3–1,5 ГГц (см. таблицу). Пиковую производительность Knights Landing при работе с числами в формате с плавающей запятой можно посчитать, умножив тактовую частоту при работе с AVX на число ядер и на 32 команды, выполняемые за такт, что дает 3 TFLOPS. Кроме базовой тактовой частоты, у Knights Landing возможна и ускоренная — до 1,7 ГГц.
Таблица. Характеристики ускорителей |
В состав ускорителя входят восемь модулей «ближней памяти» MCDRAM (Multi-Channel DRAM) общей емкостью 16 Гбайт и пропускной способностью 400 Гбайт/с, имеющих доступ к плитке через восемь контроллеров. В Knights Landing есть еще два контроллера для обращения к «дальней памяти» DDR4 2400 емкостью до 384 Гбайт и пропускной способностью 90 Гбайт/с. «Ближняя память» может работать в трех разных режимах: как кэш дальней памяти; в составе единого адресного пространства с дальней памятью (гладкий режим); в комбинированном режиме, когда часть MCDRAM используется как кэш, а часть — в едином адресном пространстве с DDR4 [1]. Уникальным для ускорителей является не только такое двухуровневое построение памяти, но и поддержка интерфейса с межсоединением Intel Omni-Path, которое может стать конкурентом Infiniband. Процессор Knights Landing может связаться с Omni-Path через два внутренних канала PCIe x16, а на выходе обеспечить два порта Omni-Path c быстродействием 25 Гбайт/с при дуплексной передаче. Кроме того, Knights Landing имеет два интерфейса с PCIe x16 v.3.0, что, в частности, позволяет применять не только Omni-Path, но и известный интерфейс DMI (Direct Media Interface), первоначально предложенный корпорацией Intel для связи между северным и южным мостами на материнских платах, а затем для связи интегрировавшей их микросхемы с центральными процессорами.
Knights Landing логично сопоставлять с самыми мощными графическими ускорителями компании Nvidia [3]. Как видно из таблицы, пиковая производительность ускорителей P100 немного выше, чем у Xeon Phi 7290, а пропускная способность специальной быстродействующей cтековой памяти CoWoS HBM2 в P100 также больше, чем у MCDRAM в Knights Landing. Однако это пока единственный в мире ускоритель, который, кроме быстродействующей памяти MCDRAM, может работать с оперативной памятью DDR4 большой емкости. Это крайне актуально для HPC-приложений, а в сочетании с двоичной совместимостью с x86-64 и, соответственно, с возможностью работы с популярными операционными системами делает Knights Landing полноценным процессором, способным выполнять широкий круг задач обработки Больших Данных.
Архитектура графических процессоров Nvidia существенно отличается от принятой в центральных процессорах, что касается и терминологии [3], поэтому сопоставление ускорителей в таблице не совсем однозначно, а сравнение количества 64-разрядных CUDA-ядер с числом возможных нитей в Knights Landing может быть только качественным, говорящим о более высоком уровне распараллеливания в P100 относительно Xeon Phi.
Арифметическая интенсивность (отношение пиковой производительности к пропускной способности) высокоскоростной памяти — число выполняемых операций с плавающей запятой при каждой передаче байта данных — у акселераторов Knights Landing выше, чем у P100. Однако в реальных HPC-приложениях, например в задачах прогнозирования погоды, достигаемая арифметическая интенсивность может быть гораздо ниже, чем теоретически возможная для конкретного ускорителя. Кроме того, надо иметь в виду, что в ряде приложений применяется одинарная точность (SP) или даже половинная (16-разрядная точность, HP), и тогда производительность P100 оказывается выше, чем у Knights Landing. Для выполнения приложений с преобладанием вычислений класса SP компания Nvidia предлагает специальный GPU Maxwell Titan X c пиковой производительностью 7,1 TFLOPS. Ускоритель P100 аппаратно поддерживает HP, и при этом его пиковая производительность достигает 19 TFLOPS. Кроме того, у Nvidia есть ускоренный вариант P100 c поддержкой высокоскоростного межсоединения по протоколу NVLink между CPU и GPU c дуплексной пропускной способностью 160 Гбайт/с. У таких P100 производительность для DP/SP/HP составляет 5,3/10,6/21,2 TFLOPS соответственно.
Но наиболее важная особенность Knights Landing — двоичная совместимость c x86-64, что означает поддержку устоявшейся cистемы программирования — например, возможно явное указание в компиляторах Intel с языков Фортран и Си/С++ [1] на использование массивов памяти MCDRAM, а в среде Nvidia/CUDA сделать это непросто.
Итак, в случае Knights Landing впервые в индустрии складывается ситуация, когда высокая производительность ускорителя сочетается с преимуществами стандартных центральных процессоров [1], а на его основе можно построить сервер c достаточно большой памятью DDR4, необходимой, например, для выполнения приложений Hadoop и поддержки СУБД с обработкой в оперативной памяти. Таким образом, можно создавать HPC-кластеры из серверов на платформе Knights Landing и Omni-Path, что способно привести к кардинальным изменениям в суперкомпьютерной индустрии.
По пиковой производительности Knights Landing при работе с числами в формате DP вдвое превосходит двухпроцессорную систему с процессорами E5-2699v4: Xeon имеет 22 ядра (2,2 ГГц), каждое из которых позволяет за такт обработать 16 чисел в формате с двойной точностью (против 32 в Knights Landing). Для расчета пиковой производительности процессоров Xeon, начиная с архитектуры Haswell (2600 v3), следует использовать не базовую, а более низкую AVX-частоту. Для процессоров E5-2600 v4 c микроархитектурой Broaswell-EP, в которых число выполняемых за такт команд такое же, как и в Haswell, частоты также отличаются .
Особый интерес представляют данные производительности при выполнении признанных стандартных тестов, позволяющие сделать адекватное сопоставление результатов. Данные для известных тестов SPECfp_rate_base2006 [2] свидетельствуют, что ускорители Knights Landing 7250 достигают около 80% от производительности системы, состоящей из двух 14-ядерных процессоров Xeon E5-2697 v3 микроархитектуры Haswell с базовой частотой 2,6 ГГц, опережая в 1,2 раза последние по производительности на ватт.
Системы Knights Landing имеет смысл применять для выполнения тяжелых расчетов с числами в формате с плавающей запятой, поэтому на тестах SPECint_rate_base2006 процессор Knights Landing 7250 выдает лишь 60% от производительности той же пары E5-2697 v3 при одинаковом уровне производительности в расчете на ватт. Это означает, что традиционные двухпроцессорные серверы/х86-64 в кластерах вплоть до суперкомпьютерного уровня могут быть заменены на серверы с процессорами Knights Landing, а в реальных HPC-приложениях будет достигаться более высокая, чем демонстрируемая на тестах SPEC, производительность при более низком энергопотреблении.
Высокопроизводительным приложениям наиболее точно соответствуют такие тесты, как BLAS и конкретно BLAS 3-го уровня — например, умножение матриц из чисел двойной точности (тест dgemm). Первые результаты уже были обнародованы Джеком Донгаррой (J. Dongarra, Form Follows Function — Do Software, Algorithms & Applications Challenge or Drag behind the Hardware Evolution? ). Для 68-ядерного Knights Landing c частотой 1,3 ГГц и пиковой производительностью 2,5 TFLOPS при использовании библиотеки Intel MKL для теста dgemm была достигнута реальная производительность около 2,1 TFLOPS, в то время как для BLAS L2 (умножение матрицы на вектор) — около 60 GFLOPS. Однако надо отметить, что для MIC-архитектуры, как и для всех ускорителей с большим числом ядер (many-core), для достижения высокой производительности нужно применять «пакетный» подход (например, используя известную библиотеку программ MAGMA) к работе с dgemm, благодаря которому Knights Landing демонстрирует трехкратное увеличение производительности при умножении матриц.
Умножение разреженных матриц на вектор актуально, например, для некоторых методов квантовой ядерной физики. Так, в Национальном научном энергетическом центре США на Knights Landing с 64 ядрами / 1,3 ГГц и c 96 Гбайт DDR4 / 2133 МГц было получено ускорение в 1,6 раза по сравнению с двухпроцессорным сервером, оснащенным 16-ядерными процессорами Haswell / 2,3 ГГц и 128 Гбайт такой же памяти. Явное указание компилятору на использование 16 Гбайт MCDRAM в общем адресном пространстве дало повышение производительности в 1,2 раза по сравнению с ее применением исключительно как кэш-памяти.
При выполнении тестов STREAM/triad для Xeon Phi 7250 с MCDRAM достигается пропускная способность 421 Гбайт/с, а с памятью DDR4 — 88 Гбайт/с, что близко к результатам процессоров Haswell E5-2670 v3.
Примечательно, что в рейтинге Top500 (июнь 2016 года) уже появился первый суперкомпьютер на платформе Knights Landing, занявший 117-е место с пиковой производительностью около 1,5 PFLOPS, — это кластер Stampede-KNL Университета Техаса. В нем используются межсоединение Intel Omni-Path и процессоры Xeon Phi 7250 — всего около 33 тысяч ядер.
***
Выпуск процессоров Intel Xeon Phi Knights Landing серии x200 означает, что впервые в индустрии появилась возможность создания широкого спектра высокопроизводительных систем — от серверов до суперкомпьютеров — на базе обычных широко распространенных архитектур с традиционным системным ПО. Таким образом, отпадает необходимость в гетерогенных конфигурациях, включающих графические процессоры, которые позволяют проводить тяжелые вычисления и обладают высокой пропускной способностью работы с собственной памятью и более пригодны для выполнения параллельных приложений работы с Большими Данными, и центральные процессоры, эффективно выполняющие последовательные алгоритмы и оптимально организующие работу с внешней памятью. Единая архитектура Knights Landing устраняет необходимость писать сложные программы для графических ускорителей, часто требующие дополнительных усилий по организации работы гетерогенных архитектур [4] или средств низкоуровневого программирования, в частности, для обеспечения работы с внешней памятью или обменов GPU-CPU. В ряде случаев Knights Landing пока уступает по быстродействию специализированным графическим ускорителям, однако производитель уже планирует переход к новому поколению Knights Hill [2], которые будут выпускаться по технологии 10 нм.
Литература
- A. Sodani. Knights Landing (KNL): 2nd Generation Intel Xeon Phi. URL: http://www.hotchips.org/wp-content/uploads/hc_archives/hc27/HC27.25-Tuesday-Epub/HC27.25.70-Processors-Epub/HC27.25.710-Knights-Landing-Sodani-Intel.pdf (дата обращения: 10.09.2016).
- G. Eric. What public disclosures has Intel made about Knights Landing? URL: https://software.intel.com/en-us/articles/what-disclosures-has-intel-made-about-knights-landing (дата обращения: 10.09.2016).
- Михаил Кузьминский. Графические процессоры для HPC // Открытые системы.СУБД. — 2013. — № 10. — С. 12–15. URL: http://www.osp.ru/os/2013/10/13039063 (дата обращения: 10.09.2016).
- Тимур Палташев, Илья Перминов. Гетерогенная архитектура для CPU, GPU и DSP // Открытые системы.СУБД. — 2013. — № 8. — С. 12–15. URL: http://www.osp.ru/os/2013/08/13037850 (дата обращения: 18.09.2016).
Михаил Кузьминский ( kus@free.net ) — сотрудник, Институт органической химии РАН. Работа поддержана РФФИ ( проект 16-07-01227).