Modelling videocard memory performance for LLM neural networks

The paper covers the analysis of performance characteristics of neural network-based algorithms class Generative pre-trained transformer, also known as Large Language Model, for contemporary videocards. The goal is to check the application limitations for this class of neural networks for mobile com...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2024
Автори: Rahozin, D.V., Doroshenko, A.Yu.
Формат: Стаття
Мова:Ukrainian
Опубліковано: PROBLEMS IN PROGRAMMING 2024
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/617
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Репозитарії

Problems in programming
id pp_isofts_kiev_ua-article-617
record_format ojs
resource_txt_mv ppisoftskievua/6d/17683088a8f1348fd7976bfce114c76d.pdf
spelling pp_isofts_kiev_ua-article-6172025-02-14T10:41:49Z Modelling videocard memory performance for LLM neural networks Моделювання продуктивності пам’яті відеокарт для LLM-нейромереж Rahozin, D.V. Doroshenko, A.Yu. videocard; large language model; computing performance; neural network; computational capability UDC 681.3 відеокарта; large language model; швидкодія; нейромережа; обчислювальні ресурси УДК 681.3 The paper covers the analysis of performance characteristics of neural network-based algorithms class Generative pre-trained transformer, also known as Large Language Model, for contemporary videocards. The goal is to check the application limitations for this class of neural networks for mobile computing platforms. This network class is interesting for use as control system tool, but for the bigger text corpuses the network performance degrades and the number of used computer resources grows quickly, so we need to explore if this type of network, but based on a smaller text corpus, is a feasible tool for devices with comparatively low computing capability. The performance investigation was performed with the help of GPGPUSim simulator, which can be freely configured as a virtual videocard of any computing capability. As this neural network computations are based on the calculation of a sequence of matrix multiplications, and its performance is limited by the memory bandwidth, we analyze the behavior statistics of the different cache memory levels of the videocard processor and the cache interaction with the main memory. With the help of GPGPUSim we have gathered statistics for different Generative pre-trained transformer version 2 configurations, from small to xl configurations. The level 2 cache memory access statistics, level 2 cache memory access misses, number of accesses to main memory show that even for the middle-level network configurations the number of level 2 cache memory misses exceeds the 7-8% level. This number looks high and this evidence shows that the size of the cache memory is quite small for executing this neural network configuration, also there is the substantial traffic from cache memory to main memory. Although, the minimal so-called small configuration can be computed faster and with moderated resources, and so can be used further as a part of decision-making system for computing platforms with moderate performance and resources for the case of limited text corpuses. This opens good enough perspectives for using this type of neural networks for autonomous decision making.Prombles in programming 2024; 2-3: 37-44 У статті розглянуто характеристики швидкодії нейромережевих алгоритмів типу Generative pretrained transformer, відомих також як Large Language Model, на сучасній відеокарті з метою визначення обмежень на використання таких нейромереж на мобільних обчислювальних платформах. Нейромережі цього класу цікаві як засіб ухвалення рішень, але на великому корпусі вивчених текстів їхня швидкодія уповільнюється і швидко зростає кількість необхідних обчислюваних ресурсів, тому корисно визначити, чи можливе використання таких нейромереж, сформованих на звуженому корпусі текстів і на пристроях з відносно невеликою обчислювальною потужністю. Дослідження характеристик здійснювалося за допомогою симулятора GPGPUSim, який може бути вільно сконфігурований як віртуальна відеокарта будь-якої потужності. Оскільки алгоритм базований на послідовності множення матриць, а його швидкодія на сучасних обчислювачах обмежена швидкодією підсистеми пам’яті, була досліджена статистика роботи кеш-пам’яті відеопроцесора різних рівнів та її взаємодія з основною пам’яттю системи. За допомогою GPGPUSim зібрано статистику для різних варіантів конфігурації мережі Generative pre-trained transformer версії 2, від конфігурації small до конфігурації xl. Аналіз статистики доступів до кеш-па’мяті другого рівня, промахів при доступі до кеш-пам’яті, а також кількості доступів у основну динамічну пам’ять показує, що у середніх конфігураціях кількість промахів у кеш другого рівня перевищує 7-8%, що досить багато. Це свідчить, що наявного об’єму кешпам’яті другого рівня не вистачає для функціонування основних алгоритмів і наявний досить значний обмін з основною пам’яттю. Натомість мінімальна конфігурація small може бути обрахована з мінімальним залученням ресурсів, тому може бути використана у перспективі як система прийняття рішень на платформах з невеликими ресурсами у разі зменшення корпусу текстів. А це відкриває цікаві перспективи для використання нейромереж цього типу для автономного ухвалення рішень.Prombles in programming 2024; 2-3: 37-44 PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2024-12-17 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/617 10.15407/pp2024.02-03.037 PROBLEMS IN PROGRAMMING; No 2-3 (2024); 37-44 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2-3 (2024); 37-44 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2-3 (2024); 37-44 1727-4907 10.15407/pp2024.02-03 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/617/669 Copyright (c) 2024 PROBLEMS IN PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2025-02-14T10:41:49Z
collection OJS
language Ukrainian
topic videocard
large language model
computing performance
neural network
computational capability
UDC 681.3
spellingShingle videocard
large language model
computing performance
neural network
computational capability
UDC 681.3
Rahozin, D.V.
Doroshenko, A.Yu.
Modelling videocard memory performance for LLM neural networks
topic_facet videocard
large language model
computing performance
neural network
computational capability
UDC 681.3
відеокарта
large language model
швидкодія
нейромережа
обчислювальні ресурси
УДК 681.3
format Article
author Rahozin, D.V.
Doroshenko, A.Yu.
author_facet Rahozin, D.V.
Doroshenko, A.Yu.
author_sort Rahozin, D.V.
title Modelling videocard memory performance for LLM neural networks
title_short Modelling videocard memory performance for LLM neural networks
title_full Modelling videocard memory performance for LLM neural networks
title_fullStr Modelling videocard memory performance for LLM neural networks
title_full_unstemmed Modelling videocard memory performance for LLM neural networks
title_sort modelling videocard memory performance for llm neural networks
title_alt Моделювання продуктивності пам’яті відеокарт для LLM-нейромереж
description The paper covers the analysis of performance characteristics of neural network-based algorithms class Generative pre-trained transformer, also known as Large Language Model, for contemporary videocards. The goal is to check the application limitations for this class of neural networks for mobile computing platforms. This network class is interesting for use as control system tool, but for the bigger text corpuses the network performance degrades and the number of used computer resources grows quickly, so we need to explore if this type of network, but based on a smaller text corpus, is a feasible tool for devices with comparatively low computing capability. The performance investigation was performed with the help of GPGPUSim simulator, which can be freely configured as a virtual videocard of any computing capability. As this neural network computations are based on the calculation of a sequence of matrix multiplications, and its performance is limited by the memory bandwidth, we analyze the behavior statistics of the different cache memory levels of the videocard processor and the cache interaction with the main memory. With the help of GPGPUSim we have gathered statistics for different Generative pre-trained transformer version 2 configurations, from small to xl configurations. The level 2 cache memory access statistics, level 2 cache memory access misses, number of accesses to main memory show that even for the middle-level network configurations the number of level 2 cache memory misses exceeds the 7-8% level. This number looks high and this evidence shows that the size of the cache memory is quite small for executing this neural network configuration, also there is the substantial traffic from cache memory to main memory. Although, the minimal so-called small configuration can be computed faster and with moderated resources, and so can be used further as a part of decision-making system for computing platforms with moderate performance and resources for the case of limited text corpuses. This opens good enough perspectives for using this type of neural networks for autonomous decision making.Prombles in programming 2024; 2-3: 37-44
publisher PROBLEMS IN PROGRAMMING
publishDate 2024
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/617
work_keys_str_mv AT rahozindv modellingvideocardmemoryperformanceforllmneuralnetworks
AT doroshenkoayu modellingvideocardmemoryperformanceforllmneuralnetworks
AT rahozindv modelûvannâproduktivnostípamâtívídeokartdlâllmnejromerež
AT doroshenkoayu modelûvannâproduktivnostípamâtívídeokartdlâllmnejromerež
first_indexed 2025-07-17T09:57:36Z
last_indexed 2025-07-17T09:57:36Z
_version_ 1850410386924240896
fulltext Комп’ютерне моделювання 37 УДК 681.3 http://doi.org/10.15407/pp2024.02-03.037 Д.В. Рагозін, А.Ю. Дорошенко МОДЕЛЮВАННЯ ПРОДУКТИВНОСТІ ПАМ’ЯТІ ВІДЕОКАРТ ДЛЯ LLM-НЕЙРОМЕРЕЖ У статті розглянуто характеристики швидкодії нейромережевих алгоритмів типу Generative pre- trained transformer, відомих також як Large Language Model, на сучасній відеокарті з метою визначен- ня обмежень на використання таких нейромереж на мобільних обчислювальних платформах. Нейро- мережі цього класу цікаві як засіб ухвалення рішень, але на великому корпусі вивчених текстів їхня швидкодія уповільнюється і швидко зростає кількість необхідних обчислюваних ресурсів, тому ко- рисно визначити, чи можливе використання таких нейромереж, сформованих на звуженому корпусі текстів і на пристроях з відносно невеликою обчислювальною потужністю. Дослідження характерис- тик здійснювалося за допомогою симулятора GPGPUSim, який може бути вільно сконфігурований як віртуальна відеокарта будь-якої потужності. Оскільки алгоритм базований на послідовності множен- ня матриць, а його швидкодія на сучасних обчислювачах обмежена швидкодією підсистеми пам’яті, була досліджена статистика роботи кеш-пам’яті відеопроцесора різних рівнів та її взаємодія з основ- ною пам’яттю системи. За допомогою GPGPUSim зібрано статистику для різних варіантів конфігу- рації мережі Generative pre-trained transformer версії 2, від конфігурації small до конфігурації xl. Ана- ліз статистики доступів до кеш-па’мяті другого рівня, промахів при доступі до кеш-пам’яті, а також кількості доступів у основну динамічну пам’ять показує, що у середніх конфігураціях кількість про- махів у кеш другого рівня перевищує 7-8%, що досить багато. Це свідчить, що наявного об’єму кеш- пам’яті другого рівня не вистачає для функціонування основних алгоритмів і наявний досить знач- ний обмін з основною пам’яттю. Натомість мінімальна конфігурація small може бути обрахована з мінімальним залученням ресурсів, тому може бути використана у перспективі як система прийняття рішень на платформах з невеликими ресурсами у разі зменшення корпусу текстів. А це відкриває ці- каві перспективи для використання нейромереж цього типу для автономного ухвалення рішень. Ключові слова: відеокарта, large language model, швидкодія, нейромережа, обчислювальні ресурси D.V.Rahozin, A.Y. Doroshenko MODELING VIDEOCARD MEMORY PERFORMANCE FOR LLM NEURAL NETWORKS The paper covers the analysis of performance characteristics of neural network-based algorithms class Gen- erative pre-trained transformer, also known as Large Language Model, for contemporary videocards. The goal is to check the application limitations for this class of neural networks for mobile computing platforms. This network class is interesting for use as control system tool, but for the bigger text corpuses the network performance degrades and the number of used computer resources grows quickly, so we need to explore if this type of network, but based on a smaller text corpus, is a feasible tool for devices with comparatively low computing capability. The performance investigation was performed with the help of GPGPUSim simu- lator, which can be freely configured as a virtual videocard of any computing capability. As this neural net- work computations are based on the calculation of a sequence of matrix multiplications, and its performance is limited by the memory bandwidth, we analyze the behavior statistics of the different cache memory levels of the videocard processor and the cache interaction with the main memory. With the help of GPGPUSim we have gathered statistics for different Generative pre-trained transformer version 2 configurations, from small to xl configurations. The level 2 cache memory access statistics, level 2 cache memory access misses, number of accesses to main memory show that even for the middle-level network configurations the num- ber of level 2 cache memory misses exceeds the 7-8% level. This number looks high and this evidence shows that the size of the cache memory is quite small for executing this neural network configuration, also there is the substantial traffic from cache memory to main memory. Although, the minimal so-called small configuration can be computed faster and with moderated resources, and so can be used further as a part of decision-making system for computing platforms with moderate performance and resources for the case of limited text corpuses. This opens good enough perspectives for using this type of neural networks for auton- omous decision making. Key words: videocard, large language model, computing performance, neural network, computational capability © Д.В. Рагозін, А.Ю. Дорошенко, 2024 ISSN 1727-4907. Проблеми програмування. 2024. №2-3 Комп’ютерне моделювання 38 Вступ В останні 10 років розвиток мікрое- лектроніки практично привів до виник- нення комп’ютерної інженерної галузі, на- ближеної до поняття «штучний інтелект». Якщо 7-8 років тому складні завдання роз- пізнавання образів або сегментації зобра- ження у реальному часі вважалися за фан- тастику навіть для спеціалізованих потуж- них відеопроцесорів, то зараз навіть сере- дні, а не флагманські мобільні обчислюва- льні платформи, такі як, System-on-Chip (SoC) від Qualcomm серії Snapdragon, ви- рішують ці завдання в реальному часі. Втім, новітні нейромережі типу LLM[1] кидають виклик наявній потужності обчи- слювачів. Розвиток мікроелектроніки за законом Мура прогнозує експоненціальне збільшення кількісті транзисторів у рамках мікросхем SoC і впровадження ще більш потужних нейромереж на мобільній обчи- слювальні платформи у найближчі роки. Однак, за прогнозами складні LLM буде застосовуватися обмежено. У цій статті ми досліджуємо LLM- нейромережі з точки зору їх застосовності на мобільних платформах. Ми дослідимо найцікавіші характеристики нейромережі – швидкодію доступу до пам’яті і ефектив- ність роботи багаторівневої пам’яті відео- карти для наявних алгоритмів. Більша кіль- кість транзисторів принципово дозволяє мати додаткові обчислювальні пристрої, але їхня робота неможлива без ефективного доступу до пам’яті системи. Потенційний масивний обчислювальний паралелізм ві- деокарти може нівелюватися складнощами доступу до пам’яті, не зважаючи на наявні апаратні пристрої для прискорення доступу до пам’яті або приховування затримок під час доступу до пам’яті. Аналіз за допомо- гою спеціалізованих симуляторів відеокарт дозволяє оцінити використання ієрархії пам’яті та можливості застосування алгори- тму на певних конфігураціях відеокарт. Обчислення сучасних нейромереж Практично всі сучасні нейромережі базуються на операціях множення матриць [2], що дозволяє успішно формалізувати обчислювальні процеси, коли нейромере- жа подається як послідовність обчислюва- льних блоків, які обробляють матриці. Якщо колись множення матриць було об- числювально складною операцією, оскіль- ки потребувало арифметичного блоку з обробкою плаваючої коми, то зі збільшен- ням кількості транзисторів конвеєризоване множення чисел із плаваючою комою об- числюється за 1 машинний цикл навіть у дешевих процесорах ARM. З іншого боку, кожне множення потребує доступу до двох комірок пам’яті з умовних матриць А та В, що вже проблематично виконати за 1 цикл, за винятком архітектур DSP, які зараз за- стосовуються нечасто і лише як спеціалі- зовані співпроцесори. Таким чином, ефективність подіб- ного сорту алгоритмів повністю залежить від підсистеми пам’яті: від ефективності алгоритму, який має заощаджувати досту- пи до пам’яті, та від правильного керуван- ня доступом до ієрархічної пам’яті відео- карти. У більшості випадків програмуван- ня алгоритмів такі оптимізації не прово- дяться. Питання, пов’язані з керуванням пам’яттю відеокарти для старіших нейро- мереж типу YolovX описані в [3]. У наш час за два роки може змінюватися поко- ління відеокарт, тому подібні за структу- рою нейромережі вже давно виконують свої функції у реальному часі, і фокус за- цікавлення зміщений на більш обчислюва- льно важкі системи, зокрема, нейромережі сегментації [4] або Large Language Models – LLM[1]. Обчислювальні особливості нейромереж типу LLM Останнім часом нейромережі класу LLM асоціюються із застосунками типу ChatGPT, які викликають широкі дискусії щодо методів використання як серед про- фесіоналів, так і серед пересічних корис- тувачів. Фактично застосунок складається із семантичної мовної моделі і машини ви- воду, яка генерує (добудовує, розширює або скорочує) тексти за певним запитом. Комп’ютерне моделювання 39 Машина виводу може добудовувати різну семантику з тих зв’язків, які означені у мовній моделі. Зв’язки у LLM побудовані за корпусом текстів, який покриває певну область людської діяльності. Для великих моделей, що базуються на великих корпу- сах текстів, або на великому обсязі текстів програмного забезпечення, побудова відпо- відей на запити нагадує роботу уявного штучного інтелекту, хоча результат такої роботи й не генерує нових знань (без спе- цифічного програмування з боку користу- вача), а є лише редукцію або розширенням тексту за допомогою семантичних зв’язків. У разі звуження корпусу текстів, над якими визначається модель для LLM, семантична модель фактично стає довід- ником з певної царини знань, і для засто- сунків у невеликій предметній області мо- же буде використана для побудови реакцій [5] на стан зовнішнього середовища. LLM може розглядатися як аналог старого по- няття «експертної системи», яка була більш формалізована, але давала лише ті відповіді, на які була запрограмована. LLM дозволяє мати більше свободи у реа- гуванні на ситуації реального життя. Як приклад LLM можна навести NanoGPT[6], для якого є декілька мовних моделей, пояснення та приклади генерації мовних моделей за наборами текстів, а та- кож вихідні коди машини виводу текстів, обсяг якої складає близько 800 рядків мо- вою С. Це дозволяє зацікавленим особам ознайомитися на тільки з алгоритмікою LLM, а й змоделювати швидкодію LLM. Обчислювальний приклад Як обчислювальний приклад розг- лянемо GPT2, описаний Basil Hosmer в [7], і більш детально в [8]. Використано GPT2 small configuration з проєкту Андрія Кар- пати NanoGPT [6] з параметрами: layers = 12, heads = 12, embed = 768. Параметр em- bed далі змінюватиметься для аналізу від- повідно до розширених конфігурацій GPT2 у рамках здійснення обчислюваль- них експериментів. У LLM цього типу основне обчис- лювальне навантаження відбувається в At- tention Layer, найбільш інтенсивно викори- стовується обчислення attention: наступна послідовність шести матричних множень [7,9], де знаком @, як і в оригінальному те- ксті, позначено матричне множення: Таблиця 1. (1) (2) (3) (4) (5) (6) Q = input @ wQ K_t = wK_t @ input_t V = input @ wV attn = sdpa(Q @ K_t) head_out = attn @ V out = head_out @ wO У наступній таблиці подано розмір- ності оброблюваних масивів та ємність пам’яті необхідна для їхнього зберігання. Базовий тип даних – 4-х байтове значення з плаваючою комою, стандартне для відео- карти. Конфігурація GPT2 – «small». Всі масиви розташовані у пам’яті відеокарти. Масив Стовп. Рядків Пам’ять, Кбт Input_t 768 256 768 Input 256 768 768 wQ 768 64 192 Q 256 64 64 wK_t 64 768 192 wV 768 64 192 wO 64 786 192 Додатково використано допоміжні масиви у пам’яті відеокарти: Масив Стовп. Рядків Пам’ять, Кбт K_t 64 256 64 V 256 64 64 Attn 256 256 256 head_out 256 64 64 Out 256 768 768 Сумарна пам’ять масивів моделі small складає 3.5Мбт, що, зважаючи на ро- змір кешів сучасних мобільних відеокарт, є досить великим об’ємом для кеш-пам’яті, але досить невеликим відносно всієї опе- ративної пам’яті відеокарти. У цьому ви- падку складність обчислювальної задачі залежить не від відносно маленького нара- зі об’єму використаної пам’яті, а від кіль- кості доступів до пам’яті, оскільки кожна операція множення вимагає два доступи до Вступ В останні 10 років розвиток мікрое- лектроніки практично привів до виник- нення комп’ютерної інженерної галузі, на- ближеної до поняття «штучний інтелект». Якщо 7-8 років тому складні завдання роз- пізнавання образів або сегментації зобра- ження у реальному часі вважалися за фан- тастику навіть для спеціалізованих потуж- них відеопроцесорів, то зараз навіть сере- дні, а не флагманські мобільні обчислюва- льні платформи, такі як, System-on-Chip (SoC) від Qualcomm серії Snapdragon, ви- рішують ці завдання в реальному часі. Втім, новітні нейромережі типу LLM[1] кидають виклик наявній потужності обчи- слювачів. Розвиток мікроелектроніки за законом Мура прогнозує експоненціальне збільшення кількісті транзисторів у рамках мікросхем SoC і впровадження ще більш потужних нейромереж на мобільній обчи- слювальні платформи у найближчі роки. Однак, за прогнозами складні LLM буде застосовуватися обмежено. У цій статті ми досліджуємо LLM- нейромережі з точки зору їх застосовності на мобільних платформах. Ми дослідимо найцікавіші характеристики нейромережі – швидкодію доступу до пам’яті і ефектив- ність роботи багаторівневої пам’яті відео- карти для наявних алгоритмів. Більша кіль- кість транзисторів принципово дозволяє мати додаткові обчислювальні пристрої, але їхня робота неможлива без ефективного доступу до пам’яті системи. Потенційний масивний обчислювальний паралелізм ві- деокарти може нівелюватися складнощами доступу до пам’яті, не зважаючи на наявні апаратні пристрої для прискорення доступу до пам’яті або приховування затримок під час доступу до пам’яті. Аналіз за допомо- гою спеціалізованих симуляторів відеокарт дозволяє оцінити використання ієрархії пам’яті та можливості застосування алгори- тму на певних конфігураціях відеокарт. Обчислення сучасних нейромереж Практично всі сучасні нейромережі базуються на операціях множення матриць [2], що дозволяє успішно формалізувати обчислювальні процеси, коли нейромере- жа подається як послідовність обчислюва- льних блоків, які обробляють матриці. Якщо колись множення матриць було об- числювально складною операцією, оскіль- ки потребувало арифметичного блоку з обробкою плаваючої коми, то зі збільшен- ням кількості транзисторів конвеєризоване множення чисел із плаваючою комою об- числюється за 1 машинний цикл навіть у дешевих процесорах ARM. З іншого боку, кожне множення потребує доступу до двох комірок пам’яті з умовних матриць А та В, що вже проблематично виконати за 1 цикл, за винятком архітектур DSP, які зараз за- стосовуються нечасто і лише як спеціалі- зовані співпроцесори. Таким чином, ефективність подіб- ного сорту алгоритмів повністю залежить від підсистеми пам’яті: від ефективності алгоритму, який має заощаджувати досту- пи до пам’яті, та від правильного керуван- ня доступом до ієрархічної пам’яті відео- карти. У більшості випадків програмуван- ня алгоритмів такі оптимізації не прово- дяться. Питання, пов’язані з керуванням пам’яттю відеокарти для старіших нейро- мереж типу YolovX описані в [3]. У наш час за два роки може змінюватися поко- ління відеокарт, тому подібні за структу- рою нейромережі вже давно виконують свої функції у реальному часі, і фокус за- цікавлення зміщений на більш обчислюва- льно важкі системи, зокрема, нейромережі сегментації [4] або Large Language Models – LLM[1]. Обчислювальні особливості нейромереж типу LLM Останнім часом нейромережі класу LLM асоціюються із застосунками типу ChatGPT, які викликають широкі дискусії щодо методів використання як серед про- фесіоналів, так і серед пересічних корис- тувачів. Фактично застосунок складається із семантичної мовної моделі і машини ви- воду, яка генерує (добудовує, розширює або скорочує) тексти за певним запитом. Комп’ютерне моделювання 40 кеш-пам’яті, незалежно від способу опти- мізації алгоритму. Всі способи програмної оптимізації намагаються зробити ефектив- нішим використання саме кеш-пам’яті, адже кошт доступу до кеш-пам’яті вважа- ється мінімальним і в більшості випадків оптимізації не піддається. Але пропускна здатність кеш-пам’яті теж лімітована. Зва- жаючи на масований паралелізм, коли сот- ні потоків виконання можуть дати неспо- дівані ефекти для пропускної здатності ко- нтролерів пам’яті від кеш першого рівня до динамічної пам’яті, нам необхідно ви- користовувати спеціальне програмне за- безпечення, наприклад, GPGPUSim [10]. Симуляція масованого паралелізму за допомогою GPGPUSim На відміну від давньої звичної па- радигми багатоядерного процесора (на- приклад Intel Core, AMD Ryzen), відеокар- та пропонує масований паралелізм (тисячі потоків виконання замість десятків у бага- тоядерному процесорі) за рахунок спро- щення обчислювальних ядер, ускладнення ієрархії пам’яті та адаптованої концепції програмування. Зазначимо, що у випадку програмування відеокарти немає усклад- нень технології паралельного програму- вання відносно програмування багатояде- рного процесора, оскільки для отримання якісного паралельного коду необхідно зна- ти тонкощі синхронізації пам’яті та роботи кеш-пам’яті для обох типів архітектур. GPGPUSim повністю і точно (максимум 5% відхилення по продуктивності від апа- ратної реалізації [10]) моделює роботу ві- деокарт Nvidia, що дозволяє досить точно оцінити продуктивність алгоритму, вплив оптимізацій на продуктивність та вплив апаратних особливостей на роботу алгори- тму. Модель GPGPUSim гнучко налашто- вується від параметрів конвеєризації ари- фметико-логічних пристроїв до часових діаграм доступу до мікросхем динамічної пам’яті. Так користувач може змінити не- обхідним для себе чином конфігурацію ві- деокарти і змоделювати виконання про- грами на будь-якій модифікації відеокарти. Основною цікавинкою GPGPUSim є моделювання складної ієрархії пам’яті, оскільки повністю модельована часова діа- грама доступу до всіх рівнів кеш і динамі- чної пам’яті, всі пристрої та черги синхро- нізації при доступі до кеш-пам’яті. Для нашого дослідження основними цікавими цифрами є обсяг доступу до кеш другого рівня (кеш L2), оскільки він практично найбільше впливає на швидкодію. Кеш першого рівня (L1), кеш третього рівня (L3) та доступ до основної пам’яті мають дещо менше, оскільки кеш L1 більш ло- кально обслуговує шейдери, кеш L3 пові- льніший, а поведінка L2 дає більш релева- нтну інформацію. GPGPUSim є прозорим для користу- вача, вбудовується в систему на базі Linux стандартним чином і використовується для запуску вже наявних програм для відео- карт, реалізованих за допомогою технології CUDA від Nvidia. Для цього GPGPUSim має власну версію бібліотеки cudart, яка пі- дміняє собою як API CUDA, так і внутрішні механізми роботи драйвера за допомогою стандартних можливостей наявного заван- тажувача виконаних файлів формату ELF, які використовуються в усіх модифікаціях Linux. Симулятор формує шейдери, моде- лює стан пам’яті, API CUDA і OpenCL. То- му з точки зору користувача програма ви- конується на відеокарті, але вкрай повільно. Інформація про симуляцію перенаправля- ється до текстового файлу. В нашому випадку використана Ub- untu 18, компілятор GCC версії 7.5.x для збірки симулятора і модельної програми, пакет утиліт (nvcc та інше) від CUDA 10.1. Була використана модель відеокарти QV100, яка має пасивне охолодження, то- му за сценаріями використання більш схо- жа на мобільні відеокарти, і нема ніяких підстав вважати, що за кілька років обчис- лювальна потужність мобільних відеокарт не наблизиться до цієї моделі. Для реалізації алгоритму, вказаного у табл. 1, була реалізована CUDA- програма, яка базована на прикладах мно- ження матриць matMul з прикладів (sam- ples), наданих до CUDA 10.1. Система збі- рки прикладу була модифікована для GPGPUSim шляхом додавання вказівок Комп’ютерне моделювання 41 стандартному лінкеру для використання бібліотеки cudart з комплекту GPGPUSim. Далі програма запускалася за допомогою GPGPUSim, дані про роботу кеш виділяли- ся з файлу результатів симуляції. Результати симуляції Основною метою симуляції було до- слідження алгоритму, представленого у табл. 1, спочатку на даних моделі GPT2 small і подальшого збільшення параметрів layers/heads/embed до моделей large/xl. Хо- ча алгоритм множення матриць є найбільш вивченим за всю історію досліджень, ком- плексні операції з матрицями на платформі з масованим паралелізмом з урахуванням складного кеша 2-го рівня цікаві з точки зору як ефективності роботи пам’яті, оскі- льки правильно використані кеши можуть працювати як на паралельну видачу даних, так і тих явищ у роботі кешу, які виникають у разі збільшення розміру даних і конфлік- тів у кеш, і, зважаючи на складність алго- ритму, більш-менш точне їх обчислення неможливе без моделювання. У наступних таблицях наведені ре- зультати для різних значень embed: 768, 1280 і 1600, використаних у різних конфі- гураціях GPT2 [6]. Стовпчик # означає но- мер множення у табл. 1, L2 access – кіль- кість доступів до кеш пам’яті L2, L2 misses – кількість промахів у L2 (що додає сильну затримку у подачі даних), L2 misses % - відносна кількість промахів. Літера М означає мільйон. Таблиця 2 Доступ у пам’ять для embed = 768 # L2 access L2 misses L2 misses % 1 1.23M 0.053M 4.3% 2 1.59M 0.098M 6.2% 3 2.82M 0.108M 3.8% 4 2.83M 0.108M 3.8% 5 2.97M 0.108M 3.8% 6 2.98M 0.108M 3.6% Для моделі GPT2 small ми бачимо, що в цілому відносна кількість промахів у L2 є великою лише для стадії 2 алгоритму, оскільки для великої кількості алгоритмів «прийнятні» цифри відносних непопадань у L2 це 2-3%. Більший відсоток призво- дить до деградації швидкодії відносно ная- вних можливостей арифметико-логічних пристроїв комп’ютера. Аналізуємо далі. Таблиця 3 Доступ у пам’ять для embed = 1280 # L2 access L2 misses L2 misses % 1 3.22M 0.190M 5.9% 2 4.11M 0.305M 7.4% 3 7.46M 0.592M 7.9% 4 7.47M 0.597M 8.0% 5 7.61M 0.615M 8.1% 6 7.62M 0.615M 8.1% Набір даних збільшився у 1.67 рази, відсоток промахів у кеш значно збільшив- ся, особливо на останніх стадіях (4-6). Для стадій 2-6 спостерігаємо дуже великий ві- дсоток промахів, понад 7, що призводить до значних сповільнень алгоритму, адже кошт промаху у десятки разів перевищує кошт вибірки даних з кешу L2. Проаналі- зуємо велику модель xl з GPT2. Таблиця 4 Доступ у пам’ять для embed=1600 # L2 access L2 misses L2 misses % 1 5.42M 0.315M 5.8% 2 6.96M 0.655M 9.4% 3 12.4M 1.08M 8.7% 4 12.5M 1.08M 8.7% 5 12.5M 1.1M 8.8% 6 12.5M 1.1M 8.8% Порівняно із табл. 3 відсоток про- махів збільшився, але принципово дані табл. 3 і 4 вказують на те, ще така конфі- гурація алгоритму перевищує продуктив- ність такої конфігурації процесора. Наведемо також розбивку доступу до пам’яті на читання і запис для embed=768 і 1280. Таблиця 5 # embed=768 embed=1600 L2 RD L2 WR L2 RD L2 WR 1 1.17M 0.074M 5.1M 0.32M 2 1.44M 0.147M 6.4M 0.64M 3 2.6M 0.221M 11.5M 0.96M 4 2.61M 0.222M 11.4M 0.96M 5 2.74M 0.23M 11.5M 0.96M 6 2.75M 0.23M 11.7M 0.97M Комп’ютерне моделювання 42 Ці цифри типові для матричних операцій, коли на велику кількість опе- рацій читання маємо небагато операцій запису. Дані табл. 2, 3 і 4 фактично відріз- няються лише однією розмірністю масивів embed, використаних в алгоритмі в табл. 1. Всього цей алгоритм використовує три ро- змірності, і було вирішено як обчислюва- льний експеримент збільшити третю з ма- тричних розмірностей з 64 до 96. Таблиця 6 Доступ у пам’ять для embed=1600 і розмірності рядків Q і 96 # L2 access L2 misses L2 misses % 1 5.42M 0.297M 5.5% 2 7.59M 0.646M 8.5% 3 13.01M 1.07M 8.2% 4 13.03M 1.08M 8.3% 5 13.17M 1.09M 8.3% 6 13.19M 1.09M 8.3% Порівнюючи табл. 4 і 6 зазначимо, що, незважаючи на більший обсяг пам’яті, з яким оперує алгоритм у конфігурації з табл. 6, відносна кількість промахів у L2 кеш у відсотках стає меншою. Оскільки алгоритм досить складний, немає сенсу робити теоретичні розвідки щодо поведін- ки кешу, але симулятор дозволяє виявляти такі цікаві ефекти. Важливо, що симулятор моделює поведінку контролеру пам’яті між запусками шейдерів і таким чином може вказувати на оптимальні сценарії за- пуску шейдерів, коли виконані шейдери ефективно використовують результати по- передньо виконаних шейдерів. Зібрана у табл. 2-6 інформація може піддаватися вільній інтерпретації, але під- кріпимо дані симуляції кешу L2 даними щодо кількості доступів до динамічної пам’яті. Трафік у динамічну пам’ять (DRAM) скерований контролером кеш пам’яті і є необхідним для збереження да- них, які не вміщуються у кеш. Зазначимо, що GPGPUSim симулює DRAM за допо- могою повного точного опису доступу до пам’яті у прив’язці до реального часу. Та- ким чином, трафік у DRAM корелює з кі- лькістю промахів у L2 кеш, але не у ліній- ній залежності. Таблиця 7. Кількість читань та записів DRAM embed = 1280 embed = 1600 Reads Writes Reads Writes 1 17.8K 42.7K 38.5K 156K 2 29K 124K 55K 462K 3 111K 383K 157K 834K k 115K 387K 162K 834K 5 131K 403K 177K 853K 6 131K 403K 177K 853K Окремо зазначимо, що трафік у DRAM для embed=768 нульовий. Це пояс- нюється тим, що у разі відсутності запитів на виділення кешу (які генеруються під час роботи інших шейдерів, які виконують свої певні алгоритми) контролер кеш не робитиме запитів на збереження даних у динамічній пам’яті окрім специфічних си- нхронізацій. Коли використаний обсяг пам’яті не вміщується в кеш, з’являється трафік у DRAM. Оскільки алгоритм з табл. 1 виконується багато раз, трафік у пам’ять відповідно зростає. Наступний риc. 1 ілюструє залеж- ність промахів у кеш-пам’ять від парамет- ра embed, із зростанням якого зростає роз- мір масивів. Рис. 1. Залежність промахів у кеш пам’ять від параметра embed. Якість роботи алгоритму GPT2 прямо залежить від величини параметру embed. Якщо ми звернемося до більш по- тужних моделей, що обробляють дуже ве- ликі корпуси текстів[11] (наприклад, час- тину мережі Internet), то розмір наборів даних вимагає для тренування гігабайти пам’яті, а для виводу – 16Гбайт оператив- Комп’ютерне моделювання 43 ної пам’яті. Проте метою більш великих моделей є наближення до людського сти- лю викладу інформації, а GPT2 має меншу ресурсоємність і може продукувати вивід на відносно малопотужних процесорах. Відносно невелика швидкість генерації ві- дповідей (десятки токенів на секунду) на сучасному процесорі Intel Core фактично вимагає переміщувати код на відеопроце- сор і підлаштовувати розмір моделі до об’єму наявної пам’яті. Розвитком цієї роботи можуть кіль- ка напрямів. По-перше, визначення необ- хідних обчислювальних потужностей, не- обхідних для запуску алгоритму в цілому, оскільки темою цієї статті були найбільш обчислювально важкі місця. Це дозволяє визначити типовий час відповіді у режимі реального часу. По-друге, визначення при- йнятного розміру корпусу професійних (спеціалізованих), за допомогою якого GPT2 дозволяє генерувати або звужувати текст, дозволяє визначити ліміти застосов- ності алгоритмів такого типу на мобільних пристроях. Таке дослідження стикається зі складнощами, оскільки моделі на основі вірогідностей важко тестувати, складно визначити якість проробки моделлю запи- ту, необхідно визначити обмеження на за- пити. Але це окреме дослідження ресурсо- ємності алгоритмів LLM показує, що ці ал- горитми можуть використовуватися не лише на великих і потужних обчислюва- льних системах. Висновки У статті розглянуто аналіз продук- тивності нейромереж типу LLM для сучас- ної відеокарти. Показано, що невеликі конфігурації моделі GPT2 можуть бути ро- зміщені на обчислювальних пристроях та- кого типу, що відкриває можливості вико- ристання цього типу нейромереж для ав- тономної роботи на мобільних пристроях. References 1. A. Vaswani, N. Shazeer, N. Parmar, J. Usz- koreit, L .Jones, A. Gomez, L. Kaizer, I. Po- losukhin. Attention is all you need. // In proc. 31st Conf. on Neural Information Processing Systems (NIPS), Dec. 2017, pp. 6000-6010. 2. S. Chetlur, C. Woolley, P. Vandermersch, J. Cohen, J. Tran, B. Catanzaro B, et al. CuDnn: efficient primitives for deep learning. arXiv preprint: arXiv:14100759. (2014). [Accessed 17/03/2024] 3. Rahozin D., Doroshenko A. (2022) Performance Model for Convolutional Neural Networks. In: Shkarlet S. et al. (eds) Mathematical Modeling and Simulation of Systems. MODS Lecture Notes in Networks and Systems, vol 344. Springer, pp. 239-251. DOI: doi.org/10.1007/978-3-030-89902-8_19 4. Y. Guo, Y. Liu, T. Georgiou et al. A review of semantic segmentation using deep neural networks. Int J Multimed Info Retr 7, 87–93 (2018). doi.org/10.1007/s13735-017-0141-z 5. S. Yao, J. Zhao, D. Yu, N. Du, I. Shafran, K. Narasimhan and Y Cao. ReAct: Synergizing Reasoning and Acting in Language Models. (2022) arxiv.org/abs/2210.03629. [Accessed 17/03/2024] 6. A. Karpathy A. NanoGPT. Available from: github.com/karpathy/nanoGPT [Accessed 13/04/2024] 7. B. Hosmer. Inside the Matrix: Visualizing Matrix Multiplication, Attention and Beyond. (25 Sept 2023) Available from: pytorch.org/blog/ inside-the-matrix/ [Ac- cessed 13/03/2024] 8. A. Golden, S. Hsia, F. Sun, B. Acun, B. Hosmer, Y. Leeet al. Generative AI Beyond LLMs: System Implications of Multi-Modal Generation. (2023) Av ailable from: arxiv.org/ abs/2312.14385 [Accessed 13/04/2024] 9. M. Shoeybi, M. Patwary, R. Puri, P. LeGresley, J. Casper, B. Catanzaro. Mega- tron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism. (2020) Available at: arxiv.org/abs/1909.08053 [Accessed 13/04/2024] 10. J. Lew, D. Shah, S. Pati, S. Cattell, M. Zhang et all. Analyzing Machine Learning Work- loads Using a Detailed GPU Simulator (ISPASS 2019) Available at: arxiv.org/abs/1811.08933 [Accessed 13/04/2024] 11. T. Brown, B. Mann, N. Ryder, M. Subbiah, J.D. Kaplan, P. Dhariwal et all. Language Models are Few-Shot Learners. // In Proc. of 34th Conf. on Neural Information Processing Systems (Dec 2020), Vancouver, Canada. P. 1877-1901. Doi: 10.5555/3495724.3495883 Одержано: 05.04.2024 Внутрішня рецензія отримана: 14.04.2024 Зовнішня рецензія отримана: 20.04.2024 Комп’ютерне моделювання 44 Про авторів: Рагозін Дмитро Васильович, кандидат технічних наук, старший науковий співробітник. http://orcid.org/0000-0002-8891-7002. Дорошенко Анатолій Юхимович, доктор фізико-математичних наук, професор, завідувач відділу теорії комп’ютерних обчислень http://orcid.org/0000-0002-8435-1451 Місце роботи авторів: Інститут програмних систем НАН України, 03187, м. Київ-187, проспект Академіка Глушкова, 40. Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», проспект Перемоги 37 E-mail: Dmytro.Rahozin@gmail.com