Компілятор з підтримкою SIMD AVX для високошвидкісної обробки даних і оптимізації обчислень

Вантажиться...
Ескіз

Дата

2024

Назва журналу

Номер ISSN

Назва тому

Видавець

КПІ ім. Ігоря Сікорського

Анотація

Актуальність теми обумовлена у зростаючій потребі у високоефективних обчисленнях у сучасній індустрії програмування. Завдяки розвитку обчислювальних систем та збільшенню обсягів даних зростає попит на методи оптимізації, що дозволяють підвищувати продуктивність програм. Розробка компілятора з підтримкою SIMD AVX стає актуальною, оскільки дозволяє автоматизувати та поліпшити швидкодію обчислень за рахунок оптимізованої генерації коду. Це відкриває можливості для створення більш ефективних програм у сферах обробки великих об'ємів даних, наукових розрахунків та інших обчислювально інтенсивних областях, де швидкість виконання має вирішальне значення. Об'єктом дослідження є сам процес розробки компілятора з підтримкою SIMD AVX для оптимізації обчислень. Це включає в себе всі аспекти створення програмного забезпечення, починаючи від розробки власної мови програмування та закінчуючи реалізацією та тестуванням компілятора. Предметом дослідження є використання SIMD AVX інструкцій для оптимізації обчислень у реалізованому компіляторі. Досліджується можливість та ефективність використання векторизації в процесі перетворення коду на C++, отриманого з використанням власної мови програмування, з метою підвищення швидкодії виконання програм. Метою роботи є розробка та дослідження компілятора, який може автоматично оптимізувати обчислювальний код, перетворюючи його на код, який використовує технології SIMD AVX з метою підвищення продуктивності обчислень на сучасних процесорах; розробка інструменту, який допоможе розробникам автоматично використовувати потужності SIMD AVX для оптимізації свого коду, що може бути корисним у великому спектрі застосувань, включаючи графічну обробку, обробку великих обсягів даних та наукові обчислення. Методи дослідження. В роботі використовуються такі методи дослідження як аналіз, експеримент, вимірювання та порівняння. Наукова новизна полягає в наступному: 1. Реалізація компілятора, який автоматично оптимізує код з використанням SIMD AVX інструкцій, буде вважатися досягненням, оскільки такі інструменти не є стандартними у світі програмування. 2. Встановлення найбільш ефективних методів використання SIMD AVX інструкцій для покращення швидкодії обчислень у власному компіляторі. Практична цінність даної роботи полягає в тому, що в рамках дослідження буде розроблено компілятор, який дозволятиме автоматично оптимізувати обчислювальний код для використання технологій SIMD AVX, що відкриває широкі можливості для підвищення продуктивності програм. Ця розробка може значно скоротити час, необхідний для розробки оптимізованого коду, а також дозволить розробникам ефективно використовувати потужність мультиядерних процесорів, зменшуючи залежність від конкретної апаратної архітектури. Такий компілятор може знайти застосування в різних галузях, включаючи графічну обробку, обробку великих обсягів даних, наукові дослідження та інші галузі, де продуктивність обчислень має велике значення.. Апробація роботи. Основні положення і результати роботи були представлені та обговорювались на науковій конференції магістрантів та аспірантів «Прикладна математика та комп’ютинг» ПМК-2023 (Київ, 28-30 листопада 2023 р.). Також, теза буде обговорена під час 6-ї Міжнародної наукової студентської конференції (Харків, 19 січня, 2024 року). Структура та обсяг роботи. Магістерська дисертація складається з вступу, п’яти розділів та висновків. У вступі подано загальну характеристику роботи, зроблено оцінку сучасного стану проблеми, обґрунтовано актуальність напряму досліджень, сформульовано мету і задачі досліджень, показано наукову новизну отриманих результатів і практичну цінність роботи. Перший розділ: теоретичні аспекти SIMD та AVX; опис понять векторизації, SIMD інструкції, їх призначення, принципи роботи та приклади використання. Другий розділ: будова та методи побудови компілятора; огляд компілятора, розгляд структури та компонентів компілятора, а також методів побудови. Третій розділ: створення мови програмування та лексики; опис створення власної мови програмування, правила лексичного аналізу та структури коду. Четвертий розділ: реалізація та оптимізація компілятора з підтримкою SIMD AVX; опис процесу створення компілятора з використанням SIMD AVX інструкцій. П’ятий розділ: тестування та порівняння продуктивності; порівняльний аналіз швидкодії оптимізованого коду зі стандартним, використання тестових сценаріїв та аналіз результатів. Висновки: узагальнення результатів дослідження; висновки щодо ефективності використання SIMD AVX в компіляторі та можливі напрямки подальших досліджень. Робота виконана на 83 аркушах, містить 2 додатки та посилання на список використаних літературних джерел з 13 найменувань. У роботі наведено 29 рисунків та 17 таблиць.

Опис

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

SIMD, AVX, компілятор, векторизація, підвищення продуктивності, compiler, vectorization, performance improvement

Бібліографічний опис

Трофімцов, Д. С. Компілятор з підтримкою SIMD AVX для високошвидкісної обробки даних і оптимізації обчислень : магістерська дис. : 123 Комп'ютерна інженерія / Трофімцов Дмитро Сергійович. – Київ, 202. – 80 с.

DOI