Приклади алгоритмів загального призначення, які виграли від роботи на GPU? [зачинено]


10

Я шукаю приклади алгоритмів загального призначення (маючи на увазі пов'язані з не графікою), які, як було доведено, працюють на порядок швидше на GPU, ніж на процесорі. Я буду використовувати ці приклади, щоб творчо обмірковувати інші алгоритми, які я міг би реалізувати на GPU.


Зв'язування струн, сортування сну
робота

Відповіді:


10

Деякі речі одразу приходять на думку:

Спеціалізований клієнт Bitcoin був написаний для використання GPU для виконання криптографічних хешів. Клієнт GPU зазвичай працює в 10 разів краще, ніж клієнтський процесор SMP у типовій 4-ядерній системі. Біткойн залежить від обчислення великої кількості непов'язаних криптографічних хешів, які можна обчислити паралельно.

Проект Folding @ Home пропонує клієнту GPU для їх моделювання молекулярної динаміки. Ці обчислення проводяться на окремих зв'язках між атомами в різних середовищах і умовах. Математика порівняно проста, але її слід обчислювати мільярди разів на кожну зв’язок, щоб імітувати прості наносекунди активності.

Популярний приклад "іграшок", який використовують прихильники обчислень GPU, - це проблема n-body .

Ці речі мають спільне те, що вони бентежно паралельні . Тобто проблему можна розкласти на невелику кількість дискретних обчислень, які виконуються багато разів за великим набором даних. Саме таким обчисленням добре допомагає GPU.

Складні обчислення, які залежать від результатів попередніх обчислень, недостатньо підходять до GPU.


Кілька клієнтів BOINC мають підтримку GPU. SETI @ Home - ще один.
Брайан Ноблеуч

Справді. Таких проектів багато, але я не хотів складати цей вичерпний перелік проектів - аби лише зазначити, що їх спільного.
greyfade

8

Перекодування відео та аудіо - прекрасний приклад. Це перетворення одного формату файлу в інший. Приклад - MPEG-2 до H.264.

Зауважте, перекодування відео не пов’язане з 3D-графікою. Ви не можете кодувати відео за допомогою вершини та піксельних шейдерів.


ОП просить приклади, що не стосуються графіки.
kiamlaluno

6
@kiamlaluno Перекодування відео не пов’язане з графікою, а перекодування звуку більшою мірою не є. Це перетворення одного формату файлу в інший. Приклад - MPEG-2 до H.264. Для виконання цього не потрібно відображення графіки.
Томас Оуенс

2
@kiamlaluno: Перекодування відео не пов’язане з 3D-графікою. Ви не можете кодувати відео за допомогою вершини та піксельних шейдерів.
DeadMG

3

Видобуток біткойнів за допомогою GPU став дуже популярним.

... однорангова, електронна система готівки. Створення та передача Bitcoin базується на криптографічному протоколі з відкритим кодом та не керується жодним центральним органом. Кожен біткойн підрозділяється до восьми знаків після коми, утворюючи 100 мільйонів менших одиниць, званих сатоши. Біткоїни можна передавати через комп’ютер або смартфон без проміжного фінансового закладу.

Обробка біткойн-транзакцій забезпечується серверами під назвою шахтарі Bitcoin. Ці сервери спілкуються через Інтернет-мережу та підтверджують транзакції, додаючи їх до книги, яка періодично оновлюється та архівується. На додаток до архівації транзакцій, кожне нове оновлення книги створює кілька новоспечених біткойнів ...

Ще одне застосування - на фінансових ринках для торгівлі в режимі реального часу з використанням таких моделей, як Black-Scholes .

... Ключовою вимогою щодо використання опціонів є обчислення їх справедливої ​​вартості. Пошук шляхів ефективного вирішення цієї проблеми ціноутворення є активною сферою досліджень вже більше тридцяти років, і вона продовжує залишатися в центрі уваги сучасної фінансової інженерії. Оскільки все більше обчислень застосовується для проблем, пов'язаних з фінансами, пошук більш ефективних шляхів реалізації цих алгоритмів у сучасних архітектурах набуває все більшого значення.

У цій главі описано, як опції можна ефективно оцінити за допомогою GPU. Ми проводимо наші оцінки за двома різними моделями ціноутворення: модель Black-Scholes та решітка. Обидва ці підходи добре відображаються на графічному процесорі, і обидва вони значно швидші, ніж на сучасних процесорах. Хоча обидва також мають чітке відображення в графічному процесорі, реалізація гратчастих моделей вимагає додаткової роботи через взаємозалежності в розрахунках ...


2

Гра життя Конуея - хороший академічний приклад.

... Всесвіт Гра життя - це нескінченна двовимірна ортогональна сітка квадратних комірок, кожна з яких знаходиться в одному з двох можливих станів, живих чи мертвих. Кожна клітина взаємодіє зі своїми вісьмома сусідами, які є клітинами, розташованими горизонтально, вертикально або по діагоналі. На кожному кроці часу відбуваються такі переходи:

  1. Будь-яка жива клітина, яка має менше двох живих сусідів, гине, як би спричинена недостатністю населення.
  2. Будь-яка жива клітина з двома-трьома живими сусідами живе наступним поколінням.
  3. Будь-яка жива клітина з більш ніж трьома живими сусідами гине, ніби від переповнення.
  4. Будь-яка мертва клітина з рівно трьома живими сусідами перетворюється на живу клітину, як би відтворенням.

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


1

Проблеми, які вимагають багато математики, які можна робити одночасно. Там, де я працював, ми хотіли грати з GPU, щоб додати / відняти / помножити 2 матриці для розробки генетичної кореляції. Перший раз, коли я почув про GPU, це те, що їх використовує фінальний програмний дім, щоб зробити деяке їх моделювання (monte carlo тощо). Це було б корисно при порушенні коду.

Напевно, графічний процесор не зможе багато допомогти з вашими більш регулярними проблемами програмування, де достатньо декількох ядер процесора, оскільки для більшості звичайних програм потрібно виконати лише кілька одночасних процесів. (Ми можемо відрізнятись від пам'яті / диска, який набагато швидше, ніж у нас зараз)


-3

Можливо, я дуже специфічний для математики / науки / інженерії, але мені спадає на думку алгоритм FFT.

Я бачив цей показник FFT, кинутий раніше, і хоча йому вже кілька років, я думаю, що це було добре зроблено для того, що воно є: http://www.sharcnet.ca/~merz/CUDA_benchFFT

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.