Використання векторних інструкцій мікропроцесора 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##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2025 В.І. Голота, В.М. Грига, Т.Г. Бенько, А.В. Моргун

Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.