Оцініть FLOPS в Linux?


14

Я шукаю швидку і просту програму для оцінки FLOPS в моїй системі Linux. Я знайшов ВПЛ , але його складання виявляється дратівливим. Все, що мені потрібно, - це бальна оцінка FLOPS, не потрібно витрачати день на дослідження базових пакетів та встановлення залежного програмного забезпечення. Чи існує така програма? Чи достатньо було б написати програму C, яка множить два плавці в циклі?

Відповіді:


6

Питання в тому, що ви маєте на увазі флопи? Якщо все, що вам цікаво, - це скільки найпростіших операцій з плаваючою точкою на такт, це, мабуть, 3 рази ваша тактова частота, але це приблизно так само безглуздо, як богоміпи. Деякі операції з плаваючою точкою потребують тривалого часу (ділити, для початку), додавання та множення, як правило, швидко (один на fp одиницю на годинник). Наступне питання - продуктивність пам’яті, є причина, в якій останній класичний CRAY мав 31 банк пам'яті, в кінцевому рахунку продуктивність процесора обмежена тим, наскільки швидко ви можете читати і записувати в пам'ять, тож на який рівень кешування підходить ваша проблема? Колись Linpack був справжнім орієнтиром, тепер він вписується в кеш-пам'ять (L2, якщо не L1) і більше є чисто теоретичним орієнтиром процесора. І звичайно, ваші SSE (тощо) одиниці можуть також додати продуктивність з плаваючою комою.

Яким дистрибутивом ви керуєте?

Це виглядало як хороший покажчик: http://linuxtoolkit.blogspot.com/2009/04/intel-optimized-linpack-benchmark-for.html

http://onemansjourneyintolinux.blogspot.com/2008/12/show-us-yer-flops.html

http://www.phoronix-test-suite.com/ може бути простішим способом встановлення контрольної точки флопу.

І все ж мені цікаво, чому ви дбаєте, для чого це використовуєте? Якщо ви просто хочете безглузде число, ваші системи богоміпи все ще знаходяться там, у dmesg.


1
Здається, Phoronix саме те, що я шукав - дякую! Єдиною причиною, що я цього хотів, було те, що я заповнював опитування, яке запитувало, скільки у мене терафлопів обчислювальної потужності. Опитування не було надзвичайно важливим, тому я не переймався точністю відповіді. Але все-таки було б акуратно, щоб можна було сказати: "Наш кластер може робити X терафлопс". Хоча, як ви зазначаєте, це число не обов'язково має велике значення в реальному світі.
молекулярний

7

мабуть, є базовий пакет "sysbench" та команда:

sudo apt-get install sysbench(або brew install sysbenchОС X)

запустити так:

sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run

вихід для порівнянь:

 total time:                          15.3047s

посилання: http://www.midwesternmac.com/blogs/jeff-geerling/2013-vps-benchmarks-linode


3
Як це дає FLOPS?
Мартін Тома

Схоже, це більше загальний "контрольний процесор", див. Також bnikolic.co.uk/blog/hpc-howto-measure-flops.html
rogerdpack

3

Для бальних оцінок:

Лінпак

  1. Завантажте його ( посилання )
  2. Витягніть його
  3. cd benchmarks_2017/linux/mkl/benchmarks/linpack
  4. ./runme_xeon64
  5. Зачекайте досить довго (більше 1 години)

На Thinkpad T460p ( процесор Intel i7-6700HQ ) він дає:

This is a SAMPLE run script for SMP LINPACK. Change it to reflect
the correct number of CPUs/threads, problem input files, etc..
./runme_xeon64: 33: [: -gt: unexpected operator
Mi 21. Dez 11:50:29 CET 2016
Intel(R) Optimized LINPACK Benchmark data

Current date/time: Wed Dec 21 11:50:29 2016

CPU frequency:    3.491 GHz
Number of CPUs: 1
Number of cores: 4
Number of threads: 4

Parameters are set to:

Number of tests: 15
Number of equations to solve (problem size) : 1000  2000  5000  10000 15000 18000 20000 22000 25000 26000 27000 30000 35000 40000 45000
Leading dimension of array                  : 1000  2000  5008  10000 15000 18008 20016 22008 25000 26000 27000 30000 35000 40000 45000
Number of trials to run                     : 4     2     2     2     2     2     2     2     2     2     1     1     1     1     1    
Data alignment value (in Kbytes)            : 4     4     4     4     4     4     4     4     4     4     4     1     1     1     1    

Maximum memory requested that can be used=9800701024, at the size=35000

=================== Timing linear equation system solver ===================

Size   LDA    Align. Time(s)    GFlops   Residual     Residual(norm) Check
1000   1000   4      0.014      46.5838  1.165068e-12 3.973181e-02   pass
1000   1000   4      0.010      64.7319  1.165068e-12 3.973181e-02   pass
1000   1000   4      0.009      77.3583  1.165068e-12 3.973181e-02   pass
1000   1000   4      0.010      67.0096  1.165068e-12 3.973181e-02   pass
2000   2000   4      0.064      83.6177  5.001027e-12 4.350281e-02   pass
2000   2000   4      0.063      84.5568  5.001027e-12 4.350281e-02   pass
5000   5008   4      0.709      117.6800 2.474679e-11 3.450740e-02   pass
5000   5008   4      0.699      119.2350 2.474679e-11 3.450740e-02   pass
10000  10000  4      4.895      136.2439 9.069137e-11 3.197870e-02   pass
10000  10000  4      4.904      135.9888 9.069137e-11 3.197870e-02   pass
15000  15000  4      17.260     130.3870 2.052533e-10 3.232773e-02   pass
15000  15000  4      18.159     123.9303 2.052533e-10 3.232773e-02   pass
18000  18008  4      31.091     125.0738 2.611497e-10 2.859910e-02   pass
18000  18008  4      31.869     122.0215 2.611497e-10 2.859910e-02   pass
20000  20016  4      44.877     118.8622 3.442628e-10 3.047480e-02   pass
20000  20016  4      44.646     119.4762 3.442628e-10 3.047480e-02   pass
22000  22008  4      57.918     122.5811 4.714135e-10 3.452918e-02   pass
22000  22008  4      57.171     124.1816 4.714135e-10 3.452918e-02   pass
25000  25000  4      86.259     120.7747 5.797896e-10 3.297056e-02   pass
25000  25000  4      83.721     124.4356 5.797896e-10 3.297056e-02   pass
26000  26000  4      97.420     120.2906 5.615238e-10 2.952660e-02   pass
26000  26000  4      96.061     121.9924 5.615238e-10 2.952660e-02   pass
27000  27000  4      109.479    119.8722 5.956148e-10 2.904520e-02   pass
30000  30000  1      315.697    57.0225  8.015488e-10 3.159714e-02   pass
35000  35000  1      2421.281   11.8061  1.161127e-09 3.370575e-02   pass

Performance Summary (GFlops)

Size   LDA    Align.  Average  Maximal
1000   1000   4       63.9209  77.3583 
2000   2000   4       84.0872  84.5568 
5000   5008   4       118.4575 119.2350
10000  10000  4       136.1164 136.2439
15000  15000  4       127.1586 130.3870
18000  18008  4       123.5477 125.0738
20000  20016  4       119.1692 119.4762
22000  22008  4       123.3813 124.1816
25000  25000  4       122.6052 124.4356
26000  26000  4       121.1415 121.9924
27000  27000  4       119.8722 119.8722
30000  30000  1       57.0225  57.0225 
35000  35000  1       11.8061  11.8061 

Residual checks PASSED

End of tests

Done: Mi 21. Dez 12:58:23 CET 2016

1

Одним еталоном, який традиційно використовується для вимірювання FLOPS, є Linpack. Ще один поширений орієнтир FLOPS - Whetstone.

Більше читання: Вікіпедія «в'єтнамки» запис , точильний запис , Linpack запис


2
Я вдячний за вашу відповідь, проте моя мета - отримати швидку «брудну оцінку флопів». Уітстоун і Лінпак мають ту ж проблему, що і HPL - я починаю читати про неї, а потім заблукаю на сайті за сайтом, якому всі виглядають 20 років. Коли мені вдається знайти вихідний код, я не можу скласти його, не встановивши купу залежних бібліотек - навіть тоді я стикаюся з помилками. Я міг би все це налагодити, але це не так важливо, щоб витрачати час. Будемо сподіватися, що існує якесь відносно сучасне програмне забезпечення, яке працює лише для floparking flops.
молекулярний

1
Оцінити? Тоді це приблизно 4 * Гц: для процесора 1 ГГц це приблизно 4GFLOPS :))
kolypto


1

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

Тепер, якщо ви просто хочете теоретичний піковий номер FLOPS, це легко. Просто перегляньте статтю про центральний процесор (скажімо, на realworldtech.com або щось подібне), щоб отримати інформацію про те, скільки DP FLOPS може виконати ядро ​​CPU за тактовий цикл (з поточним процесором x86, який зазвичай становить 4). Тоді загальний пік FLOPS якраз і є

кількість ядер * FLOPS / цикл * частота

Тоді для кластера з мережею IB ви повинні мати можливість досягти приблизно 80% пікових FLOPS на HPL (що BTW є одним із орієнтирів HPCC).

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