代表的な行列演算で処理速度を違いを検証。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
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 |