Команда исследователей под руководством Чэнь Моханя из Пекинского университета адаптировала 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 заявляет, что опыт настройки может быть использован для другого научного программного обеспечения.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Pandaily




