리눅스에서 FLOPS를 추정하십니까?


14

Linux 시스템에서 FLOPS를 추정 할 수있는 빠르고 쉬운 프로그램을 찾고 있습니다. HPL을 찾았 지만 컴파일하면 짜증이납니다. 벤치 마크 패키지를 조사하고 종속 소프트웨어를 설치하는 데 하루를 소비 할 필요없이 FLOPS의 야구장 추정치 만 있으면됩니다. 그러한 프로그램이 있습니까? 루프에서 두 개의 부동 소수점을 곱하는 C 프로그램을 작성하는 것으로 충분합니까?

답변:


6

문제는 플롭이 무슨 뜻입니까? 클럭 당 가장 간단한 부동 소수점 연산이 몇 배나 필요한지에 대해서는 아마도 클럭 속도의 3 배일 것입니다. 그러나 그것은 보보 밉만큼 의미가 없습니다. 일부 부동 소수점 연산은 시간이 오래 걸립니다 (분배, 스타터의 경우). 다음 문제는 메모리 성능입니다. 마지막 클래식 CRAY에 31 개의 메모리 뱅크가있는 이유가 있습니다. 궁극적으로 CPU 성능은 메모리를 읽고 쓰는 속도에 따라 제한되므로 문제의 캐싱 수준은 어느 정도입니까? Linpack은 한 번 실제 벤치 마크였으며 이제 캐시 (L1이 아닌 경우 L2)에 적합하며 순수한 이론적 CPU 벤치 마크에 더 가깝습니다. 물론 SSE (etc) 장치도 부동 소수점 성능을 추가 할 수 있습니다.

어떤 배포판을 실행합니까?

이것은 좋은 포인터처럼 보였습니다 : 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/ 은 플롭 벤치 마크를 설치하는 더 쉬운 방법 일 수 있습니다.

아직도 당신이 왜 신경 쓰는지 궁금합니다. 당신이 의미없는 숫자를 원한다면, 시스템 bogomis 여전히 dmesg에 있습니다.


1
Phoronix는 내가 찾던 것 같습니다. 감사합니다! 내가 이것을 원하는 유일한 이유는 내가 가지고있는 테라 플롭의 컴퓨팅 능력을 묻는 설문 조사를 작성했기 때문입니다. 설문 조사는 그다지 중요하지 않았으므로 답의 정확성에 대해 걱정하지 않았습니다. 여전히 "클러스터는 X 테라 플롭을 수행 할 수 있습니다."라고 말할 수있는 것은 깔끔합니다. 당신이 지적했듯이, 그 숫자가 반드시 실제 의미를 많이 갖는 것은 아닙니다.
분자

7

분명히 "sysbench"벤치 마크 패키지와 명령이 있습니다 :

sudo apt-get install sysbench(또는 brew install sysbenchOS 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를 어떻게 제공합니까?
Martin Thoma


3

야구장 견적의 경우 :

린팩

  1. 그것을 다운로드 ( 링크 )
  2. 그것을 추출
  3. cd benchmarks_2017/linux/mkl/benchmarks/linpack
  4. ./runme_xeon64
  5. 꽤 기다리십시오 (1 시간 이상)

Thinkpad T460p ( Intel i7-6700HQ CPU )에서 다음을 제공합니다.

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입니다.

더 읽을 거리 : Wikipedia "FLOPS"entry , Whetstone entry , Linpack entry


2
귀하의 답변에 감사 드리지만, 제 목표는 플롭의 빠른 추정치를 얻는 것입니다. Whetstone과 Linpack은 HPL과 동일한 문제를 가지고 있습니다. 이에 대해 읽기 시작하고 20 세가 된 사이트에서 사이트에서 길을 잃었습니다. 소스 코드를 찾을 때 많은 종속 라이브러리를 설치하지 않으면 컴파일 할 수없는 것처럼 보입니다. 심지어도 오류가 발생합니다. 이 모든 것들을 작동시킬 수는 있지만 시간을 보내는 것만 큼 중요하지는 않습니다. Ballparking 플롭을 위해 Just Works가 비교적 현대적인 소프트웨어가 있기를 바랍니다.
moleculebear

1
견적? 그렇다면 약 4 * Hz입니다. 1GHz CPU의 경우 약 4GFLOPS입니다.))
kolypto


1

클러스터를 언급 할 때 HPCC 제품군을 사용했습니다 . 설정하고 조정하는 데 약간의 노력이 필요하지만 우리의 경우 그 자체가 자랑스럽지 않고 클러스터의 수용 기준의 일부였습니다. 일부 성능 벤치마킹은 하드웨어가 광고 된대로 작동하고 모든 것이 올바르게 연결되어 있는지 확인하는 데 중요합니다.

이제 이론적 인 최고 FLOPS 수를 원한다면 간단합니다. CPU에 관한 기사 (realworldtech.com 등)를 확인하면 클럭주기 당 CPU 코어가 수행 할 수있는 DP FLOPS 수 (현재 x86 CPU는 일반적으로 4)에 대한 정보를 얻을 수 있습니다. 그러면 총 피크 FLOPS는

코어 수 * FLOPS / 사이클 * 주파수

그런 다음 IB 네트워크가있는 클러스터의 경우 HPL에서 최대 FLOPS의 약 80 %를 달성 할 수 있어야합니다 (BTW는 HPCC의 벤치 마크 중 하나임).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.