Обчислювальна потужність. Які чіпи AMD і Nvidia краще для розрахунків на відеокарті

  1. Зміст статті Ось уже більше п'яти років разом з друзями я завантажую простоюють потужності наших...
  2. власні тести
  3. Відкрите як прискорювачі
  4. WARNING
  5. Аматорські кластери як альтернатива HPC
  6. AMD vs Nvidia + Intel
  7. Продовження доступно тільки учасникам
  8. Варіант 2. Відкрий один матеріал

Зміст статті

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

Роками ми вважали під загальним аккаунтом, постійно аналізували результати і ділилися спостереженнями. Особливо цікаво було порівнювати продуктивність різних відеокарт в реальних розрахунках. Як виявилося, з ними пов'язано дуже багато неявних моментів, а синтетичні бенчмарки в основному заточені на ігри і слабо відображають цінність відеокарт для неграфічних обчислень.

Подяка

Редакція висловлює подяку компанії Inno3D і її російському представництву , Оперативно надав для тестування відеокарту Inno3D GeForce GTX 1070 iChill X4.

власні тести

Повинен пояснити, що я не прихильник ні «червоних», ні «зелених». Просто для кожного завдання варто підбирати свій інструмент і не намагатися порівнювати кита зі слоном.

Команда TSC оформила у вигляді таблиці результати різних відеокарт в реальних наукових розрахунках. Якщо впорядкувати їх з урахуванням енергоефективності та універсальності застосування, то всю верхню частину рейтингу будуть займати рішення Nvidia з архітектурою Pascal, включаючи GTX 1070. Новітні Radeon Vega і потужна R9 Fury зустрічаються в ній на 182-му рядку і пізніше.

Сучасні ДП виробництва AMD підходять тільки для розрахунків з підтримкою OpenCL, в той час як ДП Nvidia можна використовувати і для OpenCL, і для CUDA-оптимізованих додатків. В окремих випадках старі AMD виграють на операціях подвійної точності ціною великих енерговитрат при вирішенні звичайних завдань.

У порівнянні з GTX 980Ti відеокарта на базі GTX 1070 демонструє невеликий приріст швидкості обчислень - на 2,4%. Однак цей виграш спостерігається при істотному зниженні споживаної потужності - на 25% або на 50 Вт. Апгрейд варто затівати вже заради цього.

Середня швидкість розрахунків завдань GPUGrid Long run для GTX 980Ti

Середня швидкість розрахунків завдань GPUGrid Long run для GTX 980Ti   Середня швидкість розрахунків завдань GPUGrid Long run для GTX 1070 Середня швидкість розрахунків завдань GPUGrid Long run для GTX 1070

Наш тестовий стенд залишився колишнім, але до GTX 1070 ми встигли протестувати в наукових розрахунках безліч інших відеокарт і процесорів. У цій статті згадуються тільки самі показові результати.

Наш стенд пережив Майнінг, брутфорс паролів і продовжує займатися науковими розрахунками

У порівнянні з флагманами минулих років (GTX 680 і максимально близькою до неї GTX 770) у новій GTX 1070 швидкість обчислень зросла більш ніж в чотири рази. Це видно навіть на старих OpenCL-додатках, які не мають оптимізації для сучасних ДП Nvidia. Наприклад, у проекті Einstein @ Home на GTX 680 одне завдання виконується в середньому за 50 хв, а на GTX1070 - за 11,5 хв.

Підсумкове час для GTX 680

Підсумкове час для GTX 680   Обробка діапазону даних в пошуках подвійних радіопульсаров на GTX 1070   Аналогічне завдання на GTX 1070 виконується в 4,3 рази швидше Обробка діапазону даних в пошуках подвійних радіопульсаров на GTX 1070

Аналогічне завдання на GTX 1070 виконується в 4,3 рази швидше

Паралельно відеокарта використовувалася для тестів при написанні статей про майнінг і брутфорс паролів . Проте за два місяці змішаного тестування GTX 1070 ми виконали більший обсяг наукових розрахунків, ніж до цього майже за п'ять років на 20+ процесорах і парі епізодично працюють старих відеокарт. Різниця просто колосальна.

Тривалий період (до кінця 2014 року) обчислення виконувалися тільки на процесорах декількох комп'ютерів. Швидкість приросту була незначною. Потім ще два роки ми завантажували розрахунками старі відеокарти. Вони завжди сильно грілися і шуміли, а зображення лагало. З цим важко миритися під час роботи, тому розрахунки виконувалися епізодично.

В кінці минулого року друзі подарували мені GTX 680 спеціально для прискорення розрахунків. До того моменту ця карта вже погано підходила для ігор, але цілком справлялася з науковими обчисленнями. Давно хотілося спробувати прискорювач з архітектурою Kepler, та ще й містить 1536 CUDA-ядер!

Динаміка наукових розрахунків на процесорах і відкритих

Через потужний трехслотового охолодження працювала GTX 680 досить тихо, але повітря нагрівала пристойно - все-таки двісті ват. Взимку це було дуже до речі, але ось в спеку ... Порахувавши за три місяці сотні різних завдань з ГП-оптимізацією, я помітив, що в одних проектах завантаження відеокарти завданнями BOINC майже не відчувається, а в інших - робить будь-яку роботу вкрай некомфортною. Навіть при наборі тексту іноді відзначалися лаги. Тому я зібрав комп з Core i7 і підключив монітор до його інтегрованого відеоядру, а GTX 680 використовував тільки для розрахунків. У такому варіанті її можна було використовувати цілодобово, і результативність обчислень зросла вдвічі.

Після GTX 680 настала черга тестувати GTX 980Ti, а потім і GTX 1070. У двох останніх відеокарт з підключеним монітором абсолютно не було лагов зображення при максимальному завантаженні розрахунками. У всякому разі, вони не помічалися при роботі з текстами, веб-серфінгу, обробці картинок і перегляді фільмів. Однак для чистоти експерименту ми все-таки підключали їх без монітора. Перший крутий пік на графіку відповідає підключенню GTX 980Ti, а наступний за ним - заслуга GTX 1070.

Обсяги обчислень в BOINC відображаються в окулярах (cobblestones). Десять очок - це 4,32 трильйона операцій з плаваючою комою одинарної точності (FP32). Перший мільйон очок ми набирали два роки, використовуючи до двадцяти чотирьох процесорних ядер одночасно. Зараз з одного GTX 1070 ми додаємо більше мільйона окулярів кожен день. Частота виплат в мережі Gridcoin також зросла. Якщо раніше монетки нараховувалися один-два рази на місяць, то зараз - практично щодня.

Щоденне винагороду за наукові розрахунки

Формула тут проста: менше енерговитрат, більше компенсація і вище результативність.

Однак є тут і маленька хитрість: деякі проекти виплачують додаткові очки як винагороду за швидкість виконання завдань. Наприклад, в GPUGrid є три ступеня свіжості рішень: отримані протягом першої доби, двох і п'яти днів з моменту відправки завдань. За перші нараховують 50% очок, за другі 25%, а за виконані в інтервалі від 48 до 120 ч нічого не додають понад. Розрахунки тижневої давності стають неактуальними і не враховуються зовсім.

Розрахунки тижневої давності стають неактуальними і не враховуються зовсім

GTX 680 було потрібно більше доби на одне завдання

Великі CUDA-оптимізовані завдання GPUGrid обробляються на топових відкритих за 8-12 ч. GTX 680 на них було потрібно близько 30 ч. Нова GTX 1070 часто справлялася за шість годин і встигала обробити за добу до чотирьох найскладніших завдань з області розрахунку третинної структури білкових молекул і докінгу лігандів.

GTX 1070 витрачає менше шести годин на завдання, з якими GTX 680 не справлялася і за добу

Відкрите як прискорювачі

Чому взагалі вважають на відкритих? Будь-процесор архітектури x86-64 створювався як універсальний чіп. Він вміє виконувати математичні операції різних типів і розрядності, але платою за всеїдність стає низька швидкість. У повсякденній роботі цей ефект не дуже помітний, оскільки в призначених для користувача додатках переважають найпростіші арифметичні операції. У наукових ж розрахунках левову частку становлять дії з масивами і приблизними величинами. Центральний процесор обробляє їх дуже повільно, тому в професійних робочих станціях і суперкомп'ютерах для них використовуються спеціалізовані плати - векторні прискорювачі.

Центральний процесор обробляє їх дуже повільно, тому в професійних робочих станціях і суперкомп'ютерах для них використовуються спеціалізовані плати - векторні прискорювачі

WARNING

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

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

Аматорські кластери як альтернатива HPC

В цілому є два принципово різних підходи до обробки наукових даних: використовувати високонадійні спеціалізовані HPC-системи з професійними прискорювачами або створювати мережу розподілених обчислень з непостійних вузлів з процесорами і відеокартами різної архітектури. Перший підхід звичайний в прикладних сферах, тісно пов'язаних з комерційними розробками і не відчувають нестачі у фінансуванні. Другий популярний у тих, хто виконує некомерційні і фундаментальні дослідження. Їх цінність складно пояснити спонсорам, тому залишається тільки залучати волонтерів. Надійність обробки даних в такий гетерогенної мережі забезпечується за рахунок надмірності.

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

Починаючи з 2006 року замість окремих шейдерних процесорів трьох різних типів, обчислюють руху частинок і інші графічні ефекти, у відеокарт з'явилися універсальні потокові процесори. Це значно спростило завдання опису ресурсномістких обчислень зрозумілою для ДП мовою. Тоді виникла концепція GPGPU (General-purpose computing for graphics processing units) - використання ДП для прискорення неграфічних обчислень.

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

При використанні відеокарти швидкість окремих обчислень зростає в десятки разів. Просто тому, що у ДП купа виконавчих блоків, здатних працювати одночасно. Це не чотири ядра у Core i5 і не дванадцять ядер у Xeon. Мова про тисячі універсальних процесорів з частотою 1-2 ГГц і власною пам'яттю з величезною пропускною здатністю. Про цілому кластері в форматі плати розширення.

AMD vs Nvidia + Intel

Використання відеокарт для неграфічних обчислень вимагає визначати їх в системі як співпроцесори і використовувати через відповідні API засобами драйвера. Це інтерфейси прикладного програмування OpenCL, CUDA і DirectCompute. По суті - три варіанти написання коду для програм з підтримкою GPGPU.

Всі ці роки концепція GPGPU активно розвивалася в основному за рахунок відкритого API OpenCL і проприетарной технології Nvidia CUDA. За рідкісним винятком всі драйвери для графічних рішень AMD, Nvidia і Intel підтримують OpenCL, але часто рівень цієї підтримки залишає бажати кращого. Наприклад, заява про підтримку OpenCL 2.0 на ділі може означати, що в поточному драйвері і конкретному ДП підтримуються лише деякі можливості версії 2.0.

Продовження доступно тільки учасникам

Варіант 1. Приєднайся до товариства «Xakep.ru», щоб читати всі матеріали на сайті

Членство в співтоваристві протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалами «Хакера», збільшить особисту накопичувальну знижку і дозволить накопичувати професійний рейтинг Xakep Score! Детальніше

Варіант 2. Відкрий один матеріал

Зацікавила стаття, але немає можливості стати членом клубу «Xakep.ru»? Тоді цей варіант для тебе! Зверни увагу: цей спосіб підходить тільки для статей, опублікованих більше двох місяців тому.


Ru»?