Чому Майк Паунд вимірює обчислювальні можливості свого комп'ютера за допомогою своїх відеокарт, а не своїх процесорів?


17

Нещодавно я переглядав чудове відео Computerphile про паролі, в якому Майк Паунд хвалиться суперкомп'ютером своєї компанії, що має 4 графічні карти (якщо бути точним Titan X).

Як любитель чисельного моделювання, я мрію побудувати робочий стіл виключно для роботи з імітацією. Чому Майк Паунд вимірює обчислювальні можливості свого комп'ютера за допомогою своїх відеокарт, а не своїх процесорів? Якби я будував комп’ютер, про який предмет я повинен піклуватися більше?


11
Я не думаю, що це обов'язково питання про горилу проти акули ... Існує просте запитання: "Чому Майк Паунд вимірює обчислювальні можливості свого комп'ютера за допомогою своїх відеокарт, а не процесорів?" на які можна відповісти, і її відповідь має конструктивне значення для майбутніх читачів.
Maybe_Factor

6
@gnat: навіть не близько. Звичайно, питання в його нинішньому вигляді насправді не стосується інженерії програмного забезпечення. Але я думаю, що це можна інтерпретувати як питання про інженерію системи, де system = "комбінація апаратного забезпечення та програмного забезпечення".
Док Браун

10
Комп'ютер із 4-ма відеокартами не є суперкомп'ютером (і з цього приводу не існує кластер із 10 Raspberry Pis).
Матті Віркюнен

10
Це просто дуже дорога установка ПК, а не суперкомп'ютер ...
Bakuriu

3
Чи не простий відповідь "Чому Майк Паунд вимірює обчислювальні можливості свого комп'ютера за допомогою своїх відеокарт", оскільки контекст - це зламання пароля? Якщо проблемний простір - це щось інше, то, про що вам потрібно подбати, може бути цілком інше.
JimmyJames

Відповіді:


32

Майк Паунд, очевидно, оцінює обчислювальну здатність відеокарт вище, ніж обчислювальну здатність процесорів.

Чому? В основному відеокарта складається з МНОГО спрощених процесорів, які працюють у паралельному режимі. Для деяких моделювальних робіт багато обчислень можна легко паралелізувати та обробляти паралельно на тисячах ядер, наявних у відеокартах, скорочуючи загальний час обробки.

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


5
Додавання деяких чисел. Скажімо, вашим основним комп'ютером буде AMD Epyc Server, 64 ядра, 128 з Hyperthreading. Скажемо також, що "ядро" відеокарти лише на 10% швидше. У ONE TitanX все ще є 3072 ядра куда, приблизно 12000 для налаштування. Здобути ідею? ЯКЩО ви можете запустити проблему на відеокарті, вона не є "швидшою" - це як порівняння швидкості коня на коні з автомобілем формули 1.
TomTom

3
+1 для "бентежно паралельного набору простих обчислень", Дуже добре написано. Короткий і до суті.
Майкл Віктор Старберг

11
@TomTom: Насправді моїм кращим порівнянням є порівняння автомобіля формули 1 (ваш процесор) з кулею. Звичайно, поїзд і вагон приблизно однакової швидкості. Але поїзд може рухати 1000 людей з А до В швидше, ніж вагон формули 1.
slebetman

2
@slebetman справа в тому, що процесор, як правило, набагато швидше в одноядерній продуктивності (не приблизно однакова швидкість). Можливо, ми можемо піти на компроміс і порівняти надзвуковий реактивний літак з паровозом.
Даррен Рінгер

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

5

Ознайомтеся з https://developer.nvidia.com/cuda-zone (і google cuda nvidia, щоб отримати більше інформації). Архітектура cuda та відеокарти високого класу досить широко використовуються для настільних суперкомп'ютерів. Зазвичай ви можете скласти коробку з декількома Tflop за ціною менше 10 000 доларів (usd), використовуючи компоненти, що не існують на полиці.

Так...

Як любитель чисельного моделювання, я мрію побудувати робочий стіл виключно для імітаційних робіт

... cuda є значно кращою для вас найкращою грою в місті. Можливо, спробуйте запитати ще раз на /scicomp// або на іншому веб-сайті stackexchange, більш безпосередньо пов'язаному з подібними речами.

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


І ми повертаємось до Ордоса, як завжди.
Майкл Віктор Старберг

2
@MichaelViktorStarberg Я єдиний, хто не розуміє посилання Ордоса?
MarnixKlooster ReinstateMonica

Боюся, ти ...: /
Ісмаель Мігель

4
@MarnixKlooster: мені довелося Google "Ordos". Не впевнений, яке «місто-привид» у Китаї пов’язане із суперкомп'ютерами або терафлопами.
Роберт Харві

@MarnixKlooster Ви справді не є.
jpmc26

2

Якщо я будував комп’ютер, про який предмет я мушу піклуватися більше?

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

Ви також повинні знати, що продуктивність GPU найчастіше повідомляється в одноточних FLOP, і досить скорочується для подвійної точності. Якщо вам потрібна додаткова точність у ваших моделюваннях, ви опинитесь значно нижче рекламованої швидкості.

Перейти до перегонів з програмного забезпечення

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

На високому рівні проблема - давня і шанована дискусія про MIMD / SIMD. Системи з декількома інструкціями / декількома даними стали великими переможцями в загальних та комерційних обчисленнях. У цій моделі, що включає SMP, існує кілька процесорів, кожен з яких виконує свій індивідуальний потік інструкцій. Це комп’ютерний еквівалент французької кухні, де ви спрямовуєте невелику кількість кваліфікованих кухарів для виконання відносно складних завдань.

Системи з одиночною інструкцією / з декількома даними, з іншого боку, більше нагадують величезне приміщення, повне службовців, прикованих до своїх столів, виконуючи вказівки головного контролера. "Усі додайте 3 та 5 рядків!" Він використовувався в чистому вигляді в ILLIAC та деяких «міні-супер» системах, але втратив на ринку. Нинішні графічні процесори є близьким двоюрідним братом, вони більш гнучкі, але мають ту саму загальну філософію.

Підсумовуючи коротко:

  • Для будь-якої операції процесор буде швидшим, тоді як GPU може виконувати багато одночасно. Різниця найбільш очевидна при 64-бітових поплавках.
  • Ядра CPU можуть працювати на будь-якій адресі пам'яті, дані для GPU повинні бути упаковані в меншу область. Ви виграєте лише в тому випадку, якщо робите достатньо обчислень, щоб компенсувати час перенесення.
  • Код, важкий в умовних умовах, як правило, буде більш щасливим для процесора.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.