Як визначити кількість FLOP, на які мій комп'ютер


15

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

Відповіді:


9

Теоретичний пік FLOP / s задається: Кількість ядер легко. Середня частота теоретично повинна враховувати деяку кількість Turbo Boost (Intel) або Turbo Core (AMD), але робоча частота є хорошою нижньою межею. Операції за цикл залежать від архітектури і їх важко знайти (8 для SandyBridge та IvyBridge, див. Слайд 26 ). Це питання цього питання щодо переповнення стека , яке включає номери для сукупності сучасних архітектур.

Кількість ядерСередня частотаОперації за цикл

1
Гаразд, у мене є 2 ядра, робоча частота: 1,8 ГГц, Intel Turbo Boost Technology: 3,00 ГГц, я не можу знайти операції за цикл, ось веб-сайт: ark.intel.com/products/75460/… спасибі
Ол 'Надійне

Haswell може робити 16 DP / цикл. Я щойно додав посилання в тілі відповідей до відповіді ТА.
Макс Хатчінсон

Чи означає це, що мій комп'ютер може робити: 2 x 3 000 000 000 Гц x 16 = 96 гіга FLOP?
Ol 'Надійний

Це означає, що він може робити між 2 * 1,8 ГГц * 16 DP = 57,6 GFLOP / s і 96 GFLOP / s, залежно від фактичної середньої частоти. Якщо вам потрібно використовувати одне число, 57.6 - це більш справедливий, ІМО.
Макс Хатчінсон

2
Норми FLOP, як правило, є поганим показником "корисності" процесора. Див scicomp.stackexchange.com/questions/114 / ... , наприклад. Ви можете подумати над обмеженням витрат на свою задачу (наприклад, обчислити пов'язану з пам'яттю проти зв'язаного диска) та зосередитись на відповідному апаратному забезпеченні (обчислювальна система, система пам'яті, введення / виведення).
Макс Хатчінсон

4

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

Візьмемо, наприклад, процесори Intel Xeon E5-2680 "Sandy Bridge" в Стамппеде, де я працюю. Технічні характеристики:

  • 2,7 ГГц
  • 2 мікросхеми / вузол, 8 ядер / чіп
  • 2 векторні інструкції / цикл
  • 256-розрядні інструкції AVX (4 одночасних операнди подвійної точності)

Помноження на це дає 345,6 GF / вузол або 2,2 PF для неприскореної частини системи.

Зазвичай ми думаємо з точки зору операцій з подвійною точністю (64-бітні), тому що це точність, необхідна для переважної більшості наших користувачів, але ви можете повторити обчислення в умовах одноточності, якщо хочете. Зазвичай це змінює лише останній фактор, скажімо, 8 SP Flops / інструкція замість 4 DP Flops / inst, але він може дико відрізнятися від цього. Наприклад, більш старі графічні процесори робили DP лише приблизно на 1/8-й швидкості SP. Якщо ви коли-небудь цитуєте номер для вашої системи, вам слід чітко вказати, який ви використовували, якщо це не подвійна точність, тому що люди будуть вважати, що це було, інакше.

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

Нарешті, ви також можете зробити це для будь-яких прискорювачів, які можуть існувати у вашій системі (наприклад, GPU або Xeon Phi) і додати цю продуктивність до продуктивності процесора, щоб отримати теоретичну підсумкову.


Недостатньо знати модель процесора, потрібно з’ясувати фактичні робочі частоти
Aksakal

@Aksakal, для теоретичного аналізу, мабуть, добре вибрати номінальну частоту. Важко дізнатися, на якій частоті насправді будуть працювати ваші чіпи, оскільки це може залежати від завантаженості та якості вашого кондиціонера.
Білл Барт

2

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

Наприклад, NVIDIA GPU в даний час виконують операції з цілими і плаваючими точками на одному трубопроводі. Це означає, що ви можете домогтися теоретичного пікового флопу / с лише якщо не робити жодних цілих обчислень . Оскільки індексація масиву та будь-яка інша форма доступу вимагає десь цілої арифметики, жоден код не може досягти теоретичного пікового флопу / с на GPU NVIDIA. У більшості випадків верхню межу бачить ~ 80%. Для процесорів, які видають цілі операції та операції з плаваючою комою одночасно, це не проблема.

У деяких багатоядерних процесорах, схожих на GPU, таких як Intel Knights Corner та Blue Gene / Q, важче досягти пікових провалів / с, ніж на традиційних процесорах для подібних питань конвеєра (хоча обидва можуть досягти ~ 90% піку у великих DGEMM принаймні ).


Чому жоден код не може досягти теоретичного пікового флопу / с на NVIDIA GPU?
skytree

Див. Параграф 2. Однак все це стосувалося старих архітектур. Більш новітні архітектури NVIDIA можуть одночасно виконувати цілі чи плаваючі точки і досягати> 90% піку у великих DGEMM.
Джефф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.