АНАЛІЗ ВИКОРИСТАННЯ МУЛЬТИЯДЕРНИХ ТЕХНОЛОГІЙ ПАРАЛЕЛЬНИХ ОБЧИСЛЕНЬ

Ломакіна О.Ю.

 

Національний технічний університет України КПІ”, Україна

 

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

При вирішенні актуального наукового завдання щодо удосконалення методів і засобів програмної та апаратної реалізації ефективної (СРЖ) доцільно провести аналіз використання мультиядерних технологій паралельних обчислень GPGPU.

Графічний процесор (GPU) - окремий пристрій персонального комп'ютера, що виконує графічну обробку даних. Сучасні графічні процесори дуже ефективно обробляють і зображують комп'ютерну графіку, завдяки спеціалізованій конвеєрній архітектурі вони набагато ефективніші в обробці графічної інформації, чим типові центральні процесори. Центральний процесор (CPU) - виконавець машинних інструкцій, частина апаратного забезпечення комп'ютера або програмувального логічного контролера, відповідальний за виконання операцій, заданих програмами. GPGPU («GPU загального призначення») - техніка використання графічного процесора відео карти для загальних обчислень, які звичайно проводить центральний процесор.

З розвитком технологій, виробники прагнуть збільшити швидкість обробки даних, виконання команд й у цілому підвищити продуктивність, при цьому зменшуючи розміри самих обробних пристроїв. При цьому розглядаються всі можливі методи збільшення продуктивності.
Ріст продуктивності сучасних CPU обмежується фізично розмірами і енергоспоживанням. Сьогодні ріст продуктивності CPU збільшується за рахунок розміщення декількох ядер на одному чипі. Кожне ядро працює окремо, виконуючи команди окремого процесу. CPU використовують технологію MIMD - (Multiple Instruction stream, Multiple Data stream) множинний потік команд і даних.

Тут проявляється перша відмінність CPU від GPU. GPU використовує технологію SIMD – (Single Instruction, Multiple Data) одиночний потік команд, безліч потоків даних. У відео чипах основним блоком є мультипроцесор з вісьма-десятьома ядрами – це інша принципова відмінність CPU від GPU.

Ядра CPU створено для виконання одного потоку послідовних інструкцій з максимальною продуктивністю, а GPU використовуються для швидкого виконання великого числа паралельно виконуваних потоків інструкцій. CPU оптимізовані для досягнення максимальної продуктивності окремого алгоритму, інструкцій. У відео чипів робота є паралельною завжди. На вході ухвалюються полігони, проводяться необхідні операції, і на виході одержуємо пікселі. При чому обробка полігонів ніяк не зв'язана між собою.
         Також відмінність GPU від CPU проявляється й у принципі доступу до пам'яті. Тобто, в GPU при записі пікселя в буфер через якийсь час буде записаний і сусідній з ним піксель. У наслідку такої організації пам'яті, чипу просто не потрібна кеш-пам'ять великого розміру ( до 256 кБ).

Та й сама по собі робота з пам'яттю в GPU і CPU трохи відрізняється. Так, не всі центральні процесори мають вбудовані контролери пам'яті, а у всіх GPU звичайно є по кілька контролерів, аж до восьми 64-бітних. Крім того, на відео картах застосовується більш швидка пам'ять, і в результаті відео чипам доступна в рази більша пропускна здатність пам'яті.

Крім цього CPU використовують кеш для збільшення продуктивності за рахунок зниження затримок доступу до пам'яті, а GPU використовують кеш для збільшення смуги пропускання. CPU знижують затримки доступу до пам'яті за допомогою кеш-пам'яті великого розміру, а також пророкування розгалужень коду. Ці апаратні частини займають більшу частину площі чипа й споживають багато енергії. Відео чипи обходять проблему затримок доступу до пам'яті за допомогою одночасного виконання тисяч потоків - у той час, коли один з потоків очікує даних з пам'яті, відео чип може виконувати обчислення іншого потоку без очікування й затримок.

До загальнопоширених можливо віднести:

CUDA - технологію GPGPU, що дозволяє реалізовувати на Сі++ алгоритми, здійсненні на графічних процесорах прискорювачів Geforce восьмого покоління й старше. Технологія CUDA розроблена компанією Nvidia. Простіше говорячи, графічна підсистема комп'ютера з підтримкою  CUDA може бути використана, як обчислювальна.

Close To Metal (CTM) – технологія GPGPU, що використовує низькорівневе програмування на графічних процесорах ATI (AMD Graphics Products Group). CTM є віртуальною машиною, що виконує асемблерний код, у той час як CUDA – своєрідне розширення Сі++. Дві ці платформи несумісні між собою. Враховуючи більшу доступність для широкого кола користувачів технологій GPGPU CTM, саме вона використовується при обчислені контурів зображень та у функціях, які реалізують корекцію колірних перехідних характеристик.

Проведений аналіз використання мультиядерних технологій паралельних обчислень дозволив запропонувати новий підхід для практичної реалізації розроблених систем розпізнавання жестів – використання мультиядерних графічних процесорів для розпаралелювання процедури визначення контурів та сегментації у рамках задачі розпізнавання жестів людини в реальному масштабі часу.

Програмні реалізації запропонованого підходу показали, що виграш у швидкодії в порівнянні з CPU - реалізаціями СРЖ складає 10-20 разів у залежності від типу обраної системи.