Linux'ta FLOPS'u tahmin etmek ister misiniz?


14

Linux sistemimdeki FLOPS'u tahmin etmek için hızlı ve kolay bir program arıyorum. HPL buldum , ama derlemek rahatsız edici olduğunu kanıtlıyor. İhtiyacım olan tek şey, kıyaslama paketlerini araştırmak ve bağımlı yazılım yüklemek için bir gün geçirmek zorunda kalmadan FLOPS'un bir basketbol sahası tahmini. Böyle bir program var mı? Bir döngüde iki şamandırayı katlayan bir C programı yazmak yeterli olur mu?

Yanıtlar:


6

Soru, floplarla ne demek istiyorsun? İlgilendiğiniz tek şey, saat başına en basit kayan nokta işlemlerinden kaç tanesi ise, muhtemelen saat hızınızın 3 katıdır, ancak bu, bogomipler kadar anlamsızdır. Bazı kayan nokta işlemleri uzun sürer (bölme, yeni başlayanlar için bölme), ekleme ve çarpma genellikle hızlıdır (saat başına fp birimi başına bir). Bir sonraki sorun bellek performansı, son klasik CRAY'in 31 bellek bankasına sahip olmasının bir nedeni var, nihayetinde CPU performansı ne kadar hızlı okuyabiliyor ve belleğe yazabiliyorsunuz, bu yüzden probleminiz hangi önbellek seviyesine uyuyor? Linpack bir zamanlar gerçek bir karşılaştırma ölçütüydü, şimdi önbelleğe sığıyor (L1 değilse L2) ve daha çok teorik bir CPU karşılaştırması. Ve elbette, SSE (vb.) Üniteleriniz de kayan nokta performansı ekleyebilir.

Hangi dağıtımı yapıyorsun?

Bu iyi bir işaretçi gibi görünüyordu: 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/ bir flop karşılaştırması kurmanın daha kolay bir yolu olabilir.

Hala neden umursadığını merak ediyorum, ne için kullanıyorsun? Sadece anlamsız bir sayı istiyorsanız, sisteminizin bogomipleri hala dmesg'de.


1
Phoronix tam olarak aradığım şey gibi görünüyor - teşekkür ederim! Bunu istememin tek nedeni, kaç teraflop bilgi işlem gücüne sahip olduğumu soran bir anket doldurmamdı. Anket çok önemli değildi, bu yüzden cevabın doğruluğundan endişe etmiyordum. Yine de, "Kümemiz X teraflop yapabilir" diyebilmek biraz temiz olurdu. İşaret ettiğiniz halde, bu sayının çok fazla gerçek dünya anlamı yoktur.
moleküler

7

görünüşe göre bir "sysbench" karşılaştırma paketi ve komutu var:

sudo apt-get install sysbench(veya brew install sysbenchOS X)

şu şekilde çalıştırın:

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

karşılaştırmalar için çıktı:

 total time:                          15.3047s

ref: http://www.midwesternmac.com/blogs/jeff-geerling/2013-vps-benchmarks-linode


3
Bu FLOPS'u nasıl verir?
Martin Thoma

Görünüşe göre daha genel bir "cpu kıyaslaması" gibi görünüyor bkolik.com.tr/blog/hpc-howto-measure-flops.html
rogerdpack 20:18

3

Basketbol sahası tahminleri için:

Linpack

  1. İndirin ( bağlantı )
  2. Çıkart
  3. cd benchmarks_2017/linux/mkl/benchmarks/linpack
  4. ./runme_xeon64
  5. Bir süre bekleyin (1 saatten fazla)

Thinkpad T460p'de ( Intel i7-6700HQ CPU ) şunları sağlar:

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

Geleneksel olarak FLOPS'u ölçmek için kullanılan kriterlerden biri Linpack'tir. Bir başka yaygın FLOPS karşılaştırması da Whetstone'dur.

Daha fazla okuma: Wikipedia "FLOPS" girişi , Whetstone girişi , Linpack girişi


2
Cevabınızı takdir ediyorum, ancak amacım floplar hakkında hızlı ve kirli bir tahmin elde etmek. Whetstone ve Linpack, HPL ile aynı soruna sahip - Ben de okumaya başladım, sonra sitede 20 yaşında görünen siteden kayboluyorum. Kaynak kodu bulmayı başarabildiğimde, bir grup bağımlı kitaplık kurmadan derleyemiyorum - o zaman bile hatalarla karşılaşıyorum. Tüm bu şeyleri çalıştırabilirdim, ama zaman geçirmek için yeterince önemli değil. Umarım ballparking flopları için Just Works'ün nispeten modern bazı yazılımları vardır.
moleküler

1
Tahmin? Sonra yaklaşık 4 * Hz: 1GHz CPU için yaklaşık 4GFLOPS :))
Kolypto


1

Kümeden bahsettiğiniz gibi , HPCC paketini kullandık . Ayarlamak ve ayarlamak biraz çaba gerektirir, ancak bizim durumumuzda nokta kendi başına övünmüyordu, küme için kabul kriterlerinin bir parçasıydı; bazı performans kıyaslamaları, donanımın reklamı yapılan şekilde çalışmasını, her şeyin doğru bir şekilde kablolanmasını vb.

Şimdi sadece teorik bir tepe FLOPS numarası istiyorsanız, bu bir kolaydır. Bir CPU çekirdeğinin saat döngüsü başına kaç DP FLOPS yapabileceği hakkında bilgi almak için CPU hakkında bazı makalelere bakın (örneğin, realworldtech.com veya somesuch) (genellikle 4 olan mevcut x86 CPU'larla). O zaman toplam zirve FLOPS sadece

çekirdek sayısı * FLOPS / döngü * frekansı

Daha sonra IB ağına sahip bir küme için, HPL'deki tepe FLOPS'un yaklaşık% 80'ini vurabilmeniz gerekir (BTW, HPCC'deki kriterlerden biridir).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.