上へ 基本事項 ソフトウェア構成 UltraLong構造体 UltraMath FFT プログラミング例 UltraPrecisionユーティリティ FFT試験 レガシ演算速度 FFT演算速度 数値/浮動小数点/精度 定数システム レガシ四則算 FFT乗算 ニュートン法 逆数法 数学関数 時間評価システム 限界値自動決定システム 数学定数算出
| |
多倍長演算ライブラリ(UltraPrecision) |
レガシ演算速度 |
最終更新日:2006/05/22 |
●概要
レガシとは、FFTに対する手法のここでの言い方。測定したマシンは、P4 3.2GHz、メモり 1GB、WinXP Pro である。
●多倍長間の演算
四則算で、桁数を32から100万桁までスイープして測定した。桁数は、オペランドの桁数である。
No. |
精度桁数 |
加算 |
減算 |
乗算 |
除算 |
1 |
32 |
2.695 μS |
3.220 μS |
5.762 μS |
33.77 μS |
2 |
64 |
2.946 μS |
3.490 μS |
12.30 μS |
69.79 μS |
3 |
128 |
3.438 μS |
4.018 μS |
33.85 μS |
179.7 μS |
4 |
256 |
4.362 μS |
5.283 μS |
112.8 μS |
562.5 μS |
5 |
512 |
6.348 μS |
7.366 μS |
412.5 μS |
1.961 mS |
6 |
1,024 |
10.16 μS |
12.33 μS |
1.587 mS |
7.254 mS |
7 |
2,048 |
17.71 μS |
21.25 μS |
6.155 mS |
27.73 mS |
8 |
4,096 |
33.33 μS |
40.63 μS |
24.31 mS |
109.4 mS |
9 |
8,192 |
65.43 μS |
80.53 μS |
96.59 mS |
432.3 mS |
10 |
16,384 |
128.9 μS |
156.3 μS |
390.6 mS |
1.719 S |
11 |
32,768 |
196.9 μS |
303.0 μS |
1.406 S |
6.953 S |
12 |
65,536 |
447.4 μS |
523.4 μS |
6.344 S |
27.88 S |
13 |
131,072 |
953.1 μS |
1.109 mS |
25.45 S |
1 M 48.7 S |
14 |
262,144 |
2.500 mS |
3.000 mS |
1 M 41.9 S |
7 M 24.4 S |
15 |
524,288 |
5.563 mS |
6.797 mS |
6 M 46.8 S |
29 M 45.0 S |
16 |
1,048,576 |
12.13 mS |
14.84 mS |
27 M 2.2 S |
1 H 59 M 36.6 S |
●多倍長とBase(1億)未満の演算
オペランドの片方が、Base(ここでは、Base = Radix)未満であると、ネイティブな乗除算にて高速に演算できる。加減算は不変なので、乗除算のみ実測した。
No. |
精度桁数 |
乗算 |
除算 |
1 |
32 |
3.263 μS |
6.934 μS |
2 |
64 |
4.207 μS |
8.147 μS |
3 |
128 |
5.903 μS |
10.47 μS |
4 |
256 |
9.495 μS |
14.74 μS |
5 |
512 |
16.65 μS |
24.18 μS |
6 |
1,024 |
32.67 μS |
42.97 μS |
7 |
2,048 |
59.03 μS |
79.33 μS |
8 |
4,096 |
116.3 μS |
156.3 μS |
9 |
8,192 |
232.6 μS |
303.0 μS |
10 |
16,384 |
461.6 μS |
606.6 μS |
11 |
32,768 |
898.4 μS |
1.163 mS |
12 |
65,536 |
1.771 mS |
2.326 mS |
13 |
131,072 |
3.750 mS |
4.688 mS |
14 |
262,144 |
7.500 mS |
9.801 mS |
15 |
524,288 |
14.96 mS |
20.13 mS |
16 |
1,048,576 |
30.47 mS |
41.25 mS |
●多倍長と短倍長の乗算
片方のオペランドが、短倍長であれば、その乗算速度は、フル精度同士より速くなる。以下のような結果となった。
|