Якщо я будував комп’ютер, про який предмет я мушу піклуватися більше?
З практичної точки зору, ви, мабуть, повинні приділити трохи уваги материнській платі та процесорові, враховуючи відносні труднощі оновлення порівняно з GPU. Після покупки - жахливий час виявити, що у вас немає місця для чотирьох графічних процесорів чи достатньо швидкого процесора, щоб вони не зайняли усіх.
Ви також повинні знати, що продуктивність GPU найчастіше повідомляється в одноточних FLOP, і досить скорочується для подвійної точності. Якщо вам потрібна додаткова точність у ваших моделюваннях, ви опинитесь значно нижче рекламованої швидкості.
Перейти до перегонів з програмного забезпечення
З точки зору програмного забезпечення насправді є дві основні проблеми - вузьке місце Von Neumann та модель програмування. Процесор має досить хороший доступ до основної пам’яті, у процесора є велика кількість швидшої пам’яті. Невідомо, що переміщення даних у графічний процесор і поза ним повністю заперечує будь-яку швидкість виграшу. Загалом процесор є переможцем у помірних обчисленнях на великих обсягах даних, тоді як GPU перевершує великі обчислення на менших обсягах. Все це приводить нас до моделі програмування.
На високому рівні проблема - давня і шанована дискусія про MIMD / SIMD. Системи з декількома інструкціями / декількома даними стали великими переможцями в загальних та комерційних обчисленнях. У цій моделі, що включає SMP, існує кілька процесорів, кожен з яких виконує свій індивідуальний потік інструкцій. Це комп’ютерний еквівалент французької кухні, де ви спрямовуєте невелику кількість кваліфікованих кухарів для виконання відносно складних завдань.
Системи з одиночною інструкцією / з декількома даними, з іншого боку, більше нагадують величезне приміщення, повне службовців, прикованих до своїх столів, виконуючи вказівки головного контролера. "Усі додайте 3 та 5 рядків!" Він використовувався в чистому вигляді в ILLIAC та деяких «міні-супер» системах, але втратив на ринку. Нинішні графічні процесори є близьким двоюрідним братом, вони більш гнучкі, але мають ту саму загальну філософію.
Підсумовуючи коротко:
- Для будь-якої операції процесор буде швидшим, тоді як GPU може виконувати багато одночасно. Різниця найбільш очевидна при 64-бітових поплавках.
- Ядра CPU можуть працювати на будь-якій адресі пам'яті, дані для GPU повинні бути упаковані в меншу область. Ви виграєте лише в тому випадку, якщо робите достатньо обчислень, щоб компенсувати час перенесення.
- Код, важкий в умовних умовах, як правило, буде більш щасливим для процесора.