Обчислення загального призначення на графічних процесорах (GPGPU, рідко GPGP або GP²U) це використання графічного процесора (GPU), який зазвичай обробляє обчислення тільки для комп'ютерної графіки, для того щоб виконанати обчислення в додатках, традиційно виконуваних центральним процесором (CPU). Використання декількох відеокарт в одному комп'ютері, або великої кількості графічних чипів, паралелізує вже паралельну природу обробки графіки. Більше того, навіть одна GPU-CPU платформа процесора забезпечує переваги, які не пропонують декілька центральних процесорів (CPU) самі по собі за рахунок спеціалізації в кожному чипі.
По суті, конвеєр GPGPU є видом паралельної обробки між одним або більше графічних процесорів і центральних процесорів, які аналізують дані так, якби вони були в зображені на малюнку або у іншій графічній формі. Оскільки відеокарти можуть працювати над зображенням і графічними даними зі швидкістю в десятки або навіть сотні разів більшою ніж у традиційного процесора, перенесення даних у графічні дані, а потім за допомогою GPU переглядати і аналізовувати їх в результаті може призвести до суттєвого прискорення.
Конвеєри GPGPU розроблені з наукових обчислень, багато GPGPU проектів залучені в біоінформатиці та молекулярній біології.
Історія
Обчислення загального призначення на графічних процесорах стало практичним і популярним після 2001, з появою програмованих шейдерів і підтримки обчислень з рухомою комою на графічних процесорах. Зокрема, проблеми з участю матриць і/або векторів — особливо двох-, трьох- або чотирьох-вимірних векторів — було легко перевести на GPU, який діє з рідною[] швидкістю і підтримує ці типи. Експерименти наукових обчислень з новим обладнанням почалося зі звичайного множення матриць (2001); одна з перших спільних наукових програм, що працювала швидше на GPU, ніж на центральних процесорах була реалізація LU факторизації (2005).
Ці ранні спроби використовувати графічні процесори як процесори загального призначення вимагали переформулювання обчислювальних завдань з точки зору графічних примітивів, що підтримуються двома основними програмними інтерфейсами (API) для графічних процесорів: OpenGL і DirectX. Це громіздке перетворення було усунене з появою мов програмування загального призначення та інтерфейсів, таких як Sh/RapidMind, Brook та Accelerator.
Вони супроводжувалися технологією CUDA від Nvidia, яка дозволила програмістам ігнорувати основні графічні концепції на користь більш звичних високопродуктивних обчислювальних концепцій. Нові апаратні пропозиції від незалежних постачальників включали від Microsoft та Apple/Khronos OpenCL групи. Це означає, що сучасні конвеєри GPGPU можуть виконувати дії над будь-якими операціями з великими даними(«big data») і використовувати швидкість GPU, не вимагаючи повного і явного перетворення даних в графічну форму.
Реалізація
- OpenCL — відкритий стандарт по розробці програм котрі можуть виконуватися на графічних процесорах та центральних процесорах. Мова програмування C.
- — прикладний програмний інтерфейс котрий дозволяє робити обчислення на відеоадаптері, даний інтерфейс є частиною DirectX, підтримується починаючи з 10 версії DirectX.
- — бібліотека розроблена компанією Microsoft для обчислень за допомогою графічних процесорів, для роботи необхідний DirectX 11. Мова програмування
- CUDA — архітектура для програмно-апаратних обчислень за допомогою графічних процесорів від компанії NVIDIA. Мова програмування C.
- AMD FireStream — архітектура для програмно апаратних обчислень за допомогою графічних процесорів від компанії AMD.
Настільні комп'ютери
Будь-яка мова, яка дозволяє коду працюючому на центральному процесорі звернутись до шейдерів GPU для повернення значень, може створити GPGPU фреймворк.
OpenCL в даний час є домінуючою мовою з відкритим вихідним кодом для обличслень загального призначення на GPU та є відкритим стандартом, визначеним Khronos Group. OpenCL забезпечує крос-платформлену GPGPU платформу, яка додатково підтримує паралельні обчисллення даних на центральних процесорах(CPU). OpenCL активно підтримується на платформах Intel, AMD, Nvidia і ARM.
Поширеним фреймворком є NVIDIA CUDA. Вона випущена в 2006 році, це SDK і API який дозволяє використовувати мову програмування C для кодування алгоритмів для виконання на GPU серії GeForce 8. Стандарти програмування для паралельних обчислень включають OpenCL (незалежних постачальників), OpenACC і OpenHMPP. є засновником GPGPU.org і терміну «GPGPU».
OpenVIDIA був розроблений в Університеті Торонто протягом 2003–2005 , у співпраці з NVIDIA.
Обробка GPGPU також використовується для імітації ньютонівської фізики фізичними рушіями і комерційної реалізації включаючи Havok Physics і PhysX, обидва з яких, як правило, використовуються для відеоігор.
— бібліотека, яка прискорює виконання C ++ коду, скориставшись перевагою графічного процесора.
Мобільні комп'ютери
У зв'язку з тенденцією збільшення потужності мобільних графічних процесорів, програмування загального призначення стало доступне і на мобільних пристроях, що працюють під керуванням основних мобільних операційних систем.
Google Android 4.2 підтримує виконання коду на графічному процесорі мобільних пристроїв.
Apple представила власний програмний інтерфейс Metal для iOS додатків, здатний виконати довільний код через обчислювальні шейдери GPU.
Апаратна підтримка
Комп'ютерні відеокарти виробляються різними постачальниками, такими як NVIDIA і AMD / ATI. Карти від таких постачальників відрізняються за реалізацією підтримки формату даних, наприклад, цілочисельні і формати з рухомою комою (32-біт і 64-біт). Microsoft представила стандарт «Shader Model», щоб допомогти ранжувати різні особливості графічних карт в простому номері версій шейдерної моделі (1.0, 2.0, 3.0 і т. д.).
Цілочисельний формат даних
Графічні карти до DirectX 9 підтримували тільки палітрені або цілочисельні типи кольору. Доступні різні формати, кожен з яких містить червоний, зелений і синій елементи. Іноді додають додаткові значення альфа, які будуть використовуватися для прозорості. Загальні формати: +8 Біт на піксель — Іноді режим палітри, де кожне значення індексу в таблиці з реальним значенням вказане в одному з інших форматів. Іноді три біта для червоного, три біта для зеленого і два біти для синього. 16 біт на піксель — Звичайно виділяється у вигляді п'яти біт для червоного, шість біт для зеленого і п'ять біт для синього. 24 біт на піксель — вісім бітів для кожного з червоного, зеленого і синього 32 біт на піксель — вісім біт для кожного з червоного, зеленого, синього та альфа.
Формат даних з рухомою комою
Для початкових фіксованих функцій або обмежених можливостей програмування графіки (тобто включно до DirectX 8.1-сумісних GPU) цього було достатньо, тому що таке ж представлення використовувалось у моніторах. Таке представлення має певні обмеження. Враховуючи достатню потужність обробки графіки, навіть програмісти графіки хотіли б використовувати кращі формати, такі як формати даних з рухомою комою, щоб отримати ефекти, такі як високий динамічний діапазон зображень. Багато GPGPU додатків вимагають точності формату з рухомою комою, яка прийшла з відеокартами, відповідно до специфікації DirectX 9.
DirectX 9 Shader Model 2.x запропонувала підтримку двох типів точності: повної і часткової. Повна точність може бути FP32 або FP24 (floating point 32 — або 24-біт на компоненту) або більше, в той час як часткова точність була FP16. Серія графічних процесорів ATI R300 підтримувала точність FP24 тільки в трубопроводі програмованого фрагмента (хоча FP32 підтримувалась в вертексних процесорах), а серія Nvidia NV30 підтримує як FP16, так і FP32. Інші виробники, такі як S3 Graphics і підтримують суміш форматів до FP24.
Shader Model 3.0 змінила специфікацію, збільшуючи вимоги до повної точності як мінімум до підтримки FP32 в трубопроводі фрагмента. Shader Model 3.0 в сумісності з поколінням R5xx (Radeon X1000 серії) підтримує тільки FP32 через трубопровід, а серії Nvidia NV4x і G7X раніше підтримували і повну точність FP32, і часткову FP16. Хоча це і не передбачено Shader Model 3.0, як графічні процесори ATI, так і Nvidia Shader Model 3.0 представили підтримку для змішування цілей візуалізації FP16, сприяючи підтримці високо динамічного відображення діапазону.
Векторизація
Більшість операцій на GPU працюють таким векторизованим чином: одна операція може бути виконана на чотирьох значеннях одночасно. Наприклад, якщо один колір <R1, G1, B1> буде необхідно модулювати за допомогою іншого кольору <R2, G2, B2>, то графічний процесор може виробляти результуючий колір <R1 * R2, G1 * G2, В1 * B2> в одній операції. Ця функція корисна в графіці, тому що майже кожен основний тип даних являє собою вектор (2-, 3- або 4-вимірний). Приклади включають в себе вершини, кольори, нормальні вектори, і текстурні координати. Багато інших програм можуть корисно це використати, а також через їх більш високу продуктивність, векторні команди (SIMD) вже давно доступні на процесорах.
GPU проти CPU
Спочатку, дані просто передавалися в одному напрямку з центрального процесора до GPU, а потім до пристрою відображення. Однак, з плином часу, для графічних процесорів стало цінним зберігати спершу прості, потім складні структури даних, які передаються назад в процесор, що аналізує зображення, або набір науково представлених даних у форматі 2D або 3D, що відеокарта може зрозуміти. Позаяк GPU має доступ до кожної операції малювання, він може аналізувати дані в цих формах дуже швидко; в той час як процесор повинен опитати кожен піксель або елемент даних набагато повільніше, оскільки швидкість доступу між центральним процесором і його більшим простором оперативної пам'яті (або ще у гіршому випадку, жорсткого диску) є повільніша, ніж на графічних процесорах і відеокартах, які, як правило, містять менші кількості більш дорогої пам'яті, до якої доступ можна отримати набагато швидше.
Передача частини набору даних, які будуть проаналізовані на цю GPU пам'ять у вигляді текстур або інших легко зрозумілих GPU форм призводить до збільшення швидкості. Відмінною особливістю конструкції GPGPU є здатність передавати інформацію в обох напрямках назад від GPU до CPU; як правило, швидкість передачі даних в обох напрямках є ідеально висока, в результаті чого ефект множення впливає на швидкість конкретного алгоритму високого використання. GPGPU конвеєри можуть підвищити ефективність на особливо великих наборах даних та / або даних, що містять 2D або 3D зображення. Він використовується в складних графічних конвеєрах, а також наукових обчисленнях; зокрема, в областях з великими наборами даних, таких як відображення геному, або там, де дво- або тривимірній аналіз корисний — зокрема, аналіз біомолекул, дослідження білків, і в інших складних галузях органічної хімії. Такі конвеєри можуть також значно поліпшити ефективність обробки зображень та комп'ютерного зору, поміж інших областей.
GPGPU це концепт програмного забезпечення, а не апаратного. Тим не менш, спеціалізовані конструкції устаткування можуть ще більше підвищити ефективність GPGPU трубопроводів[], які традиційно виконують відносно мало алгоритмів на дуже великих обсягах даних. Масово розпаралелені завдання гігантських рівнів даних, таким чином, можуть бути розпаралелені ще більше за допомогою спеціалізованих установок, таких як обчислювальні стійки (багато подібних, вузькоспеціалізованих машин, побудованих в «стійці»), який додає третій шар — багато обчислювальних блоків кожен з яких використовує багато центральних процесорів щоб відповідати багатьом графічним.
Тип відмінності | CPU | GPU |
Створення потоку (нитки) | Займає дуже багато часу | Займає мало часу |
Робота у потоці (нитці) | Може виконуватися усе що завгодно | Краще виконувати легкі математичні обчислення |
Кількість потоків (ниток) | Мало | Дуже багато (чим більше тим краще) |
Кеш
Історично, процесори використовували апаратні кеші, а ранішні графічні процесори забезпечували лише програмну локальну пам'ять. Проте, оскільки графічні процесори починали використовуватись все більше і більше для обличслень загального призначення, їх почали створювати з апаратними багаторівневими кешами, що допомогло GPU просунутись у напрямку головного апаратного забезпечення для обчислень.
Регістровий файл
GPU мають дуже великі регістрові файли, що дозволяє скоротити затримки при перемиканні контексту. Розмір регістрового файлу також збільшується покоління від покоління, наприклад, загальних розмір регістрового файлу на GPU поколінь Maxwell (GM200) та Pascal відповідно 6 MiB та 14 MiB. Якщо подивитись на розмір файлу регістрів для ЦП, то він є маленьким, зазвичай, це сотні кілобайт.
Енергоефективність
Ряд науково-дослідних проектів порівняли енергоефективність GPU з CPU і FPGA.
Графічні процесори розроблені спеціально для роботи з графікою і, таким чином, є дуже обмежені в операціях та програмуванні. Завдяки своїй конструкції, графічні процесори є ефективними тільки для завдань, які можуть бути вирішені за допомогою обробки потоку та апаратні засоби можуть бути використані тільки певними шляхами.
Обробка потоків
Графічні процесори можуть обробляти тільки незалежні вершини і фрагменти, але можуть обробляти багато з них паралельно. Це особливо ефективно, коли програміст бажає обробляти безліч вершин або фрагментів таким же чином. У цьому сенсі графічні процесори є потоковими процесорами- процесорами, які можуть працювати паралельно, запустивши одне ядро на безліч записів в потоці відразу.
Потік це є просто набір записів, які вимагають подібне обчислення. Потоки забезпечують паралелізм даних. Ядра є функцією, яка застосовується до кожного елементу в потоці. У GPU вершини і фрагменти є елементами в потоках і вершинах, і фрагменти шейдерів є ядрами які будуть працювати на них. Так як графічні процесори обробляють елементи самостійно, немає ніякого способу, щоб мати спільні або статичні дані. Для кожного елемента можна читати тільки від входу, виконувати операції на ньому, і записати на вихід. Допустимо мати кілька входів і кілька виходів, але не шматок пам'яті для читання і запису.
Арифметична інтенсивність визначається як кількість операцій, що виконуються через слово переданої пам'яті. Це важливо для GPGPU додатків мати високу інтенсивність, інакше затримка доступу до пам'яті буде обмежувати обчислювальне прискорення.
Поняття програмування на графічних процесорах
Обчислювальні ресурси
Є безліч обчислювальних ресурсів, доступних на GPU:
- Програмовані процесори — вершина, примітив, фрагмент і, головним чином, обчислювальні конвеєри дозволяють програмісту виконувати ядро на потоках даних
- Растеризатор — створює фрагменти і інтерполяцію за вертексні константи, такі як текстурні координати і колір
- Текстурна одиниця — інтефрейс для читання пам'яті
- Кадровий буфер — інтефрейс для запису пам'яті
Насправді, програміст може замінити текстуру-для-запису для виведення замість буфера кадрів. Це досягається або через Рендер в текстуру ((Render to Texture)(RTT)), Render-To-Backbuffer-Copy-To-Texture (RTBCTT) (RTBCTT).
Textures as stream
Найбільш поширеною формою потоку в GPGPU є 2D сітки, тому що це відповідає природі рендеринга моделі, вбудованої в GPU. Багато обчислень мають природну карту в сітках: матричної алгебри, обробки зображень, фізичній основі моделювання, і так далі.
Kernels
Ядра можна розглядати як тіло циклу. Наприклад, програміст працює з сіткою на процесорі, і має такий код:
// Input and output grids have 10000 x 10000 or 100 million elements. void transform_10k_by_10k_grid(float in[10000][10000], float out[10000][10000]) { for (int x = 0; x < 10000; x++) { for (int y = 0; y < 10000; y++) { // The next line is executed 100 million times out[x][y] = do_some_hard_work(in[x][y]); } } }
На графічному процесорі, програміст визначає тільки тіло циклу як ядро та дані які потрібно зациклити (викликаючи геометричну обробку).
Керування потоком
У послідовному коді можливо контролювати потік програми використовуючи конструкцію if-then-else та різні форми циклів. Такі структури контролю потоку були недавно додані до графічних процесорів.
Останні графічні процесори дозволяють розгалуження, але зазвичай із штрафом до продуктивності. Розгалужування в загальному повинно бути уникнуте у внутрішніх циклах CPU або GPU коду.
GPU методи
Операція map застосовує задану функцію (ядро) до кожного елементу в потоці. Простим прикладом є множення кожного значення в потоці на константу (збільшення яскравості зображення). Операція map проста у застосуванні на GPU: програміст генерує фрагмент для кожного пікселя на екрані і застосовує до кожного з них фрагмент програми. Результуючий потік того ж розміру збережений у вихідному буфері.[]
Редукція
Деякі обчислення вимагають обрахунок меншого потоку (потік з одного елементу) з більшого потоку. Це називається редукцією (зменшенням) потоку. Загалом, редукцію можна досягнути в декілька кроків. Результати з попереднього кроку використовуються як вхідні для наступного і до діапазону для якого операція застосовується.
Фільтрація потоку
Фільтрація потоку, по суті, це нерівномірна редукція. Фільтрація включає в себе видалення елементів з потоку, заснованого на певних умовах.
Scan (сканування)
Операція сканування, також відома як паралельний префікс суми, відбувається у векторі (потоці) елементів даних і асоціативній бінарній функції '+' з одиницею 'i'. Якщо вхід [а0, а1, а2, а3, …], виключаюче сканування виробляє вихід [I, а0, а0 + а1, а0 + A1 + A2, …], у той час коли включаюче сканування виробляє вихід [а0, а0 + а1, а0 + а1 + а2, а0 + а1 + а2 + а3, …]. Хоча на перший погляд може здатися, що операція по своїй суті послідовна, ефективні алгоритми паралельного сканування можливі й були реалізовані на графічних процесорах. Операція сканування має застосування у, наприклад, швидкому сортуванні та розсіяному множенні матриці на вектор.
Scatter (розкид)
Операція scatter є найбільш природно визначеною у вертексних (вершинних) процесорах. Такий процесор має здатність визначити позицію вершини, який дозволяє програмісту контролювати де зберігається інформація у сітці. Також можливі інші розширення, такі як контроль того, наскільки велика територія яку охоплює вершина.
Фрагментний процесор не може виконувати пряму операцію розкиду, тому що розташування кожного фрагменту на сітці є фіксованим в час створення фрагменту і не може бути змінене програмістом. Проте, логічна операція розкиду може іноді бути перевикликана або складена з додатковим збірковим кроком. Імплементація розкиду сопчатку виділить і вихідне значення, і вихідну адресу. Відразу після цього збіркова операція порівнює адреси щоб побачити чи вихідні значення прикріплене до поточного вихідного слоту.
Gather (збір)
Цей метод є зворотнім до операції розкиду. Після того як розкид впорядковує елементи щодо карти, збірка може відновити порядок елементів відповідно до карти яку використала операція розкиду.
Sort (сортування)
Операція сортування перетворює невпорядковиний набір елементів у впорядкований. Найбільш звичною імплементацією на графічному процесорі є використання порозрядного сортування для цілочисельних даних та даних з рухомою комою, крупнозернистого Сортування злиттям, та дрібнозернистих мереж сортування для загальних порівняльних даних.
Search (пошук)
Операція пошуку дозволяє програмісту знайти конкретний елемент в потоці, або, можливо, знайти сусідів заданого елемента. GPU не використовується для прискорення пошуку для окремого елемента, але замість цього використовується для запуску декількох пошуків одночасно. В основному методика пошуку використовуєє бінарний пошук на відсортованих елементах.
Структури даних
На можна GPU представити різноманітні структури даних:
- Щільні масиви
- Розріджені масиви — статичні або динамічні
- Адаптивні структури (об'єднання)
Додатки
Нижче наведені деякі області, в яких використовується обчислення загального призначення на графічних процесорах:
- Комп'ютерні кластери або різновид паралельних обчислень (з використанням технології ) для розрахунку ресурсномістких завдань:
- Кластери високої потужності
- Ґрід обчислення (вид розподілених обчислень) (з'днання гетерогенних комп'ютерів в мережу для ствоерння віртуальної комп'ютерної архітектури)
- (Кластери балансування навантаження)
- Статистична фізика
- — 2D і 3D
- методи
- CT реконструкція
- Швидке перетворення Фур'є
- Алгоритм K-найближчих сусідів
- Нечітка логіка
- Тональне відображення
- Цифрова обробка сигналів
- Обробка зображень
- Обробка відео
- Апаратне прискорення декодування відео та постобробки
- Компенсація руху
- Дискретне косинусне перетворення
- Декодування змінної довжини
- Зниження шуму
- Корекція кольору
- Апаратне прискорення кодування відео і попередньої обробки
- Апаратне прискорення декодування відео та постобробки
- Глобальне освітлення — Трасування променів, Метод фотонних карт та ін
- Геометричні обчислення — конструктивна блокова геометрія, дистанційні поля, виявлення зіткнень, обчислення прозорості, генерація тіней
- Наукові обчислення
- Метод Монте-Карло про поширення світла
- Прогноз погоди
- Кліматологія
- Молекулярне моделювання
- Квантова механіка
- Астрофізика
- Біоінформатика
- Фінансовий інжиніринг
- Медична візуалізація
- Комп'ютерний зір
- Цифрова обробка сигналів
- Теорія автоматичного керування
- Дослідження операцій
- Штучна нейронна мережа
- Операції з базою даних
- Рівняння Больцмана
- Криптографія and Криптоаналіз
- Реалізація MD6
- Реалізація AES
- Implementation of DES
- Implementation of RSA
- Еліптична криптографія
- Зламування паролів
- Криптовалюта, обробка транзакцій («майнинг» Bitcoin)
- Схемотехніка
- Антивірусні програми
- Виявлення вторгнень
- Збільшення обчислювальної потужності для таких проектів розподілених обчислень як SETI@home, Einstein@Home
Див. також
Примітки
- Fung, et al., "Mediated Reality Using Computer Graphics Hardware for Computer Vision" [ 2 квітня 2012 у Wayback Machine.], Proceedings of the International Symposium on Wearable Computing 2002 (ISWC2002), Seattle, Washington, USA, 7–10 October 2002, pp. 83–89.
- An EyeTap video-based featureless projective motion estimation assisted by gyroscopic tracking for wearable computer mediated reality, ACM Personal and Ubiquitous Computing published by Springer Verlag, Vol.7, Iss. 3, 2003.
- "Computer Vision Signal Processing on Graphics Processing Units", Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2004) [ 19 серпня 2011 у Wayback Machine.]: Montreal, Quebec, Canada, 17–21 May 2004, pp. V-93 – V-96
- Chitty, D. M. (2007, July). A data parallel approach to genetic programming using programmable graphics hardware [ 8 серпня 2017 у Wayback Machine.]. In Proceedings of the 9th annual conference on Genetic and evolutionary computation (pp. 1566-1573). ACM.
- «Using Multiple Graphics Cards as a General Purpose Parallel Computer: Applications to Computer Vision», Proceedings of the 17th International Conference on Pattern Recognition (ICPR2004) [ 18 липня 2011 у Wayback Machine.], Cambridge, United Kingdom, 23-26 August 2004, volume 1, pages 805–808.
- Mittal, S.; Vetter, J. (2015). A Survey of CPU-GPU Heterogeneous Computing Techniques. ACM Computing Surveys. 47 (4): 1—35. doi:10.1145/2788396.
- DOI:10.1016/j.parco.2011.10.002
Нема шаблону {{}}.заповнити вручну - Tarditi, David; Puri, Sidd; Oglesby, Jose (2006). Accelerator: using data parallelism to program GPUs for general-purpose uses. ACM SIGARCH Computer Architecture News. 34 (5).
- Che, Shuai; Boyer, Michael; Meng, Jiayuan; Tarjan, D.; Sheaffer, Jeremy W.; Skadron, Kevin (2008). A performance study of general-purpose applications on graphics processors using CUDA. J. Parallel and Distributed Computing. 68 (10): 1370—1380. doi:10.1016/j.jpdc.2008.05.014.
- [1] [ 9 серпня 2011 у Wayback Machine.]: OpenCL at the Khronos Group
- http://www.hpcwire.com/hpcwire/2012-02-28/opencl_gains_ground_on_cuda.html [ 23 квітня 2012 у Wayback Machine.] «As the two major programming frameworks for GPU computing, OpenCL and CUDA have been competing for mindshare in the developer community for the past few years.»
- James Fung, Steve Mann, Chris Aimone, «OpenVIDIA: Parallel GPU Computer Vision», Proceedings of the ACM Multimedia 2005, Singapore, 6-11 November 2005, pages 849–852
- . Архів оригіналу за 26 серпня 2013. Процитовано 28 травня 2015.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - «A Survey of Techniques for Managing and Leveraging Caches in GPUs [ 16 лютого 2015 у Wayback Machine.]», S. Mittal, JCSC, 23(8), 2014.
- «A Survey of Techniques for Architecting and Managing GPU Register File [ 26 березня 2016 у Wayback Machine.]», IEEE TPDS, 2016
- «Inside Pascal: Nvidia's Newest Computing Platform [ 7 травня 2017 у Wayback Machine.]»
- «A Survey of Methods for Analyzing and Improving GPU Energy Efficiency [ 10 січня 2018 у Wayback Machine.]», Mittal et al., ACM Computing Surveys, 2014.
- Asanovic, K., Bodik, R., , Keaveny, T., Keutzer, K., Kubiatowicz, J., Morgan, N., Patterson, D., Sen, K., Wawrzynek, J., Wessel, D., Yelick, K.: A view of the parallel computing landscape. Commun. ACM 52(10) (2009) 56-67
- . Архів оригіналу за 26 квітня 2009. Процитовано 28 травня 2015.
- . Архів оригіналу за 16 грудня 2014. Процитовано 8 листопада 2015.
- . Архів оригіналу за 5 червня 2015. Процитовано 28 травня 2015.
- (PDF). Архів оригіналу (PDF) за 23 вересня 2015. Процитовано 28 травня 2015.
- . Архів оригіналу за 16 березня 2015. Процитовано 28 травня 2015.
- [2]: Merrill, Duane. Allocation-oriented Algorithm Design with Application to GPU Computing. Ph.D. dissertation, Department of Computer Science, University of Virginia. Dec. 2011.
- [3] [ 22 травня 2015 у Wayback Machine.]: Sean Baxter. Modern gpu. http://nvlabs.github.io/moderngpu/ [ 25 травня 2015 у Wayback Machine.], 2013.
- Fast k-nearest neighbor search using GPU. In Proceedings of the CVPR Workshop on Computer Vision on GPU, Anchorage, Alaska, USA, June 2008. V. Garcia and E. Debreuve and M. Barlaud.
- Hasan Khondker S., Chatterjee Amlan, Radhakrishnan, Sridhar, and Antonio John K., «Performance Prediction Model and Analysis for Compute-Intensive Tasks on GPUs.», The 11th IFIP International Conference on Network and Parallel Computing (NPC-2014), Ilan, Taiwan, Sept. 2014, Lecture Notes in Computer Science (LNCS), pp 612-17, .
- M. Cococcioni, R. Grasso, M. Rixen, Rapid prototyping of high performance fuzzy computing applications using high level GPU programming for maritime operations support, in Proceedings of the 2011 IEEE Symposium on Computational Intelligence for Security and Defense Applications (CISDA), Paris, 11-15 April 2011
- Wilson, Ron (3 вересня 2009). DSP brings you a high-definition moon walk. EDN. Архів оригіналу за 22 січня 2013. Процитовано 3 вересня 2009.
Lowry is reportedly using Nvidia Tesla GPUs (graphics-processing units) programmed in the company's CUDA (Compute Unified Device Architecture) to implement the algorithms. Nvidia claims that the GPUs are approximately two orders of magnitude faster than CPU computations, reducing the processing time to less than one minute per frame.
- Alerstam, E.; Svensson, T.; Andersson-Engels, S. (2008). (PDF). J. Biomedical Optics. 13: 060504. doi:10.1117/1.3041496. Архів оригіналу (PDF) за 9 серпня 2011. Процитовано 28 травня 2015.
- . Архів оригіналу за 12 липня 2010. Процитовано 28 травня 2015.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - Schatz, M.C., Trapnell, C., Delcher, A.L., Varshney, A. (2007) High-throughput sequence alignment using Graphics Processing Units. [ 21 травня 2015 у Wayback Machine.] BMC Bioinformatics 8:474.
- GPU computing in OR [ 13 січня 2015 у Wayback Machine.] Vincent Boyer, Didier El Baz. «Recent Advances on GPU Computing in Operations Research». Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), 2013 IEEE 27th International, On page(s): 1778–1787
- RCPSP on GPU Libor Bukata, Premysl Sucha, Zdenek Hanzalek. «Solving the Resource Constrained Project Scheduling Problem using the parallel Tabu Search designed for the CUDA platform». Journal of Parallel and Distributed Computing (2014).
- GPU-based Sorting in PostgreSQL [Архівовано 2 серпня 2011 у WebCite] Naju Mancheril, School of Computer Science — Carnegie Mellon University
- AES on SM3.0 compliant GPUs.[недоступне посилання] Owen Harrison, John Waldron, AES Encryption Implementation and Analysis on Commodity Graphics Processing Units. In proceedings of CHES 2007.
- AES and modes of operations on SM4.0 compliant GPUs. [ 21 серпня 2010 у Wayback Machine.] Owen Harrison, John Waldron, Practical Symmetric Key Cryptography on Modern Graphics Hardware. In proceedings of USENIX Security 2008.
- RSA on SM4.0 compliant GPUs.[недоступне посилання] Owen Harrison, John Waldron, Efficient Acceleration of Asymmetric Cryptography on Graphics Hardware. In proceedings of AfricaCrypt 2009.
- . . Архів оригіналу за 30 грудня 2010. Процитовано 7 листопада 2010.
- . MSNBC. 19 серпня 2010. Архів оригіналу за 29 жовтня 2010. Процитовано 7 листопада 2010.
- Lerner, Larry (9 квітня 2009). Viewpoint: Mass GPUs, not CPUs for EDA simulations. EE Times. Процитовано 3 травня 2009.
- W2500 ADS Transient Convolution GT.
accelerates signal integrity simulations on workstations that have NVIDIA Compute Unified Device Architecture (CUDA)-based Graphics Processing Units (GPU)
- GrAVity: A Massively Parallel Antivirus Engine [ 27 липня 2010 у Wayback Machine.]. Giorgos Vasiliadis and Sotiris Ioannidis, GrAVity: A Massively Parallel Antivirus Engine. In proceedings of RAID 2010.
- . Kaspersky Lab. 14 грудня 2009. Архів оригіналу за 19 червня 2010. Процитовано 28 травня 2015.
During internal testing, the Tesla S1070 demonstrated a 360-fold increase in the speed of the similarity-defining algorithm when compared to the popular Intel Core 2 Duo central processor running at a clock speed of 2.6 GHz.
- Gnort: High Performance Network Intrusion Detection Using Graphics Processors [ 28 грудня 2018 у Wayback Machine.]. Giorgos Vasiliadis et al., Gnort: High Performance Network Intrusion Detection Using Graphics Processors. In proceedings of RAID 2008.
- Regular Expression Matching on Graphics Hardware for Intrusion Detection [ 27 липня 2010 у Wayback Machine.]. Giorgos Vasiliadis et al., Regular Expression Matching on Graphics Hardware for Intrusion Detection. In proceedings of RAID 2009.
- . Архів оригіналу за 16 червня 2013. Процитовано 28 травня 2015.
Посилання
- http://www.gpgpu.ru/ [ 31 серпня 2020 у Wayback Machine.] Форум (рос.)
- OpenCL [ 9 серпня 2011 у Wayback Machine.] Офіційна сторінка стандарту (англ.)
- CUDA [ 6 січня 2014 у Wayback Machine.] Домашня сторінка (англ.)
- AMD FireStream [ 21 грудня 2012 у Wayback Machine.] Домашня сторінка (англ.)
- C++AMP [ 8 січня 2013 у Wayback Machine.] Опис на MSDN (англ.)
- http://gizmodo.com/5252545/giz-explains-gpgpu-computing-and-why-itll-melt-your-face-off [ 11 січня 2013 у Wayback Machine.] (англ.)
- http://arstechnica.com/business/2011/04/ask-ars-what-is-a-cpu-thread/ [ 3 грудня 2012 у Wayback Machine.] (англ.)
- Open Source OpenCL Compiler and Linker
- NVIDIA Developer Zone [ 16 травня 2008 у Wayback Machine.]
- What is GPU Computing? [Архівовано 31 травня 2012 у WebCite]
- Tech Report article: «ATI stakes claims on physics, GPGPU ground» [ 14 жовтня 2008 у Wayback Machine.] by Scott Wasson
- GPU accelerated Monte Carlo simulation of the 2D and 3D Ising model — porting a standard model to GPU hardware
- using the Microsoft Research Accelerator system
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Obchislennya zagalnogo priznachennya na grafichnih procesorah GPGPU ridko GPGP abo GP U ce vikoristannya grafichnogo procesora GPU yakij zazvichaj obroblyaye obchislennya tilki dlya komp yuternoyi grafiki dlya togo shob vikonanati obchislennya v dodatkah tradicijno vikonuvanih centralnim procesorom CPU Vikoristannya dekilkoh videokart v odnomu komp yuteri abo velikoyi kilkosti grafichnih chipiv paralelizuye vzhe paralelnu prirodu obrobki grafiki Bilshe togo navit odna GPU CPU platforma procesora zabezpechuye perevagi yaki ne proponuyut dekilka centralnih procesoriv CPU sami po sobi za rahunok specializaciyi v kozhnomu chipi Po suti konveyer GPGPU ye vidom paralelnoyi obrobki mizh odnim abo bilshe grafichnih procesoriv i centralnih procesoriv yaki analizuyut dani tak yakbi voni buli v zobrazheni na malyunku abo u inshij grafichnij formi Oskilki videokarti mozhut pracyuvati nad zobrazhennyam i grafichnimi danimi zi shvidkistyu v desyatki abo navit sotni raziv bilshoyu nizh u tradicijnogo procesora perenesennya danih u grafichni dani a potim za dopomogoyu GPU pereglyadati i analizovuvati yih v rezultati mozhe prizvesti do suttyevogo priskorennya Konveyeri GPGPU rozrobleni z naukovih obchislen bagato GPGPU proektiv zalucheni v bioinformatici ta molekulyarnij biologiyi IstoriyaObchislennya zagalnogo priznachennya na grafichnih procesorah stalo praktichnim i populyarnim pislya 2001 z poyavoyu programovanih shejderiv i pidtrimki obchislen z ruhomoyu komoyu na grafichnih procesorah Zokrema problemi z uchastyu matric i abo vektoriv osoblivo dvoh troh abo chotiroh vimirnih vektoriv bulo legko perevesti na GPU yakij diye z ridnoyu utochniti shvidkistyu i pidtrimuye ci tipi Eksperimenti naukovih obchislen z novim obladnannyam pochalosya zi zvichajnogo mnozhennya matric 2001 odna z pershih spilnih naukovih program sho pracyuvala shvidshe na GPU nizh na centralnih procesorah bula realizaciya LU faktorizaciyi 2005 Ci ranni sprobi vikoristovuvati grafichni procesori yak procesori zagalnogo priznachennya vimagali pereformulyuvannya obchislyuvalnih zavdan z tochki zoru grafichnih primitiviv sho pidtrimuyutsya dvoma osnovnimi programnimi interfejsami API dlya grafichnih procesoriv OpenGL i DirectX Ce gromizdke peretvorennya bulo usunene z poyavoyu mov programuvannya zagalnogo priznachennya ta interfejsiv takih yak Sh RapidMind Brook ta Accelerator Voni suprovodzhuvalisya tehnologiyeyu CUDA vid Nvidia yaka dozvolila programistam ignoruvati osnovni grafichni koncepciyi na korist bilsh zvichnih visokoproduktivnih obchislyuvalnih koncepcij Novi aparatni propoziciyi vid nezalezhnih postachalnikiv vklyuchali vid Microsoft ta Apple Khronos OpenCL grupi Ce oznachaye sho suchasni konveyeri GPGPU mozhut vikonuvati diyi nad bud yakimi operaciyami z velikimi danimi big data i vikoristovuvati shvidkist GPU ne vimagayuchi povnogo i yavnogo peretvorennya danih v grafichnu formu RealizaciyaOpenCL vidkritij standart po rozrobci program kotri mozhut vikonuvatisya na grafichnih procesorah ta centralnih procesorah Mova programuvannya C prikladnij programnij interfejs kotrij dozvolyaye robiti obchislennya na videoadapteri danij interfejs ye chastinoyu DirectX pidtrimuyetsya pochinayuchi z 10 versiyi DirectX C AMP biblioteka rozroblena kompaniyeyu Microsoft dlya obchislen za dopomogoyu grafichnih procesoriv dlya roboti neobhidnij DirectX 11 Mova programuvannya C CUDA arhitektura dlya programno aparatnih obchislen za dopomogoyu grafichnih procesoriv vid kompaniyi NVIDIA Mova programuvannya C AMD FireStream arhitektura dlya programno aparatnih obchislen za dopomogoyu grafichnih procesoriv vid kompaniyi AMD Nastilni komp yuteri Bud yaka mova yaka dozvolyaye kodu pracyuyuchomu na centralnomu procesori zvernutis do shejderiv GPU dlya povernennya znachen mozhe stvoriti GPGPU frejmvork OpenCL v danij chas ye dominuyuchoyu movoyu z vidkritim vihidnim kodom dlya oblichslen zagalnogo priznachennya na GPU ta ye vidkritim standartom viznachenim Khronos Group OpenCL zabezpechuye kros platformlenu GPGPU platformu yaka dodatkovo pidtrimuye paralelni obchisllennya danih na centralnih procesorah CPU OpenCL aktivno pidtrimuyetsya na platformah Intel AMD Nvidia i ARM Poshirenim frejmvorkom ye NVIDIA CUDA Vona vipushena v 2006 roci ce SDK i API yakij dozvolyaye vikoristovuvati movu programuvannya C dlya koduvannya algoritmiv dlya vikonannya na GPU seriyi GeForce 8 Standarti programuvannya dlya paralelnih obchislen vklyuchayut OpenCL nezalezhnih postachalnikiv OpenACC i OpenHMPP ye zasnovnikom GPGPU org i terminu GPGPU OpenVIDIA buv rozroblenij v Universiteti Toronto protyagom 2003 2005 u spivpraci z NVIDIA Obrobka GPGPU takozh vikoristovuyetsya dlya imitaciyi nyutonivskoyi fiziki fizichnimi rushiyami i komercijnoyi realizaciyi vklyuchayuchi Havok Physics i PhysX obidva z yakih yak pravilo vikoristovuyutsya dlya videoigor Priskorenij masivnij paralelizm S biblioteka yaka priskoryuye vikonannya C kodu skoristavshis perevagoyu grafichnogo procesora Mobilni komp yuteri U zv yazku z tendenciyeyu zbilshennya potuzhnosti mobilnih grafichnih procesoriv programuvannya zagalnogo priznachennya stalo dostupne i na mobilnih pristroyah sho pracyuyut pid keruvannyam osnovnih mobilnih operacijnih sistem Google Android 4 2 pidtrimuye vikonannya kodu na grafichnomu procesori mobilnih pristroyiv Apple predstavila vlasnij programnij interfejs Metal dlya iOS dodatkiv zdatnij vikonati dovilnij kod cherez obchislyuvalni shejderi GPU Aparatna pidtrimkaKomp yuterni videokarti viroblyayutsya riznimi postachalnikami takimi yak NVIDIA i AMD ATI Karti vid takih postachalnikiv vidriznyayutsya za realizaciyeyu pidtrimki formatu danih napriklad cilochiselni i formati z ruhomoyu komoyu 32 bit i 64 bit Microsoft predstavila standart Shader Model shob dopomogti ranzhuvati rizni osoblivosti grafichnih kart v prostomu nomeri versij shejdernoyi modeli 1 0 2 0 3 0 i t d Cilochiselnij format danih Grafichni karti do DirectX 9 pidtrimuvali tilki palitreni abo cilochiselni tipi koloru Dostupni rizni formati kozhen z yakih mistit chervonij zelenij i sinij elementi Inodi dodayut dodatkovi znachennya alfa yaki budut vikoristovuvatisya dlya prozorosti Zagalni formati 8 Bit na piksel Inodi rezhim palitri de kozhne znachennya indeksu v tablici z realnim znachennyam vkazane v odnomu z inshih formativ Inodi tri bita dlya chervonogo tri bita dlya zelenogo i dva biti dlya sinogo 16 bit na piksel Zvichajno vidilyayetsya u viglyadi p yati bit dlya chervonogo shist bit dlya zelenogo i p yat bit dlya sinogo 24 bit na piksel visim bitiv dlya kozhnogo z chervonogo zelenogo i sinogo 32 bit na piksel visim bit dlya kozhnogo z chervonogo zelenogo sinogo ta alfa Format danih z ruhomoyu komoyu Dlya pochatkovih fiksovanih funkcij abo obmezhenih mozhlivostej programuvannya grafiki tobto vklyuchno do DirectX 8 1 sumisnih GPU cogo bulo dostatno tomu sho take zh predstavlennya vikoristovuvalos u monitorah Take predstavlennya maye pevni obmezhennya Vrahovuyuchi dostatnyu potuzhnist obrobki grafiki navit programisti grafiki hotili b vikoristovuvati krashi formati taki yak formati danih z ruhomoyu komoyu shob otrimati efekti taki yak visokij dinamichnij diapazon zobrazhen Bagato GPGPU dodatkiv vimagayut tochnosti formatu z ruhomoyu komoyu yaka prijshla z videokartami vidpovidno do specifikaciyi DirectX 9 DirectX 9 Shader Model 2 x zaproponuvala pidtrimku dvoh tipiv tochnosti povnoyi i chastkovoyi Povna tochnist mozhe buti FP32 abo FP24 floating point 32 abo 24 bit na komponentu abo bilshe v toj chas yak chastkova tochnist bula FP16 Seriya grafichnih procesoriv ATI R300 pidtrimuvala tochnist FP24 tilki v truboprovodi programovanogo fragmenta hocha FP32 pidtrimuvalas v verteksnih procesorah a seriya Nvidia NV30 pidtrimuye yak FP16 tak i FP32 Inshi virobniki taki yak S3 Graphics i pidtrimuyut sumish formativ do FP24 Shader Model 3 0 zminila specifikaciyu zbilshuyuchi vimogi do povnoyi tochnosti yak minimum do pidtrimki FP32 v truboprovodi fragmenta Shader Model 3 0 v sumisnosti z pokolinnyam R5xx Radeon X1000 seriyi pidtrimuye tilki FP32 cherez truboprovid a seriyi Nvidia NV4x i G7X ranishe pidtrimuvali i povnu tochnist FP32 i chastkovu FP16 Hocha ce i ne peredbacheno Shader Model 3 0 yak grafichni procesori ATI tak i Nvidia Shader Model 3 0 predstavili pidtrimku dlya zmishuvannya cilej vizualizaciyi FP16 spriyayuchi pidtrimci visoko dinamichnogo vidobrazhennya diapazonu Vektorizaciya Bilshist operacij na GPU pracyuyut takim vektorizovanim chinom odna operaciya mozhe buti vikonana na chotiroh znachennyah odnochasno Napriklad yaksho odin kolir lt R1 G1 B1 gt bude neobhidno modulyuvati za dopomogoyu inshogo koloru lt R2 G2 B2 gt to grafichnij procesor mozhe viroblyati rezultuyuchij kolir lt R1 R2 G1 G2 V1 B2 gt v odnij operaciyi Cya funkciya korisna v grafici tomu sho majzhe kozhen osnovnij tip danih yavlyaye soboyu vektor 2 3 abo 4 vimirnij Prikladi vklyuchayut v sebe vershini kolori normalni vektori i teksturni koordinati Bagato inshih program mozhut korisno ce vikoristati a takozh cherez yih bilsh visoku produktivnist vektorni komandi SIMD vzhe davno dostupni na procesorah GPU proti CPUSpochatku dani prosto peredavalisya v odnomu napryamku z centralnogo procesora do GPU a potim do pristroyu vidobrazhennya Odnak z plinom chasu dlya grafichnih procesoriv stalo cinnim zberigati spershu prosti potim skladni strukturi danih yaki peredayutsya nazad v procesor sho analizuye zobrazhennya abo nabir naukovo predstavlenih danih u formati 2D abo 3D sho videokarta mozhe zrozumiti Pozayak GPU maye dostup do kozhnoyi operaciyi malyuvannya vin mozhe analizuvati dani v cih formah duzhe shvidko v toj chas yak procesor povinen opitati kozhen piksel abo element danih nabagato povilnishe oskilki shvidkist dostupu mizh centralnim procesorom i jogo bilshim prostorom operativnoyi pam yati abo she u girshomu vipadku zhorstkogo disku ye povilnisha nizh na grafichnih procesorah i videokartah yaki yak pravilo mistyat menshi kilkosti bilsh dorogoyi pam yati do yakoyi dostup mozhna otrimati nabagato shvidshe Peredacha chastini naboru danih yaki budut proanalizovani na cyu GPU pam yat u viglyadi tekstur abo inshih legko zrozumilih GPU form prizvodit do zbilshennya shvidkosti Vidminnoyu osoblivistyu konstrukciyi GPGPU ye zdatnist peredavati informaciyu v oboh napryamkah nazad vid GPU do CPU yak pravilo shvidkist peredachi danih v oboh napryamkah ye idealno visoka v rezultati chogo efekt mnozhennya vplivaye na shvidkist konkretnogo algoritmu visokogo vikoristannya GPGPU konveyeri mozhut pidvishiti efektivnist na osoblivo velikih naborah danih ta abo danih sho mistyat 2D abo 3D zobrazhennya Vin vikoristovuyetsya v skladnih grafichnih konveyerah a takozh naukovih obchislennyah zokrema v oblastyah z velikimi naborami danih takih yak vidobrazhennya genomu abo tam de dvo abo trivimirnij analiz korisnij zokrema analiz biomolekul doslidzhennya bilkiv i v inshih skladnih galuzyah organichnoyi himiyi Taki konveyeri mozhut takozh znachno polipshiti efektivnist obrobki zobrazhen ta komp yuternogo zoru pomizh inshih oblastej GPGPU ce koncept programnogo zabezpechennya a ne aparatnogo Tim ne mensh specializovani konstrukciyi ustatkuvannya mozhut she bilshe pidvishiti efektivnist GPGPU truboprovodiv sho yaki tradicijno vikonuyut vidnosno malo algoritmiv na duzhe velikih obsyagah danih Masovo rozparaleleni zavdannya gigantskih rivniv danih takim chinom mozhut buti rozparaleleni she bilshe za dopomogoyu specializovanih ustanovok takih yak obchislyuvalni stijki bagato podibnih vuzkospecializovanih mashin pobudovanih v stijci yakij dodaye tretij shar bagato obchislyuvalnih blokiv kozhen z yakih vikoristovuye bagato centralnih procesoriv shob vidpovidati bagatom grafichnim Porivnyannya rozrobki program pid CPU ta GPU Vidminnosti rozrobki program pid CPU ta GPU Tip vidminnosti CPU GPUStvorennya potoku nitki Zajmaye duzhe bagato chasu Zajmaye malo chasuRobota u potoci nitci Mozhe vikonuvatisya use sho zavgodno Krashe vikonuvati legki matematichni obchislennyaKilkist potokiv nitok Malo Duzhe bagato chim bilshe tim krashe Kesh Istorichno procesori vikoristovuvali aparatni keshi a ranishni grafichni procesori zabezpechuvali lishe programnu lokalnu pam yat Prote oskilki grafichni procesori pochinali vikoristovuvatis vse bilshe i bilshe dlya oblichslen zagalnogo priznachennya yih pochali stvoryuvati z aparatnimi bagatorivnevimi keshami sho dopomoglo GPU prosunutis u napryamku golovnogo aparatnogo zabezpechennya dlya obchislen Registrovij fajl GPU mayut duzhe veliki registrovi fajli sho dozvolyaye skorotiti zatrimki pri peremikanni kontekstu Rozmir registrovogo fajlu takozh zbilshuyetsya pokolinnya vid pokolinnya napriklad zagalnih rozmir registrovogo fajlu na GPU pokolin Maxwell GM200 ta Pascal vidpovidno 6 MiB ta 14 MiB Yaksho podivitis na rozmir fajlu registriv dlya CP to vin ye malenkim zazvichaj ce sotni kilobajt Energoefektivnist Ryad naukovo doslidnih proektiv porivnyali energoefektivnist GPU z CPU i FPGA Grafichni procesori rozrobleni specialno dlya roboti z grafikoyu i takim chinom ye duzhe obmezheni v operaciyah ta programuvanni Zavdyaki svoyij konstrukciyi grafichni procesori ye efektivnimi tilki dlya zavdan yaki mozhut buti virisheni za dopomogoyu obrobki potoku ta aparatni zasobi mozhut buti vikoristani tilki pevnimi shlyahami Obrobka potokiv Dokladnishe Bagatopotokove obroblennya danih Grafichni procesori mozhut obroblyati tilki nezalezhni vershini i fragmenti ale mozhut obroblyati bagato z nih paralelno Ce osoblivo efektivno koli programist bazhaye obroblyati bezlich vershin abo fragmentiv takim zhe chinom U comu sensi grafichni procesori ye potokovimi procesorami procesorami yaki mozhut pracyuvati paralelno zapustivshi odne yadro na bezlich zapisiv v potoci vidrazu Potik ce ye prosto nabir zapisiv yaki vimagayut podibne obchislennya Potoki zabezpechuyut paralelizm danih Yadra ye funkciyeyu yaka zastosovuyetsya do kozhnogo elementu v potoci U GPU vershini i fragmenti ye elementami v potokah i vershinah i fragmenti shejderiv ye yadrami yaki budut pracyuvati na nih Tak yak grafichni procesori obroblyayut elementi samostijno nemaye niyakogo sposobu shob mati spilni abo statichni dani Dlya kozhnogo elementa mozhna chitati tilki vid vhodu vikonuvati operaciyi na nomu i zapisati na vihid Dopustimo mati kilka vhodiv i kilka vihodiv ale ne shmatok pam yati dlya chitannya i zapisu Arifmetichna intensivnist viznachayetsya yak kilkist operacij sho vikonuyutsya cherez slovo peredanoyi pam yati Ce vazhlivo dlya GPGPU dodatkiv mati visoku intensivnist inakshe zatrimka dostupu do pam yati bude obmezhuvati obchislyuvalne priskorennya Ponyattya programuvannya na grafichnih procesorah Obchislyuvalni resursi Ye bezlich obchislyuvalnih resursiv dostupnih na GPU Programovani procesori vershina primitiv fragment i golovnim chinom obchislyuvalni konveyeri dozvolyayut programistu vikonuvati yadro na potokah danih Rasterizator stvoryuye fragmenti i interpolyaciyu za verteksni konstanti taki yak teksturni koordinati i kolir Teksturna odinicya intefrejs dlya chitannya pam yati Kadrovij bufer intefrejs dlya zapisu pam yati Naspravdi programist mozhe zaminiti teksturu dlya zapisu dlya vivedennya zamist bufera kadriv Ce dosyagayetsya abo cherez Render v teksturu Render to Texture RTT Render To Backbuffer Copy To Texture RTBCTT RTBCTT Textures as stream Najbilsh poshirenoyu formoyu potoku v GPGPU ye 2D sitki tomu sho ce vidpovidaye prirodi renderinga modeli vbudovanoyi v GPU Bagato obchislen mayut prirodnu kartu v sitkah matrichnoyi algebri obrobki zobrazhen fizichnij osnovi modelyuvannya i tak dali Kernels Yadra mozhna rozglyadati yak tilo ciklu Napriklad programist pracyuye z sitkoyu na procesori i maye takij kod Input and output grids have 10000 x 10000 or 100 million elements void transform 10k by 10k grid float in 10000 10000 float out 10000 10000 for int x 0 x lt 10000 x for int y 0 y lt 10000 y The next line is executed 100 million times out x y do some hard work in x y Na grafichnomu procesori programist viznachaye tilki tilo ciklu yak yadro ta dani yaki potribno zacikliti viklikayuchi geometrichnu obrobku Keruvannya potokom U poslidovnomu kodi mozhlivo kontrolyuvati potik programi vikoristovuyuchi konstrukciyu if then else ta rizni formi cikliv Taki strukturi kontrolyu potoku buli nedavno dodani do grafichnih procesoriv Ostanni grafichni procesori dozvolyayut rozgaluzhennya ale zazvichaj iz shtrafom do produktivnosti Rozgaluzhuvannya v zagalnomu povinno buti uniknute u vnutrishnih ciklah CPU abo GPU kodu GPU metodi Operaciya map zastosovuye zadanu funkciyu yadro do kozhnogo elementu v potoci Prostim prikladom ye mnozhennya kozhnogo znachennya v potoci na konstantu zbilshennya yaskravosti zobrazhennya Operaciya map prosta u zastosuvanni na GPU programist generuye fragment dlya kozhnogo pikselya na ekrani i zastosovuye do kozhnogo z nih fragment programi Rezultuyuchij potik togo zh rozmiru zberezhenij u vihidnomu buferi dzherelo Redukciya Deyaki obchislennya vimagayut obrahunok menshogo potoku potik z odnogo elementu z bilshogo potoku Ce nazivayetsya redukciyeyu zmenshennyam potoku Zagalom redukciyu mozhna dosyagnuti v dekilka krokiv Rezultati z poperednogo kroku vikoristovuyutsya yak vhidni dlya nastupnogo i do diapazonu dlya yakogo operaciya zastosovuyetsya Filtraciya potoku Filtraciya potoku po suti ce nerivnomirna redukciya Filtraciya vklyuchaye v sebe vidalennya elementiv z potoku zasnovanogo na pevnih umovah Scan skanuvannya Operaciya skanuvannya takozh vidoma yak paralelnij prefiks sumi vidbuvayetsya u vektori potoci elementiv danih i asociativnij binarnij funkciyi z odiniceyu i Yaksho vhid a0 a1 a2 a3 viklyuchayuche skanuvannya viroblyaye vihid I a0 a0 a1 a0 A1 A2 u toj chas koli vklyuchayuche skanuvannya viroblyaye vihid a0 a0 a1 a0 a1 a2 a0 a1 a2 a3 Hocha na pershij poglyad mozhe zdatisya sho operaciya po svoyij suti poslidovna efektivni algoritmi paralelnogo skanuvannya mozhlivi j buli realizovani na grafichnih procesorah Operaciya skanuvannya maye zastosuvannya u napriklad shvidkomu sortuvanni ta rozsiyanomu mnozhenni matrici na vektor Scatter rozkid Operaciya scatter ye najbilsh prirodno viznachenoyu u verteksnih vershinnih procesorah Takij procesor maye zdatnist viznachiti poziciyu vershini yakij dozvolyaye programistu kontrolyuvati de zberigayetsya informaciya u sitci Takozh mozhlivi inshi rozshirennya taki yak kontrol togo naskilki velika teritoriya yaku ohoplyuye vershina Fragmentnij procesor ne mozhe vikonuvati pryamu operaciyu rozkidu tomu sho roztashuvannya kozhnogo fragmentu na sitci ye fiksovanim v chas stvorennya fragmentu i ne mozhe buti zminene programistom Prote logichna operaciya rozkidu mozhe inodi buti pereviklikana abo skladena z dodatkovim zbirkovim krokom Implementaciya rozkidu sopchatku vidilit i vihidne znachennya i vihidnu adresu Vidrazu pislya cogo zbirkova operaciya porivnyuye adresi shob pobachiti chi vihidni znachennya prikriplene do potochnogo vihidnogo slotu Gather zbir Cej metod ye zvorotnim do operaciyi rozkidu Pislya togo yak rozkid vporyadkovuye elementi shodo karti zbirka mozhe vidnoviti poryadok elementiv vidpovidno do karti yaku vikoristala operaciya rozkidu Sort sortuvannya Operaciya sortuvannya peretvoryuye nevporyadkovinij nabir elementiv u vporyadkovanij Najbilsh zvichnoyu implementaciyeyu na grafichnomu procesori ye vikoristannya porozryadnogo sortuvannya dlya cilochiselnih danih ta danih z ruhomoyu komoyu krupnozernistogo Sortuvannya zlittyam ta dribnozernistih merezh sortuvannya dlya zagalnih porivnyalnih danih Search poshuk Operaciya poshuku dozvolyaye programistu znajti konkretnij element v potoci abo mozhlivo znajti susidiv zadanogo elementa GPU ne vikoristovuyetsya dlya priskorennya poshuku dlya okremogo elementa ale zamist cogo vikoristovuyetsya dlya zapusku dekilkoh poshukiv odnochasno V osnovnomu metodika poshuku vikoristovuyeye binarnij poshuk na vidsortovanih elementah Strukturi danih Na mozhna GPU predstaviti riznomanitni strukturi danih Shilni masivi Rozridzheni masivi statichni abo dinamichni Adaptivni strukturi ob yednannya DodatkiNizhche navedeni deyaki oblasti v yakih vikoristovuyetsya obchislennya zagalnogo priznachennya na grafichnih procesorah Komp yuterni klasteri abo riznovid paralelnih obchislen z vikoristannyam tehnologiyi dlya rozrahunku resursnomistkih zavdan Klasteri visokoyi potuzhnosti Grid obchislennya vid rozpodilenih obchislen z dnannya geterogennih komp yuteriv v merezhu dlya stvoernnya virtualnoyi komp yuternoyi arhitekturi Klasteri balansuvannya navantazhennya Statistichna fizika Model Izinga 2D i 3D metodi CT rekonstrukciya Shvidke peretvorennya Fur ye Algoritm K najblizhchih susidiv Nechitka logika Tonalne vidobrazhennya Cifrova obrobka signaliv Analogova obrobka signaliv Rozpiznavannya movi Obrobka zobrazhen Obrobka videoAparatne priskorennya dekoduvannya video ta postobrobki Kompensaciya ruhu Diskretne kosinusne peretvorennya Dekoduvannya zminnoyi dovzhini Znizhennya shumu Korekciya koloru Aparatne priskorennya koduvannya video i poperednoyi obrobki Globalne osvitlennya Trasuvannya promeniv Metod fotonnih kart ta in Geometrichni obchislennya konstruktivna blokova geometriya distancijni polya viyavlennya zitknen obchislennya prozorosti generaciya tinej Naukovi obchislennya Metod Monte Karlo pro poshirennya svitla Prognoz pogodi Klimatologiya Molekulyarne modelyuvannya Kvantova mehanika Astrofizika Bioinformatika Finansovij inzhiniring Medichna vizualizaciya Komp yuternij zir Cifrova obrobka signaliv Teoriya avtomatichnogo keruvannya Doslidzhennya operacij Shtuchna nejronna merezha Operaciyi z bazoyu danih Rivnyannya Bolcmana Kriptografiya and Kriptoanaliz Realizaciya MD6 Realizaciya AES Implementation of DES Implementation of RSA Eliptichna kriptografiya Zlamuvannya paroliv Kriptovalyuta obrobka tranzakcij majning Bitcoin Shemotehnika Antivirusni programi Viyavlennya vtorgnen Zbilshennya obchislyuvalnoyi potuzhnosti dlya takih proektiv rozpodilenih obchislen yak SETI home Einstein HomeDiv takozhOpenCL OpenMP OpenACC OpenHMPP Bagatopotokove obroblennya danih Fizichnij rushij Fizichnij procesor PPU Havok Physics FX PhysX Close to Metal C AMP Zvukova plata LarrabeePrimitkiFung et al Mediated Reality Using Computer Graphics Hardware for Computer Vision 2 kvitnya 2012 u Wayback Machine Proceedings of the International Symposium on Wearable Computing 2002 ISWC2002 Seattle Washington USA 7 10 October 2002 pp 83 89 An EyeTap video based featureless projective motion estimation assisted by gyroscopic tracking for wearable computer mediated reality ACM Personal and Ubiquitous Computing published by Springer Verlag Vol 7 Iss 3 2003 Computer Vision Signal Processing on Graphics Processing Units Proceedings of the IEEE International Conference on Acoustics Speech and Signal Processing ICASSP 2004 19 serpnya 2011 u Wayback Machine Montreal Quebec Canada 17 21 May 2004 pp V 93 V 96 Chitty D M 2007 July A data parallel approach to genetic programming using programmable graphics hardware 8 serpnya 2017 u Wayback Machine In Proceedings of the 9th annual conference on Genetic and evolutionary computation pp 1566 1573 ACM Using Multiple Graphics Cards as a General Purpose Parallel Computer Applications to Computer Vision Proceedings of the 17th International Conference on Pattern Recognition ICPR2004 18 lipnya 2011 u Wayback Machine Cambridge United Kingdom 23 26 August 2004 volume 1 pages 805 808 Mittal S Vetter J 2015 A Survey of CPU GPU Heterogeneous Computing Techniques ACM Computing Surveys 47 4 1 35 doi 10 1145 2788396 DOI 10 1016 j parco 2011 10 002 Nema shablonu zapovniti vruchnu Tarditi David Puri Sidd Oglesby Jose 2006 Accelerator using data parallelism to program GPUs for general purpose uses ACM SIGARCH Computer Architecture News 34 5 Che Shuai Boyer Michael Meng Jiayuan Tarjan D Sheaffer Jeremy W Skadron Kevin 2008 A performance study of general purpose applications on graphics processors using CUDA J Parallel and Distributed Computing 68 10 1370 1380 doi 10 1016 j jpdc 2008 05 014 1 9 serpnya 2011 u Wayback Machine OpenCL at the Khronos Group http www hpcwire com hpcwire 2012 02 28 opencl gains ground on cuda html 23 kvitnya 2012 u Wayback Machine As the two major programming frameworks for GPU computing OpenCL and CUDA have been competing for mindshare in the developer community for the past few years James Fung Steve Mann Chris Aimone OpenVIDIA Parallel GPU Computer Vision Proceedings of the ACM Multimedia 2005 Singapore 6 11 November 2005 pages 849 852 Arhiv originalu za 26 serpnya 2013 Procitovano 28 travnya 2015 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya A Survey of Techniques for Managing and Leveraging Caches in GPUs 16 lyutogo 2015 u Wayback Machine S Mittal JCSC 23 8 2014 A Survey of Techniques for Architecting and Managing GPU Register File 26 bereznya 2016 u Wayback Machine IEEE TPDS 2016 Inside Pascal Nvidia s Newest Computing Platform 7 travnya 2017 u Wayback Machine A Survey of Methods for Analyzing and Improving GPU Energy Efficiency 10 sichnya 2018 u Wayback Machine Mittal et al ACM Computing Surveys 2014 Asanovic K Bodik R Keaveny T Keutzer K Kubiatowicz J Morgan N Patterson D Sen K Wawrzynek J Wessel D Yelick K A view of the parallel computing landscape Commun ACM 52 10 2009 56 67 Arhiv originalu za 26 kvitnya 2009 Procitovano 28 travnya 2015 Arhiv originalu za 16 grudnya 2014 Procitovano 8 listopada 2015 Arhiv originalu za 5 chervnya 2015 Procitovano 28 travnya 2015 PDF Arhiv originalu PDF za 23 veresnya 2015 Procitovano 28 travnya 2015 Arhiv originalu za 16 bereznya 2015 Procitovano 28 travnya 2015 2 Merrill Duane Allocation oriented Algorithm Design with Application to GPU Computing Ph D dissertation Department of Computer Science University of Virginia Dec 2011 3 22 travnya 2015 u Wayback Machine Sean Baxter Modern gpu http nvlabs github io moderngpu 25 travnya 2015 u Wayback Machine 2013 Fast k nearest neighbor search using GPU In Proceedings of the CVPR Workshop on Computer Vision on GPU Anchorage Alaska USA June 2008 V Garcia and E Debreuve and M Barlaud Hasan Khondker S Chatterjee Amlan Radhakrishnan Sridhar and Antonio John K Performance Prediction Model and Analysis for Compute Intensive Tasks on GPUs The 11th IFIP International Conference on Network and Parallel Computing NPC 2014 Ilan Taiwan Sept 2014 Lecture Notes in Computer Science LNCS pp 612 17 ISBN 978 3 662 44917 2 M Cococcioni R Grasso M Rixen Rapid prototyping of high performance fuzzy computing applications using high level GPU programming for maritime operations support in Proceedings of the 2011 IEEE Symposium on Computational Intelligence for Security and Defense Applications CISDA Paris 11 15 April 2011 Wilson Ron 3 veresnya 2009 DSP brings you a high definition moon walk EDN Arhiv originalu za 22 sichnya 2013 Procitovano 3 veresnya 2009 Lowry is reportedly using Nvidia Tesla GPUs graphics processing units programmed in the company s CUDA Compute Unified Device Architecture to implement the algorithms Nvidia claims that the GPUs are approximately two orders of magnitude faster than CPU computations reducing the processing time to less than one minute per frame Alerstam E Svensson T Andersson Engels S 2008 PDF J Biomedical Optics 13 060504 doi 10 1117 1 3041496 Arhiv originalu PDF za 9 serpnya 2011 Procitovano 28 travnya 2015 Arhiv originalu za 12 lipnya 2010 Procitovano 28 travnya 2015 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Schatz M C Trapnell C Delcher A L Varshney A 2007 High throughput sequence alignment using Graphics Processing Units 21 travnya 2015 u Wayback Machine BMC Bioinformatics 8 474 Svetlin A Manavski Giorgio Valle 2008 CUDA compatible GPU cards as efficient hardware accelerators for Smith Waterman sequence alignment url http www biomedcentral com 1471 2105 9 S2 S10 BMC Bioinformatics 9 Suppl 2 S10 doi 10 1186 1471 2105 9 s2 s10 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite journal title Shablon Cite journal cite journal a Obslugovuvannya CS1 Storinki iz nepoznachenim DOI z bezkoshtovnim dostupom posilannya GPU computing in OR 13 sichnya 2015 u Wayback Machine Vincent Boyer Didier El Baz Recent Advances on GPU Computing in Operations Research Parallel and Distributed Processing Symposium Workshops amp PhD Forum IPDPSW 2013 IEEE 27th International On page s 1778 1787 RCPSP on GPU Libor Bukata Premysl Sucha Zdenek Hanzalek Solving the Resource Constrained Project Scheduling Problem using the parallel Tabu Search designed for the CUDA platform Journal of Parallel and Distributed Computing 2014 GPU based Sorting in PostgreSQL Arhivovano 2 serpnya 2011 u WebCite Naju Mancheril School of Computer Science Carnegie Mellon University AES on SM3 0 compliant GPUs nedostupne posilannya Owen Harrison John Waldron AES Encryption Implementation and Analysis on Commodity Graphics Processing Units In proceedings of CHES 2007 AES and modes of operations on SM4 0 compliant GPUs 21 serpnya 2010 u Wayback Machine Owen Harrison John Waldron Practical Symmetric Key Cryptography on Modern Graphics Hardware In proceedings of USENIX Security 2008 RSA on SM4 0 compliant GPUs nedostupne posilannya Owen Harrison John Waldron Efficient Acceleration of Asymmetric Cryptography on Graphics Hardware In proceedings of AfricaCrypt 2009 Arhiv originalu za 30 grudnya 2010 Procitovano 7 listopada 2010 MSNBC 19 serpnya 2010 Arhiv originalu za 29 zhovtnya 2010 Procitovano 7 listopada 2010 Lerner Larry 9 kvitnya 2009 Viewpoint Mass GPUs not CPUs for EDA simulations EE Times Procitovano 3 travnya 2009 W2500 ADS Transient Convolution GT accelerates signal integrity simulations on workstations that have NVIDIA Compute Unified Device Architecture CUDA based Graphics Processing Units GPU GrAVity A Massively Parallel Antivirus Engine 27 lipnya 2010 u Wayback Machine Giorgos Vasiliadis and Sotiris Ioannidis GrAVity A Massively Parallel Antivirus Engine In proceedings of RAID 2010 Kaspersky Lab 14 grudnya 2009 Arhiv originalu za 19 chervnya 2010 Procitovano 28 travnya 2015 During internal testing the Tesla S1070 demonstrated a 360 fold increase in the speed of the similarity defining algorithm when compared to the popular Intel Core 2 Duo central processor running at a clock speed of 2 6 GHz Gnort High Performance Network Intrusion Detection Using Graphics Processors 28 grudnya 2018 u Wayback Machine Giorgos Vasiliadis et al Gnort High Performance Network Intrusion Detection Using Graphics Processors In proceedings of RAID 2008 Regular Expression Matching on Graphics Hardware for Intrusion Detection 27 lipnya 2010 u Wayback Machine Giorgos Vasiliadis et al Regular Expression Matching on Graphics Hardware for Intrusion Detection In proceedings of RAID 2009 Arhiv originalu za 16 chervnya 2013 Procitovano 28 travnya 2015 Posilannyahttp www gpgpu ru 31 serpnya 2020 u Wayback Machine Forum ros OpenCL 9 serpnya 2011 u Wayback Machine Oficijna storinka standartu angl CUDA 6 sichnya 2014 u Wayback Machine Domashnya storinka angl AMD FireStream 21 grudnya 2012 u Wayback Machine Domashnya storinka angl C AMP 8 sichnya 2013 u Wayback Machine Opis na MSDN angl http gizmodo com 5252545 giz explains gpgpu computing and why itll melt your face off 11 sichnya 2013 u Wayback Machine angl http arstechnica com business 2011 04 ask ars what is a cpu thread 3 grudnya 2012 u Wayback Machine angl Open Source OpenCL Compiler and Linker NVIDIA Developer Zone 16 travnya 2008 u Wayback Machine What is GPU Computing Arhivovano 31 travnya 2012 u WebCite Tech Report article ATI stakes claims on physics GPGPU ground 14 zhovtnya 2008 u Wayback Machine by Scott Wasson GPU accelerated Monte Carlo simulation of the 2D and 3D Ising model porting a standard model to GPU hardware using the Microsoft Research Accelerator system