Using vector instructions of the x86-64 microprocessor in linear algebra problems
DOI:
https://doi.org/10.15330/itee.2025.2.04Keywords:
x86-64 microprocessor, computing technologies, NASM assembler, vector instructions, Jordan-Gauss method.Abstract
The paper shows the use of AVX vector instructions when solving linear algebra problems. Algorithms and a library of functions in the NASM assembly language have been developed for vector arithmetic operations (addition, multiplication) and solving systems of linear equations using the Jordan-Gauss method.
The performance of the developed programs using vector SIMD and scalar SISD technologies when solving systems of linear algebraic equations of different dimensions has been compared. According to the results of the experiments, the calculation speedup is obtained from 5 to 6 times when using AVX vector instructions.
References
Гулий М. В. Особливості використання векторних інструкцій AVX при розв’язанні задач лінійної алгебри / М. В. Гулий // Вісник НТУУ «КПІ». Інформатика, управління та обчислювальна техніка. 2021. № 53. С. 45–51.
Intel® 64 and IA-32 Architectures Software Developer’s Manual. Volume 1:
Basic Architecture [Електронний ресурс]. Intel Corporation, 2023. URL: https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html.
Intel® 64 and IA-32 Architectures Software Developer’s Manual. Volume 2:
Instruction Set Reference, A-Z [Електронний ресурс]. Intel Corporation, 2023. URL: https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html.
Kusswurm D. Modern Parallel Programming with C++ and Assembly Language: X86 SIMD Development Using AVX, AVX2, and AVX-512 / D. Kusswurm. New York : Apress, 2022. 580 p.
Fog A. Optimizing subroutines in assembly language: An optimization guide for x86 platforms / A. Fog. Copenhagen University College of Engineering, 2023. 180 p.
Порєв В. М. Системне програмування. Програмування на асемблері: комп’ютерний практикум : навч. посіб. / В. М. Порєв ; КПІ ім. Ігоря Сікорського. Київ : КПІ ім. Ігоря Сікорського, 2022. 146 с.
Гальчинський Л. Ю. Архітектура комп’ютерних систем: мова асемблера : навч. посіб. / Л.Ю. Гальчинський, О. В. Козленко. Київ : КПІ ім. Ігоря Сікорського, 2022. 160 с.
Hyde R. The Art of 64-Bit Assembly, Volume 1: x86-64 Machine Organization and Programming / R. Hyde. San Francisco : No Starch Press, 2021. 1032 p.
Bartlett J. Learn to Program with Assembly: Foundational Learning for New Programmers / J. Bartlett. New York : Apress, 2021. 348 p.
Jo Van Hoey. Beginning x64 Assembly Programming, From Novice to AVX Professional. Apress, 2019. 432 p.
Sherwyn Allibang. Assembly Language: Simple, Short, and Straightforward Way of Learning Assembly Programming. Independently published, 2020. 160 p.
NASM - The Netwide Assembler: [Електронний ресурс]. URL: https://www.nasm.us.
MASM - Microsoft Macro Assembler reference: [Електронний ресурс]. URL: https://learn.microsoft.com/uk-ua/cpp/assembler/masm/microsoft-macro-assembler-reference?view=msvc-170.
GAS - the GNU assembler: [Електронний ресурс]. URL: https://www.gnu.org/software/binutils/.
Голота В. І. Методичні вказівки до виконання лабораторних робіт з дисципліни "Програмування мікроконтролерів"/ В. І. Голота // Фізико-технічний факультет; ПНУ. 2022. 227 с. URL: http://lib.pu.if.ua:8080/handle/123456789/14727.
Голота В. І. Методичні вказівки до виконання лабораторних робіт з дисципліни "Системне програмування. Асемблер х86-64". - Івано-Франківськ. - ПНУ. - 2024. - 208 с. URL: http://lib.pu.if.ua:8080/handle/123456789/21330.
Голота В. І. Курс лекцій з дисципліни "Системне програмування. Асемблер х86-64". Івано-Франківськ. ПНУ. 2024. 234 с. URL: http://lib.pu.if.ua:8080/handle/123456789/21327.
Зілінський Ю. В., Перекрест А. Л., Юдіна А. Л. Системне програмування. Програмування на ассеблері: навч. Посібник. Кременчук: Кременчуцький національний університет імені Михайла Остроградського, 2023. 258 с.
Системне програмування. Програмування на асемблері: комп'ютерний практикум [Електронний ресурс]: навч. посіб. для студ. освітньої програми «Комп'ютерні системи та мережі» спеціальності 123 «Комп'ютерна інженерія» / КПІ ім. Ігоря Сікорського; уклад. Порєв В.М. – Електронні текстові дані (1 файл: 3,2 МБайт). – Київ : КПІ ім. Ігоря Сікорського, 2022. 146 с. URL: https://ela.kpi.ua/handle/123456789/51573.
Методичні вказівки до виконання лабораторних робіт з дисципліни "Системне програмування" для студентів спеціальності 125 "Кібербезпека" всіх форм навчання – Частина 1 / Укл.: В.В. Шкарупило. – Київ: НУБіП, 2022. 42 с.
Методичні вказівки для виконання лабораторних робіт з дисципліни «Системне програмування» для студентів денної та заочної форми навчання розроблені у відповідності з навчальним планом спеціальності 123 «Комп’ютерна інженерія» / Уклад. Паламар А.М., Паламар М.І. – Тернопіль: ТНТУ, 2020. 70 с.
L. Bobrowski and C. Boldak, “Stepwise Inversion of Large Matrices with the Gauss-Jordan Vector Transformation,” J. Advances Math. Comput. Sci., pp. 28–39, Jan. 2022. doi: https://doi.org/10.9734/jamcs/2022/v37i130429.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2025 В.І. Голота, В.М. Грига, Т.Г. Бенько, А.В. Моргун

This work is licensed under a Creative Commons Attribution 4.0 International License.