ВЕКТОРИЗАЦИЯ ПЕРЕМНОЖЕНИЯ МАЛОРАЗМЕРНЫХ МАТРИЦ СПЕЦИАЛЬНОГО ВИДА С ИСПОЛЬЗОВАНИЕМ ИНСТРУКЦИЙ AVX-512

  • Леонид Александрович Бендерский Научно-исследовательский институт системных исследований Российской академии наук http://orcid.org/0000-0003-0529-3255
  • Алексей Анатольевич Рыбаков Научно-исследовательский институт системных исследований Российской академии наук http://orcid.org/0000-0002-9755-8830
  • Сергей Сергеевич Шумилин Научно-исследовательский институт системных исследований Российской академии наук http://orcid.org/0000-0002-3953-7054

Аннотация

Современные расчетные пакеты для проведения суперкомпьютерных вычислений крайне требовательны к ресурсам, поэтому остро стоит вопрос повышения их производительности. В то же время появление новых аппаратных архитектур открывает новые возможности по оптимизации программного кода. Набор инструкций AVX-512, появившийся впервые в 2016-м году в микропроцессорах Intel Xeon Phi второго поколения, является мощным инструментом для создании высокопроизводительного параллельного кода. Набор инструкций AVX-512 обладает рядом особенностей, среди которых специальные регистры масок, позволяющие отбирать отдельные элементы векторов для обработки, комбинированные арифметические операции, операции чтения из памяти элементов данных с произвольными смещениями, векторные трансцендентные операции, многообразие операций перемешивания элементов векторов. Эти и многие другие уникальные возможности позволяют достигать кратного ускорения на наиболее важных участках расчетных кодов. Отдельные численные методы оперируют специальными объектами, эффективность обработки которых критически влияет на эффективность всего пакета. Для расчетных кодов RANS/ILES, предназначенных для расчета нестационарных турбулентных течений, такими специфическими объектами являются матрицы размера 5x5, расположенные внутри матриц размера 8x8 в качестве подматриц. Основной операцией для работы с такими матрицами является их перемножение. В статье рассматривается эффективный подход к векторизации перемножения матриц размера 8x8, а также проводится исследование, как понижение размера матриц влияет на эффективность векторизации. Предложенный подход реализован с помощью специальных функций-инстринсиков, и его эффективность проверена экспериментами, проведенными на суперкомпьютере, находящимся в МСЦ РАН.

Сведения об авторах

Леонид Александрович Бендерский, Научно-исследовательский институт системных исследований Российской академии наук

старший научный сотрудник, Межведомственный суперкомпьютерный центр Российской академии наук, филиал

Алексей Анатольевич Рыбаков, Научно-исследовательский институт системных исследований Российской академии наук

кандидат физико-математических наук, ведущий научный сотрудник, Межведомственный суперкомпьютерный центр Российской академии наук, филиал 

Сергей Сергеевич Шумилин, Научно-исследовательский институт системных исследований Российской академии наук

ведущий инженер, Межведомственный суперкомпьютерный центр Российской академии наук, филиал

Литература

[1] Lyubimov D.A. Development and Application of a High-Resolution Technique for Jet Flow Computation Using Large Eddy Simulation. High Temperature. 2012; 50(3):420-436. DOI: 10.1134/S0018151X12020101
[2] Benderskii L.A., Lyubimov D.A., Chestnykh A.O., Shabanov B.M., Rybakov A.A. The Use of the RANS/ILES Method to Study the Influence of Coflow Wind on the Flow in a Hot, Nonisobaric, Supersonic Airdrome Jet during Its Interaction with the Jet Blast Deflector. High Temperature. 2018; 56(2):247-254. DOI: 10.1134/S0018151X18020037
[3] Lyubimov D.A. Investigation of the Effect of a Pylon and a Wing with Flaps on the Flow within an Exhaust Jet of a Double-Flow Turbojet Engine by a Simulation Method for Large Eddies. High Temperature. 2013; 51(1):111-127. DOI: 10.1134/S0018151X12050100
[4] Lyubimov D.A., Potekhina I.V. A study of unsteady-state operating conditions of a supersonic inlet by the RANS/ILES method. High Temperature. 2016; 54(5):737-744. DOI: 10.1134/S0018151X16050187
[5] Lyubimov D., Maslov V., Mironova A., Secundov A., Zakharov D. Experimental and Numeric Investigation of Jet Flap Interaction Effects. International Journal of Aeroacoustics. 2014; 13(3-4):275-302. DOI: 10.1260/1475-472X.13.3-4.275
[6] Benderskij L.A., Lyubimov D.A., Rybakov A.A. Scaling of fluid dynamic calculations using the RANS/ILES method on supercomputer. Trudy NIISI RAN. 2017; 7(4):32-40. DOI: 10.25682/NIISI.2018.4.9975 (In Russian).
[7] Rybakov A. Inner representation and crossprocess exchange mechanism for block-structured grid for supercomputer calculations. Program systems: Theory and applications. 2017; 8:1(32):121–134. (In Russian) DOI: 10.25209/2079-3316-2017-8-1-121-134
[8] Klenk B., Fröning H. An Overview of MPI Characteristics of Exascale Proxy Applications. J. M. Kunkel et al. (Eds.) ISC High Performance 2017. LNCS. Vol. 10266, pp. 217–236, 2017. DOI: 10.1007/978-3-319-58667-0_12
[9] Roganov V., Osipov V., Matveev G. Solving the 2D Poisson PDE by Gauss-Seidel method with parallel programming system OpenTS. Program systems: theory and applications. 2016; 7:3(30):99–107. (In Russian) DOI: 10.25209/2079-3316-2016-7-3-99-107
[10] Dorris J., Kurzak J., Luszczek P. Task-Based Cholesky Decomposition on Knights Corner Using OpenMP. M. Taufer et al. (Eds.) ISC High Performance Workshops 2016. LNCS. Vol. 9945, pp. 544–562, 2016. DOI: 10.1007/978-3-319-46079-6_37
[11] Krause M.J., Förster B., Mink A., Nirschl H. Towards Solving Fluid Flow Domain Identification Problems with Adjoint Lattice Boltzmann Methods. W. E. Nagel et al. (Eds.) High Performance Computing in Science and Engineering'16. Springer, Cham, pp. 337-353, 2016. DOI 10.1007/978-3-319-47066-5_23
[12] Golovchenko E., Dorofeeva E., Gasilova I., Boldareva A. Numerical Experiments with New Algorithms for Parallel Decomposition of Large Computational Meshes. Advances in Parallel Computing. 2014; 25:441-450. DOI: 10.3233/978-1-61499-381-0-441
[13] Petrov M.N., Titarev V.A., Utyuzhnikov S.V., Chikitkin A.V. A multithreaded OpenMP implementation of the LU-SGS method using the multilevel decomposition of the unstructured computational mesh. Computational Mathematics and Mathematical Physics. 2017; 57(11):1856-1865. DOI: 10.1134/S0965542517110124
[14] Rybakov A.A. Distribution of computational load between nodes of a heterogeneous computing cluster. Programmnye produkty, sistemy i algoritmy. 2018; 1:26-32. (In Russian) DOI: 10.15827/2311-6749.26.300
[15] Chetverushkin B.N., Yakobovskiy M.V. Numerical algorithms and fault tolerance of hyperexascale computer systems. Doklady Mathematics. 2017; 95(1):7-11. DOI: 10.1134/S1064562417010021
[16] Krzikalla O., Wende F., Höhnerbach M. Dynamic SIMD Vector Lane Scheduling. M. Taufer et al. (Eds.) ISC High Performance Workshops 2016. LNCS. Vol. 9945, pp. 354–365, 2016. DOI: 10.1007/978-3-319-46079-6_25
[17] Dikarev N., Shabanov B., Shmelv A. Fused MultiplyAdders Using in Vector Dataflow Processor. Program systems: theory and applications. 2015; 6:4(27):227–241. (In Russian) DOI: 10.25209/2079-3316-2015-6-4-227-241
[18] McDoniel W., Höhnerbach M., Canales R. et al. LAMMPS' PPPM Long-Range Solver for the Second Generation Xeon Phi. J. M. Kunkel et al. (Eds.) ISC High Performance 2017. LNCS. Vol. 10266, pp. 61–78, 2017. DOI: 10.1007/978-3-319-58667-0_4
[19] Malas T., Kurth T., Deslippe J. Optimization of the Sparse Matrix-Vector Products of an IDR Krylov Iterative Solver in EMGeo for the Intel KNL Manycore Processor. M. Taufer et al. (Eds.) ISC High Performance Workshops 2016. LNCS. Vol. 9945, pp. 378–389, 2016. DOI: 10.1007/978-3-319-46079-6_27
[20] Cook B., Maris P., Shao M. High Performance Optimizations for Nuclear Physics Code MFDn on KNL. M. Taufer et al. (Eds.) ISC High Performance Workshops 2016. LNCS. Vol. 9945, pp. 366–377, 2016. DOI: 10.1007/978-3-319-46079-6_26
[21] Rybakov A.A. Optimization of the problem of conflict detection with dangerous aircraft movement areas to execute on Intel Xeon Phi. Programmnye produkty i sistemy = Software & Systems. 2017; 30(3):524-528. (In Russian) DOI: 10.15827/0236-235.X.030.3.524-528
[22] Bramas B. A Novel Hybrid Quicksort Algorithm Vectorized using AVX-512 on Intel Skylake. International Journal of Advanced Computer Science and Applications. 2017; 8(10):337-344. DOI: 10.14569/IJACSA.2017.081044
[23] Sokolov A.P., Shchetinin V.N., Sapelkin A.S. Strength surface reconstruction using special parallel algorithm based on Intel MIC (Intel Many Integrated Core) architecture. Program systems: theory and applications. 2016; 7:2(29):3–25. (In Russian) DOI: 10.25209/2079-3316-2016-7-2-3-25
[24] Intel Math Kernel Library. Available at: https://software.intel.com/en-us/mkl (accessed 17.05.2018).
[25] Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives. Available at: https://github.com/hfp/libxsmm (accessed 17.05.2018).
[26] Benderskij L.A., Leshchev S.A., Rybakov A.A. Vectorization of operations on small- dimensional matrices for intel xeon phi knights landing processor. Modern Information Technology and IT-education. 2018; 14(1):73-90. (In Russian) DOI: 10.25559/SITITO.14.201801.073-090
[27] Rybakov A.A., Telegin P.N., Shabanov B.M. Problems looping vectoring using instructions AVX-512. Programmnye produkty, sistemy i algoritmy. 2018(3):1-11. (In Russian) DOI: 10.15827/2311-6749.28.314
Опубликована
2018-09-30
Как цитировать
БЕНДЕРСКИЙ, Леонид Александрович; РЫБАКОВ, Алексей Анатольевич; ШУМИЛИН, Сергей Сергеевич. ВЕКТОРИЗАЦИЯ ПЕРЕМНОЖЕНИЯ МАЛОРАЗМЕРНЫХ МАТРИЦ СПЕЦИАЛЬНОГО ВИДА С ИСПОЛЬЗОВАНИЕМ ИНСТРУКЦИЙ AVX-512. Современные информационные технологии и ИТ-образование, [S.l.], v. 14, n. 3, p. 594-602, sep. 2018. ISSN 2411-1473. Доступно на: <http://sitito.cs.msu.ru/index.php/SITITO/article/view/424>. Дата доступа: 16 oct. 2024 doi: https://doi.org/10.25559/SITITO.14.201803.594-602.
Раздел
Параллельное и распределенное программирование, грид-технологии