Эльбрус-8С в суперкомпьютерных приложениях вычислительной газовой динамики
Следи за успехами России в Телеграм @sdelanounas_ruКамрад krom63 нашел в сети документ «Производительность процессора Эльбрус-8С в суперкомпьютерных приложениях вычислительной газовой динамики» и поделился ссылкой на него на тематическом форуме сайта ixbt.com.
В статье приводятся результаты тестирования процессора Эльбрус-8С в составе компьютера Эльбрус-801 по сравнению с микропроцессорами Интел и AMD.
Тестирования осуществлялось на программных комплексах предназначенных для вихреразрешающего трехмерного моделирования задач газовой динамики и аэроакустики на неструктурированных гибридных сетках.
(статья приводится с сокращениями, полный вариант статьи по ссылке ниже)
Программный комплекс NOISEtte
Основной областью приложений NOISEtte является суперкомпьютерное моделирование задач аэродинамики и аэроакустики, характерных главным образом для авиационно-космической отрасли.
Программный комплекс Tapir
Предназначен для расчета дозвуковых и сверхзвуковых течений вязкого сжимаемого газа. Дискретизация уравнений Навье-Стокса выполняется на основе метода конечного объема с определением значений сеточных функций в центрах масс элементов гибридной неструктурированной сетки.
Особенности архитектуры процессора Эльбрус-8С
Восьмиядерный процессор Эльбрус-8С принадлежит семейству архитектур VLIW. Каждое ядро может исполнять до 25 различных элементарных операций в одном такте. Структура широкой команды (ШК) позволяет разместить:
— 1 команду передачи управления: переход, вызов, возврат;
— 3 команды предикатной логики;
— до 6 арифметико-логических операций: целочисленная, побитовая, сдвиговая и вещественная арифметика (в том числе комбинированная), обращения к памяти, сравнения, пересылки и тернарные операторы;
— 4 команды обращения к линейно-регулярным данным, включая инкремент соответствующего указателя;
— 1 команду управления цикловым счетчиком;
— 16 байт константных данных;
— команды управления регистровым окном.
Для вещественной арифметики имеется 6 арифметико-логических устройств с полностью конвейеризированными устройствами умножения и сложения формата FP32 и FP64, позволяющих запускать и завершать исполнение fmul*, fadd*/fsub*, комбинированные (состоящие из двух операций) fmul_add*/sub*/rsub* каждый такт.
Также имеется одно частично конвейеризированное устройство деления и квадратного корня, позволяющее запускать одну из операций fdiv*, fsqrt* один раз в 2 такта. Более подробно описание архитектуры представлено в [13, 14].
Подсистема памяти посредством 4 каналов DDR3 1600 обеспечивает предельный темп работы 51.2 GB/s. Иерархия кэш-памяти представлена
— кэшем данных первого уровня на каждое ядро, 64 KB, 4-way;
— кэшем инструкций первого уровня на каждое ядро, 128 KB, 4-way;
— кэшем второго уровня на каждое ядро, 512 KB, 4-way;
— инклюзивным общим для 8 ядер кэшем третьего уровня, 16 MB, 16-way.
Процессоры можно объединять в NUMA-систему до 4 процессоров, для связи между которыми используются линки пропускной способностью до 8 GB/s в каждом направлении.
Для сравнительного тестирования выбраны несколько западных аналогов процессора Эльбрус-8С. Среди них два близких по характеристикам процессора, также работающих с памятью DDR3 и выполненных по техпроцессу 22 нм и более: AMD Opteron 6276, ядро Interlagos; Intel Xeon E5- 2650v2, ядро Ivy Bridge. Также присутствуют процессоры Intel из числа наиболее современных на данный момент, работающих с памятью DDR4 и сделанных по техпроцессу 14 нм: Intel Xeon E5-2683v4, ядро Broadwell, и Intel Xeon Platinum 8160, ядро Skylake. В таблице 3 приведены количество ядер, тактовая частота (ГГц), пиковая производительность (GFLOPS), пропускная способность памяти (GB/s), энергопотребление (Вт), техпроцесс (нм).
Параллельное ускорение.
Данное измерение показывает, во сколько раз ускоряется расчет на многоядерном процессоре в многопоточном режиме с OpenMP распараллеливанием относительно последовательного исполнения на том же процессоре. Результаты ускорения на 8 ядрах представлены в таблице 4. Ускорение на процессоре Эльбрус-8С, 5-6 раз, в целом хорошо соответствует западным аналогам. У большинства процессоров можно отметить слабое ускорение операций с низкой вычислительной интенсивностью, ограниченных пропускной способностью памяти (SpMV, Grad). При этом Skylake демонстрирует одинаково высокое ускорение на всех операциях, благодаря более мощной подсистеме памяти, имеющей 6 каналов DDR4.
Сравнение одиночного ядра.
В этом тесте сравнивается производительность вычислений в последовательном режиме. Результаты, представленные в таблице 5, показывают соотношение производительности с процессором Эльбрус-8С, скорость работы которого принята за единицу. На коде NOISEtte разница с процессорами Intel составила около 3 раз. В пересчете производительности на такт это соответствует разнице около полутора раз (поскольку у процессоров Intel частота примерно вдвое выше). Относительно AMD проигрыш составил около 1.4 раз. Важно отметить, что NOISEtte имеет существенно более сложную реализацию и логику работы (вычислительная часть порядка десятка тысяч строк), чем Tapir (порядка тысячи строк). Для большинства ресурсоемких операций NOISEtte не выполнялось никакой специальной адаптации к архитектуре Эльбрус. Для Tapir была выполнена сравнительно несложная адаптация вычислений под архитектуру Эльбрус, описанная выше в разделе 3. На коде Tapir разница с Intel составила всего около полутора раз. Таким образом, на данном приложении Эльбрус-8С демонстрирует более высокую производительность на такт, чем аналоги Intel. Ядро AMD оказалось медленнее Эльбруса примерно в полтора раза.
Сравнение производительности на 8 ядрах.
В этом тесте сравнивается производительность вычислений в многопоточном режиме на одинаковом с Эльбрус-8С числе ядер. В параллельном режиме уже существенное влияние на результат оказывает производительность подсистемы памяти, поскольку 8 потоков могут полностью исчерпывать пропускную способность памяти. Результаты по соотношению с Эльбрусом показаны в таблице 6. Сравнивая с таблицей 5, можно отметить, что на коде NOISEtte соотношение изменилось в пользу Эльбруса. В этом тесте Эльбрус обгоняет AMD на обоих кодах. Для кода Tapir разница с Intel составила около 2 раз.
Сравнение всего процессора.
В этом тесте сравнивается производительность вычислений в многопоточном режиме на всех ядрах процессора. Результаты приведены в таблице 7.
Процессор AMD смотрится заметно слабее Intel. 8-ядерный Эльбрус-8С обгоняет на коде Tapir этот 16- ядерный процессор. 16- и 24-ядерные процессоры Intel за счет высокого OpenMP ускорения заметно прибавили относительно 8-ядер, разница с Эльбрусом составила уже примерно 3-7 раз.
Производительность вычислений.
Для измерения фактической производительности было посчитано число арифметических операций в коде Tapir. Также в качестве примера операции, сильно ограниченной пропускной способностью памяти, была выбрана операция NOISEtte SpMV, имеющая наименьшую вычислительную интенсивность из рассматриваемых — около 0.2 FLOP на байт, что примерно в 10 раз ниже, чем у кода Tapir. Результаты представлены в таблице 8, в которой также приводится процент от теоретического пика устройств.
Из результатов видно, что на SpMV достигается заметно меньший процент от пика, поскольку пик по числу арифметических операций у процессоров многократно превосходит пропускную способность памяти. Соотношение производительности и пропускной способности можно оценить по таблице 3.
Также можно отметить низкий процент от пика у Skylake, который имеет учетверенное число операций на такт по сравнению с предшественником Broadwell. Можно сделать вывод, что на рассматриваемом типе алгоритмов, в основном в силу ограничений пропускной способности памяти, удвоение числа векторных арифметических устройств и расширение в 2 раза векторных регистров не дало прироста производительности.
Заключение
Производительность вычислений на многоядерных процессорах Эльбрус8С была исследована на реальных приложениях вычислительной газовой динамики. Использовались два программных комплекса для моделирования сжимаемых течений на неструктурированных сетках, NOISEtte [6] и Tapir [11].
Рассматривались несколько моделей процессоров Intel Xeon, от моделей 5- летней давности до наиболее современных. Чудес, конечно, не бывает, Эльбрус ожидаемо оказался медленнее процессоров Intel. Проигрыш по производительности ядра составил в среднем 2.6 раза для кода NOISEtte и 1.5 раза для кода Tapir. Это представляется достаточно хорошим результатом, учитывая, что тактовая частота Эльбрус-8С примерно вдвое ниже,
Для сравнения был рассмотрен 16-ядерный процессор AMD Opteron 6276 примерно 5-летней давности. Этот процессор проиграл соответствующему по времени 8-ядерному Intel Ivy Bridge примерно в 2 раза. На коде NOISEtte 8- ядерный Эльбрус-8С с частотой 1.3 ГГц оказался медленнее 16-ядерного процессора AMD с частотой 2.3 ГГц всего в 1.4 раза, а на коде Tapir Эльбрус обогнал AMD на 12%.
Также стоит отметить, что у процессоров Intel на данном типе приложений наблюдается отсутствие роста производительности ядра. Более того, современное ядро Intel Skylake оказалось на 20% медленнее ядра Intel Ivy Bridge 5-летней давности. Расширение векторных регистров и удвоение числа арифметических устройств не дало прироста производительности (с использованием только средств автоматической векторизации компилятора), в силу ограниченной пропускной способности памяти. Рост производительности современных процессоров связан в основном с увеличением числа ядер.
В то же время у процессора Эльбрус-8C производительность ядра относительно предыдущего поколения Эльбрус-4С выросла примерно в полтора раза. Это позволяет надеяться, что с выходом следующего поколения процессоров Эльбрус-16C отставание еще сократится. Ожидается, что следующая модель, выпуск которой запланирован на 2022 год, будет иметь 16 ядер, работающих на частоте 2 ГГц. Предполагается использование от 4 до 8 каналов памяти DDR4-2666, что может увеличить пропускную способность подсистемы памяти более чем в 3 раза. Также существенный вклад в рост производительности может внести дальнейшее совершенствование оптимизирующего компилятора.
Кстати, а вы знали, что на «Сделано у нас» статьи публикуют посетители, такие же как и вы? И никакой премодерации, согласований и разрешений! Любой может добавить новость. А лучшие попадут в телеграмм @sdelanounas_ru. Подробнее о том как работает наш сайт здесь👈
29.08.1812:36:21
29.08.1813:58:54
29.08.1818:19:34
29.08.1817:25:09
29.08.1818:06:27
29.08.1818:35:26
29.08.1818:41:29
29.08.1819:45:40
21.09.1813:00:54
29.08.1820:07:42
30.08.1813:58:49
21.09.1813:02:14
31.08.1801:53:25
08.09.1803:19:09
21.09.1813:04:15