Octave-2.1.64 + ATLAS & FFTW の効果検証

[Octave] [ベンチマーク]

Octave高速化

代表的な行列演算で処理速度を違いを検証。ATLAS による Scilab の高速化(大石教授@早稲田大)を参照。ATLASでは、ほと んど効果が出ない DFT&FFTについてもテスト。

結果としては、2.1.x 系にすることによって、処理速度が速くなる訳では ないが、ATLASを組み込むことによって、特定の行列演算に劇的な効果を示し ている。また fftw は、FFT演算を高速化するのみならず、データ数が 2のべ き乗でないため DFT演算を行う FFT関数使用条件において、劇的な効果を示し ている。

マシン: AthlonXP2200+(1.8GHz), 512MByte, VineLinux 3.1

評価項目

% 行列の乗算
a=rand(1000,1000);b=rand(1000,1000);
tic;x=a*b;toc

% LU 分解
a=rand(1000,1000);
tic;[L,U,P]=lu(a);toc

% QR 分解
a=rand(1000,1000);
tic;[Q,R,P]=qr(a);toc

% 連立一次方程式
a=rand(1000,1000);b=rand(1000,1);
tic;x=a\b;toc

% DFT
a = rand(69999,1);
tic; x=fft(a); toc

% FFT
a = rand(2^20,1);
tic; x=fft(a); toc

結果

octaveのバージョンと演算所要時間
versions 2.1.64 with ATLAS and FFTW 2.1.64 2.0.17
a*b 0.81 17.3 18.2
lu(a)0.74 4.8 4.9
qr(a)10.5 16.3 20.7
a\b 0.75 4.8 7.0
DFT 0.13 44.5 46.4
FFT 0.87 1.3 1.3
akira@rsch.tuis.ac.jp