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

dc.contributor.advisorКлятченко, Ярослав Михайлович
dc.contributor.authorТрофімцов, Дмитро Сергійович
dc.date.accessioned2024-02-09T05:59:22Z
dc.date.available2024-02-09T05:59:22Z
dc.date.issued2024
dc.description.abstractАктуальність теми обумовлена у зростаючій потребі у високоефективних обчисленнях у сучасній індустрії програмування. Завдяки розвитку обчислювальних систем та збільшенню обсягів даних зростає попит на методи оптимізації, що дозволяють підвищувати продуктивність програм. Розробка компілятора з підтримкою 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 таблиць.
dc.description.abstractotherThe relevance of the topic is due to the growing need for high-performance computing in the modern programming industry. Due to the development of computer systems and the increase in data volumes, the demand for optimization methods that allow increasing the productivity of programs is increasing. The development of a compiler with SIMD AVX support becomes relevant, as it allows to automate and improve the speed of calculations due to optimized code generation. This opens up opportunities to create more efficient programs in the areas of processing large volumes of data, scientific calculations and other computationally intensive areas where execution speed is crucial. The object of research is the very process of developing a compiler with SIMD AVX support for optimization of calculations. This includes all aspects of software development, from developing your own programming language to implementing and testing the compiler. The subject of the research is the use of SIMD AVX instructions to optimize calculations in the implemented compiler. The possibility and efficiency of using vectorization in the process of converting the code to C++, obtained using a proprietary programming language, in order to increase the speed of program execution is being investigated. The research objective is the development and research of a compiler that can automatically optimize computing code, turning it into code that uses SIMD AVX technologies in order to improve computing performance on modern processors; development of a tool to help developers automatically use the power of SIMD AVX to optimize their code, which can be useful in a wide range of applications, including graphics, big data processing, and scientific computing. Research methods. The work uses such research methods as analysis, experiment, measurement and comparison. The scientific novelty consists in the following: 1. Implementing a compiler that automatically optimizes code using SIMD AVX instructions would be considered an achievement, as such tools are not standard in the programming world. 2. Establishing the most effective methods of using SIMD AVX instructions to improve the speed of calculations in your own compiler. The practical value of this work lies in the fact that, as part of the research, a compiler will be developed that will allow automatic optimization of the computational code for the use of SIMD AVX technologies, which opens wide opportunities for increasing the performance of programs. This development can significantly reduce the time required to develop optimized code, and also allow developers to effectively use the power of multi-core processors, reducing dependence on a specific hardware architecture. Such a compiler can find applications in various fields, including graphics processing, processing large volumes of data, scientific research, and other fields where computational performance is of great importance. Approbation of work. The main provisions and results of the work were presented and discussed at the scientific conference of master's and postgraduate students "Applied mathematics and computing" PMK-2023 (Kyiv, November 28-30, 2023). Structure and scope of work. The master's thesis consists of an introduction, five chapters and conclusions. The introduction provides a general description of the work, assesses the current state of the problem, substantiates the relevance of the research direction, formulates the goal and objectives of the research, shows the scientific novelty of the obtained results and the practical value of the work, provides information on the approbation of the results and their implementation. First chapter: theoretical aspects of SIMD and AVX; description of concepts of vectorization, SIMD instructions, their purpose, principles of operation and examples of use. The second section: the structure and methods of building the compiler; an overview of the compiler, a review of the structure and components of the compiler, as well as construction methods. The third section: creation of a programming language and vocabulary; description of creating your own programming language, lexical analysis rules and code structure. The fourth chapter: implementation and optimization of the compiler with SIMD AVX support; description of the process of creating a compiler using SIMD AVX instructions. The fifth chapter: Performance Testing and Comparison; comparative analysis of the speed of the optimized code with the standard one, use of test scenarios and analysis of the results. Conclusions: generalization of research results; conclusions regarding the efficiency of using SIMD AVX in the compiler and possible directions for further research. The work is completed on 83 sheets, contains 2 appendices and links to the list of used literary sources from 13 titles. The work contains 19 figures and 17 tables.
dc.format.extent80 с.
dc.identifier.citationТрофімцов, Д. С. Компілятор з підтримкою SIMD AVX для високошвидкісної обробки даних і оптимізації обчислень : магістерська дис. : 123 Комп'ютерна інженерія / Трофімцов Дмитро Сергійович. – Київ, 202. – 80 с.
dc.identifier.urihttps://ela.kpi.ua/handle/123456789/64411
dc.language.isouk
dc.publisherКПІ ім. Ігоря Сікорського
dc.publisher.placeКиїв
dc.subjectSIMD
dc.subjectAVX
dc.subjectкомпілятор
dc.subjectвекторизація
dc.subjectпідвищення продуктивності
dc.subjectcompiler
dc.subjectvectorization
dc.subjectperformance improvement
dc.subject.udc004.627
dc.titleКомпілятор з підтримкою SIMD AVX для високошвидкісної обробки даних і оптимізації обчислень
dc.typeMaster Thesis

Файли

Контейнер файлів
Зараз показуємо 1 - 1 з 1
Вантажиться...
Ескіз
Назва:
Trofimtsov_magistr.pdf
Розмір:
1.72 MB
Формат:
Adobe Portable Document Format
Ліцензійна угода
Зараз показуємо 1 - 1 з 1
Ескіз недоступний
Назва:
license.txt
Розмір:
8.98 KB
Формат:
Item-specific license agreed upon to submission
Опис: