メモリ帯域幅テストツール-STream

2733 ワード

概要:
STREAMは総合性能テストプログラムセットで、fortranとCの2種類の高級で効率的な言語の編纂を通じて完成し、この2つの言語の数学計算の面での効率のため、STREAMテストルーチンはメモリの能力を十分に発揮することができる.STREAMテストは、一般的なハードウェアメーカーが提供する理論的最大値ではなく、持続可能なメモリ帯域幅の最大値を得た.
テストプロセス:
 
  • streamをダウンロードします.cファイル
  • gccを用いてバイナリ実行可能ファイル
  • にコンパイルする.
    gcc  -O3 -mcmodel=medium -fopenmp -DSTREAM_ARRAY_SIZE=100000000 -DNTIMES=30 -DOFFSET=4096 stream.c -o stream.o

     
    キーパラメータ:
     
     -O3 ;          ;
    -mcmodel=medium ;   Memory Array Size   2GB        。
    -fopenmp;         ;   ,       CPU   ,
                                   :
               export OMP_NUM_THREADS=12   #12            
    -DSTREAM_ARRAY_SIZE=100000000;     a[],b[],c[]     ,
    -DNTIMES=30 ;     ,            。
    -DOFFSET=4096 ;     ,       。

     
    テストの原理:
  • は主に4つの配列の演算があり、メモリ帯域幅の性能をテストし、それぞれ配列の複製(Copy)、配列のスケール変換(Scale)、配列のベクトル和(Add)、配列の複合ベクトル和(Triad)
  • である.
           2. 配列の値は二重精度(8バイト)を採用
    テスト結果:
     
    -------------------------------------------------------------
    STREAM version $Revision: 5.10 $
    -------------------------------------------------------------
    This system uses 8 bytes per array element.
    -------------------------------------------------------------
    Array size = 11029549909 (elements), Offset = 0 (elements)
    Memory per array = 84148.8 MiB (= 82.2 GiB).
    Total memory required = 252446.4 MiB (= 246.5 GiB).
    Each kernel will be executed 30 times.
     The *best* time for each kernel (excluding the first iteration)
     will be used to compute the reported bandwidth.
    -------------------------------------------------------------
    Number of Threads requested = 40
    Number of Threads counted = 40
    -------------------------------------------------------------
    Your clock granularity/precision appears to be 1 microseconds.
    Each test below will take on the order of 1606530 microseconds.
       (= 1606530 clock ticks)
    Increase the size of the arrays if this shows that
    you are not getting at least 20 clock ticks per test.
    -------------------------------------------------------------
    WARNING -- The above is only a rough guideline.
    For best results, please be sure you know the
    precision of your system timer.
    -------------------------------------------------------------
    Function    Best Rate MB/s  Avg time     Min time     Max time
    Copy:           98431.6     1.856682     1.792847     2.098195
    Scale:          77450.3     2.322944     2.278531     2.504460
    Add:            87651.4     3.074648     3.020023     3.327516
    Triad:          87603.4     3.072721     3.021679     3.305595
    -------------------------------------------------------------

     
    参照リンク:
    CPU最適化パラメータ:http://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/i386-and-x86_002d64-Options.html