Команда Пекинского университета портировала ПО ABACUS для DFT на Huawei Kunpeng 920, добившись ускорения до 10,7 раз

Huawei Kunpeng Abacus Dft оптимизация производительность pandaily.com

Команда Пекинского университета портировала пакет DFT ABACUS на Huawei Kunpeng 920 и оптимизировала 19 основных операторов, добившись ускорения в 1,3–3,9 раза по сравнению с обычным процессором x86 при 28 ядрах.

Команда исследователей под руководством Чэнь Моханя из Пекинского университета адаптировала ABACUS, пакет с открытым исходным кодом для теории функционала плотности (DFT), разработанный в Китае, для полной линейки процессоров Huawei Kunpeng 920 и оптимизировала 19 классов основных операторов, сообщила Huawei Computing 31 октября, по данным IT Home. Код был размещен в репозитории проекта на GitHub.

DFT — основной метод первых принципов для изучения свойств материалов, таких как полупроводники и металлы. ABACUS разрабатывается совместно несколькими учреждениями и насчитывает более 1000 пользователей в более чем 100 организациях.

По данным команды, при одинаковой конфигурации с 28 ядрами, каждое из которых выполняет 28 однопоточных процессов, сборка Kunpeng 920 с использованием набора инструкций SVE работала в 1,3–3,9 раза быстрее, чем стандартный процессор x86, на стандартном наборе из 10 материальных систем с количеством атомов от 8 до 216, включая GaAs, MoS2, BaTiO3, железо и кремний. Сборка с использованием блока матричных вычислений чипа работала до 10,7 раз быстрее при использовании всех ядер одного узла. Для стохастических случаев DFT команда сообщает об ускорении в 2,8–3,1 раза для SVE и в 6,1–20,1 раза для матричной сборки.

Сначала была проведена портирование. Различные модели Kunpeng 920 поддерживают векторные инструкции NEON, SVE или SVE512, а также выделенный матричный блок, но общие параметры компилятора оставляют их неиспользуемыми. Команда создала отдельные инструментальные цепочки, использовала gcc с OpenMPI и OpenBLAS для сборок NEON и SVE, а clang с HMPI и KBLAS от Huawei для остальных, и добавила опцию USE_KML для подключения библиотеки Kunpeng Math Library. Все сборки прошли интеграционные тесты ABACUS, охватывающие DFT на основе плоских волн и LCAO Kohn-Sham, стохастический DFT и DeePKS, с результатами, соответствующими основным реализациям.

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

Используя автоматическую оптимизацию исходного кода в Huawei DevKit, команда также ускорила обработку случая с 8 атомами углерода в теплом плотном состоянии в 2,28 раза и случая с 512 атомами кремния в 2,66 раза на более новой модели Kunpeng 920. Huawei заявляет, что опыт настройки может быть использован для другого научного программного обеспечения.

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

Похожие новости: