Ước tính FLOPS trong Linux?


13

Tôi đang tìm kiếm một chương trình nhanh chóng và dễ dàng để ước tính FLOPS trên hệ thống Linux của tôi. Tôi đã tìm thấy HPL , nhưng việc biên dịch nó được chứng minh là gây khó chịu. Tất cả những gì tôi cần là ước tính sân bóng của FLOPS, mà không cần phải dành một ngày để nghiên cứu các gói điểm chuẩn và cài đặt phần mềm phụ thuộc. Có chương trình nào như vậy tồn tại không? Nó có đủ để viết một chương trình C nhân hai số float trong một vòng lặp không?

Câu trả lời:


5

Câu hỏi là những gì bạn có nghĩa là flops? Nếu tất cả những gì bạn quan tâm là có bao nhiêu thao tác điểm nổi đơn giản nhất trên mỗi đồng hồ, thì nó có thể gấp 3 lần tốc độ đồng hồ của bạn, nhưng điều đó cũng vô nghĩa như bogomips. Một số ops dấu phẩy động mất nhiều thời gian (chia, cho người mới bắt đầu), thêm và nhân thường nhanh chóng (một đơn vị trên mỗi đơn vị fp trên mỗi đồng hồ). Vấn đề tiếp theo là hiệu năng bộ nhớ, có một lý do CRAY cổ điển cuối cùng có 31 ngân hàng bộ nhớ, cuối cùng hiệu năng của CPU bị hạn chế bởi tốc độ bạn có thể đọc và ghi vào bộ nhớ, vậy vấn đề của bạn phù hợp với mức độ nào? Linpack là một điểm chuẩn thực sự một lần, bây giờ nó phù hợp với bộ đệm (L2 nếu không phải là L1) và là một điểm chuẩn CPU lý thuyết thuần túy. Và tất nhiên, các đơn vị SSE (vv) của bạn cũng có thể thêm hiệu suất dấu phẩy động.

Bạn chạy cái gì?

Điều này trông giống như một con trỏ tốt: http://linuxtoolkit.blogspot.com/2009/04/intel-optimized-linpack-benchmark-for.html

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

http://www.phoronix-test-suite.com/ có thể là một cách dễ dàng hơn để cài đặt điểm chuẩn flops.

Tôi vẫn tự hỏi tại sao bạn quan tâm, bạn đang sử dụng nó để làm gì? Nếu bạn chỉ muốn một con số vô nghĩa, hệ thống bogomips của bạn vẫn ở ngay đó trong dmesg.


1
Phoronix dường như chính xác là những gì tôi đang tìm kiếm - cảm ơn bạn! Lý do duy nhất tôi muốn điều này là vì tôi đã điền vào một cuộc khảo sát hỏi tôi có bao nhiêu teraflop sức mạnh tính toán. Cuộc khảo sát không quan trọng lắm, vì vậy tôi không quan tâm đến tính chính xác của câu trả lời. Tuy nhiên, sẽ rất gọn gàng khi có thể nói, "Cụm của chúng tôi có thể làm X teraflop." Mặc dù như bạn chỉ ra, con số đó không nhất thiết phải có nhiều ý nghĩa trong thế giới thực.
phân tử

7

rõ ràng có một gói và lệnh chuẩn "sysbench":

sudo apt-get install sysbench(hoặc brew install sysbenchhệ điều hành X)

chạy nó như thế này:

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

đầu ra để so sánh:

 total time:                          15.3047s

ref: http://www.midwesternmac.com/bloss/jeff-gealeigh/2013-vps-benchmark-linode


3
Làm thế nào điều này cung cấp cho FLOPS?
Martin Thoma

Có vẻ như đó là một "điểm chuẩn cpu" chung chung, xem thêm bnikolic.co.uk/blog/hpc-howto-measure-flops.html
rogerdpack

3

Đối với ước tính sân bóng:

Linpack

  1. Tải xuống ( liên kết )
  2. Giải nén nó
  3. cd benchmarks_2017/linux/mkl/benchmarks/linpack
  4. ./runme_xeon64
  5. Đợi khá lâu (hơn 1 giờ)

Trên Thinkpad T460p ( CPU Intel i7-6700HQ ), nó cung cấp:

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

Một tiêu chuẩn đã được sử dụng theo truyền thống để đo FLOPS là Linpack. Một điểm chuẩn FLOPS phổ biến khác là Whetstone.

Đọc thêm: Mục "FLOPS" Wikipedia , mục Whetstone , mục Linpack


2
Tôi đánh giá cao câu trả lời của bạn, tuy nhiên mục tiêu của tôi là có được ước tính nhanh chóng về sự thất bại. Whetstone và Linpack có cùng một vấn đề như HPL - Tôi bắt đầu đọc về nó, sau đó bị lạc trong trang web sau khi tất cả các trang web trông 20 tuổi. Khi tôi quản lý để tìm mã nguồn, tôi dường như không thể biên dịch mã mà không cài đặt một loạt các thư viện phụ thuộc - ngay cả khi tôi gặp lỗi. Tôi có thể làm cho tất cả những thứ này hoạt động, nhưng nó không đủ quan trọng để dành thời gian. Hy vọng rằng có tồn tại một số phần mềm tương đối hiện đại mà Just Works cho floping flop.
phân tử

1
Ước tính? Sau đó, khoảng 4 * Hz: đối với CPU 1GHz, đó là về 4GFLOPS :))
kolypto


1

Như bạn đề cập đến cụm, chúng tôi đã sử dụng bộ HPCC . Phải mất một chút nỗ lực để thiết lập và điều chỉnh, nhưng trong trường hợp của chúng tôi, điểm không được khoe khoang, đó là một phần của tiêu chí chấp nhận cho cụm; Một số điểm chuẩn hiệu suất là IMHO quan trọng để đảm bảo rằng phần cứng hoạt động như quảng cáo, mọi thứ đều được kết nối chính xác, v.v.

Bây giờ nếu bạn chỉ muốn một số FLOPS đỉnh cao về mặt lý thuyết, thì đó là một số dễ dàng. Chỉ cần xem một số bài viết về CPU (giả sử trên realworldtech.com hoặc somesuch) để biết thông tin về số lượng lõi CPU có thể làm được trong mỗi chu kỳ xung nhịp (với CPU x86 hiện tại thường là 4). Sau đó, tổng FLOPS cao nhất chỉ là

số lượng lõi * FLOPS / chu kỳ * tần số

Sau đó, đối với một cụm có mạng IB, bạn sẽ có thể đạt khoảng 80% FLOPS cao nhất trên HPL (BTW là một trong những điểm chuẩn trong HPCC).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.