Використання векторних інструкцій мікропроцесора x86-64 в задачах лінійної алгебри

Автор(и)

DOI:

https://doi.org/10.15330/itee.2025.2.04

Ключові слова:

мікропроцесор x86-64, технології обчислень, асемблер NASM, векторні інструкції, метод Жордана-Гауса

Анотація

У роботі показано використання векторних інструкцій AVX при розв'язанні задач лінійної алгебри.  Розроблено алгоритми і бібліотеку функцій на мові асемблера NASM для векторних арифметичних операцій (додавання, множення) та розв’язування систем лінійних алгебраїчних рівнянь методом Жордана-Гауса.

Порівняно швидкодію розроблених програм із використанням векторної SIMD і скалярної SISD технологій при розв’язування систем лінійних алгебраїчних рівнянь різної розмірності. За результатами експериментів отримно  прискорення обчислень від 5 до 6 разів при використанні вектроних інструкцій AVX.

Посилання

Гулий М. В. Особливості використання векторних інструкцій 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.

##submission.downloads##

Опубліковано

2025-06-27

Як цитувати

Голота, В.І., et al. «Використання векторних інструкцій мікропроцесора x86-64 в задачах лінійної алгебри». Інформаційні технології та інженерна електроніка, вип. 2, Червень 2025, с. 33-43, doi:10.15330/itee.2025.2.04.