|
Boost : |
From: Zdenìk Hurák (z.hurak_at_[hidden])
Date: 2003-05-12 07:32:27
Dear uBLAS friends,
I have performed some benchmarking on matrix multiplication and compared
results for uBLAS, Matlab 6.5, Matlab 5.3 and ATLAS. The results are quite
surprising. If anybody is interested, I can send him/her an electronic copy
(in pdf) of the tests.
An excerpt (possibly not nicely aligned) summarizing computation times for
matrix multiplication (in seconds) and the details on computational platform
are pasted bellow.
Please, have a look at this. It is really very disapointing. Note that I
switched NDEBUG correctly for this test and yet the multiplication of two
matrices of size 1000 x 1000 takes about 2 seconds in Matlab but about 40
seconds in uBLAS. ATLAS needs 1 second only on my machine. For matrices 2000
x 2000 Matlab needs about 20 seconds but uBLAS need sixty times more (1139
s). ATLAS only requires 10 seconds. Is this in agreement with your own
experience?
Are there any other things that I have to switch on or off to make uBLAS run
reasonably fast? I believe that this huge gap in performance cannot only be
caused by some cache issue. Or can it? Sixty times slower than Matlab? I am
looking forward to reading your experience with competitivness of uBLAS
performance.
size of matrices 500x500 MATLAB6.5 MATLAB5.3 uBLAS ATLAS:
X = A*B: 0.313 2.5 3.7 0.17
X = A*B*C: 0.625 5 7.41
X = A*B*C*D: 0.937 7.5 11.5
size of matrices 750x750 MATLAB MATLAB uBLAS ATLAS:
X = A*B: 1.047 8.17 14.33 0.53
X = A*B*C: 2.078 16.32 28.47
X = A*B*C*D: 3.14 24.52 42.95
size of matrices 1000x1000 MATLAB MATLAB uBLAS ATLAS:
X = A*B: 2.375 19.3 39.5 1.22
X = A*B*C: 4.829 38.61 78.4
X = A*B*C*D: 7.125 57.84 117.8
size of matrices 2000x2000 MATLAB MATLAB uBLAS ATLAS:
X = A*B: 19.328 151 1139 9.27
X = A*B*C: 38.735
X = A*B*C*D: 58.062
testing architecture AMD Duron 1,2GHz, 512MB SDRAM
MATLAB version - 6.5.0.180913a (R13), OS - WinXP
MATLAB 5.3 version - 5.3.1.29215a (R11.1), OS - WinXP
UBLAS version - 2003_05_10, OS - Red Hat Linux 9, compiler - G++ (GCC) 3.2.2
ATLAS version - 3.4.1, OS - Red Hat Linux 9, compiler - G++ (GCC) 3.2.2
----------------------------------------------------------------------------
-------------------------------
Zdenek Hurak
Center for Applied Cybernetics, Czech Technical University
----------------------------------------------------------------------------
-------------------------------
--- Odchozí zpráva neobsahuje viry. Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz). Verze: 6.0.476 / Virová báze: 273 - datum vydání: 24.4.2003
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk