О проблемах использования библиотеки OpenBLAS в продуктовом коде на RISC-V
https://doi.org/10.15514/ISPRAS-2022-35(5)-7
Аннотация
Использование для численного решения задач механики сплошной среды метода граничных элементов приводит к необходимости решения системы линейных алгебраических уравнений с заполненной матрицей. Cтандартами де-факто интерфейса программных реализаций функций над заполненными матрицами являются BLAS/LAPACK. Среди оптимизированных открытых реализаций BLAS/LAPACK, только библиотека OpenBLAS включает в себя оптимизации под самый широкий спектр аппаратных платформ – Intel, AMD, ARM и RISC-V. Экосистема открытой архитектуры RISC-V в настоящее время активно развивается: европейские суперкомпьютерные центры открыли центры компетенции RISC-V в рамках правительственной грантовой поддержки EuroHPC, поскольку решения, основанные на архитектуре ARM, не были признаны частью европейской инициативы по развитию собственной технологической независимости. В настоящее время в мире разрабатываются не только высокопроизводительные RISC-V процессоры, но и AI-ускорители, а также видеокарты на RISC-V архитектуре. OpenBLAS активно поддерживается и оптимизируется под появляющееся RISC-V оборудование и расширения. Однако, к библиотекам, использующимся в продуктовом коде, традиционно предъявляются серьезные требования по стабильности и надежности, чтобы минимизировать возможные ошибки и сбои в продукте. Как оказалось, с этой точки зрения, OpenBLAS имеет ряд проблем, которые нам пришлось решить с целью продуктизации этой библиотеки. В данной статье описывается тестовая система OpenBLAS, рассматриваются проблемы тестирования LAPACK-функционала библиотеки и пути их решения. Кроме того, анализируется тестовое покрытие BLAS-функционала и обсуждаются достигнутые результаты по его увеличению. В дальнейшем планируется внести описанные изменения в проект OpenBLAS.
Об авторах
Ксения Алексеевна ЗАЙЦЕВАРоссия
Является младшим инженером-программистом Департамента разработки высокопроизводительных библиотек компании YADRO. Ее научные интересы включают низкоуровневые оптимизации, генераторы случайных чисел.
Валерия Валентиновна ПУЗИКОВА
Россия
Кандидат физико-математических наук, эксперт по разработке программного обеспечения Департамента разработки высокопроизводительных библиотек компании YADRO. Сфера научных интересов: решатели и предобуславливатели СЛАУ, разработка прикладных математических программ, вычислительная гидродинамика, физические движки для AR/VR, высокопроизводительные вычисления, численные методы.
Андрей Дмитриевич СОКОЛОВ
Россия
Является инженером-программистом Департамента разработки высокопроизводительных библиотек компании YADRO. Его научные интересы включают разработку и тестирование математических библиотек, низкоуровневые оптимизации, вычисления на GPU, сверточные нейронные сети.
Список литературы
1. Charpa S., Canale R. Numerical Methods for Engineers. McGraw Hill, 2014. 992 p.
2. Moin P. Fundamentals of Engineering Numerical Analysis. Cambridge University Press, 2010. 256 p.
3. Zienkiewicz O. C., Taylor R. L. The Finite Element Method: Its Basis and Fundamentals. Butterworth-Heinemann, 2013. 756 p.
4. Katsikadelis J. T. The Boundary Element Method for Engineers and Scientists, Second Edition: Theory and Applications. Academic Press, 2016. 464 p.
5. Brebbia C. A., Walker S. Boundary Element Techniques in Engineering. Newnes, 2016. 210 p.
6. Gwinner J., Stephan E. P. Advanced Boundary Element Methods: Treatment of Boundary Value, Transmission and Contact Problems. Springer, 2018. 670 p.
7. Garney S., Heroux M. A., Li G., Pozo R., Remington K. A., Wu K. A Revised Proposal for a Sparse BLAS Toolkit, Available at: https://sdm.lbl.gov/~kewu/ps/SparseBLAS96.pdf, accessed 23.10.2023.
8. Saad Y., Iterative Methods for Sparse Linear Systems. Society for Industrial and Applied Mathematics, 2003. 184 p.
9. Lawson C. L., Hanson R. J., Kincaid D. R., Krogh F. Basic linear algebra subprograms for FORTRAN usage. ACM Transactions on Mathematical Software, vol. 5, issue 3, 1979, pp. 308-323. DOI: 10.1145/355841.355847.
10. Anderson E., Bai Z., Bischof C., Blackford S., Demmel J., Dongarra J., Croz J. D., Greenbaum A., Hammarling S., McKenney A., Sorensen D. LAPACK Users’ Guide. Society for Industrial and Applied Mathematics, 1987. 429 p.
11. BEM++, Available at: https://github.com/bempp/bempp-legacy/tree/master, accessed 23.10.2023.
12. Лукашин П.С., Стрижак С.В., Щеглов Г.А. Тестирование возможностей открытого кода BEM++ по решению задач акустики. Труды ИСП РАН, том 29, вып. 1, 2017, стр. 39-52. / Lukashin P.S., Strijhak S.V., Shcheglov G.A. Validation of open-source BEM++ code for simulation of acoustics problems. Trudy ISP RAN/Proc. ISP RAS, vol. 29, issue 1, 2017, pp. 39-52 (in Russian).
13. OpenBLAS, Available at: https://github.com/OpenMathLib/OpenBLAS, accessed 23.10.2023.
14. Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms, Available at: https://gitlab.com/libeigen/eigen, accessed 23.10.2023.
15. Armadillo: C++ Library for Linear Algebra & Scientific Computing, Available at: https://gitlab.com/conradsnicta/armadillo-code, accessed 23.10.2023.
16. Cui E., Li T., Wei Q. RISC-V Instruction Set Architecture Extensions: A Survey. IEEE Access, 2023, pp. 1-16. DOI: 10.1109/ACCESS.2023.3246491.
17. The European High Performance Computing Joint Undertaking (EuroHPC JU), Available at: https://eurohpc-ju.europa.eu/index_en, accessed 23.10.2023.
18. Occamy, Available at: https://pulp-platform.org/occamy/, accessed 23.10.2023.
19. The EUPILOT Project, Available at: https://eupilot.eu/, accessed 23.10.2023.
20. PRIMME: PReconditioned Iterative MultiMethod Eigensolver, Available at: https://github.com/primme/primme, accessed 23.10.2023.
21. BLAS-Tester, Available at: https://github.com/xianyi/BLAS-Tester, accessed 23.10.2023.
22. T-HEAD GNU Compiler Toolchain, Available at: https://github.com/T-head-Semi/xuantie-gnu-toolchain, accessed 23.10.2023.
23. LCOV, Available at: https://github.com/linux-test-project/lcov, accessed 23.10.2023.
Рецензия
Для цитирования:
ЗАЙЦЕВА К.А., ПУЗИКОВА В.В., СОКОЛОВ А.Д. О проблемах использования библиотеки OpenBLAS в продуктовом коде на RISC-V. Труды Института системного программирования РАН. 2023;35(5):91-106. https://doi.org/10.15514/ISPRAS-2022-35(5)-7
For citation:
ZAYTSEVA K.A., PUZIKOVA V.V., SOKOLOV A.D. On Problems in OpenBLAS Library Usage in Productized Code on RISC-V. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2023;35(5):91-106. (In Russ.) https://doi.org/10.15514/ISPRAS-2022-35(5)-7