Am 16.06.2014 21:10, schrieb Allin Cottrell:
There's quite a lot going on in gretl CVS right now. Some of the
new
things will require more time to document, here I'll just mention a
few quick things.
Nice to hear that new features are implemented.
* There's a new function package on the server, matrix_perf,
which
runs some tests of matrix multiplication performance. It would be
interesting to hear what results people get from this -- to see if
there are any surprises. The package requires current CVS or
snapshot.
I ran it on a 5 year old AMD machine with 2 cores on ubuntu 13.10. See
the output below. Please note that there seems to be an error in the
"printvec" function.
<OUTPUT>
? matrix_perf(1234)
dgemm experiment 1, variant 1, speed in Gflops
m n k vanilla openmp netlib
128 128 128 1.0131 1.6128 1.2421
128 128 256 1.0918 1.6047 2.8438
128 128 512 1.1172 1.5613 2.9728
128 128 1024 0.56444 0.90985 2.9641
128 128 2048 0.55022 0.81304 3.0153
result: netlib dominates for mnk >= 4194304
openmp dominates for mnk < 4194304
dgemm experiment 1, variant 2, speed in Gflops
m n k vanilla openmp netlib
128 128 128 1.1262 1.7132 2.7780
256 256 128 0.87032 1.4749 2.8563
512 512 128 0.65816 1.2828 3.0365
1024 1024 128 0.57000 0.88802 3.1381
2048 2048 128 0.55844 0.85323 2.7625
result: netlib dominates
dgemm experiment 1, variant 3, speed in Gflops
m n k vanilla openmp netlib
128 128 128 1.0705 1.6740 2.7019
256 256 256 0.79600 1.3527 3.0087
512 512 512 0.53325 0.94332 3.1471
1024 1024 1024 0.46140 0.86064 3.3736
2048 2048 2048 0.48132 0.87184 3.5175
result: netlib dominates
dgemm experiment 2, variant 1, speed in Gflops
m n k vanilla openmp netlib
8 8 8 0.27082 0.16645 0.27986
16 8 8 0.36053 0.28264 0.39668
32 8 8 0.50332 0.45099 0.58258
64 8 8 0.65486 0.57687 0.74851
128 8 8 0.74979 0.75263 0.88244
256 8 8 0.77793 0.82707 0.93674
512 8 8 0.79804 0.80055 0.89166
1024 8 8 0.72645 0.84095 0.84162
2048 8 8 0.66676 0.77530 0.83087
4096 8 8 0.38886 0.53804 0.63493
result: netlib dominates
dgemm experiment 2, variant 2, speed in Gflops
m n k vanilla openmp netlib
10 2 1000 0.68929 0.43634 1.1583
20 2 1000 0.80831 0.44405 1.4244
40 2 1000 0.97165 0.70141 1.4610
80 2 1000 0.58981 0.68580 0.39415
160 2 1000 0.54345 0.70875 0.36567
320 2 1000 0.50763 0.71322 0.52442
640 2 1000 0.48572 0.74920 0.64036
1280 2 1000 0.47973 0.81962 0.33120
2560 2 1000 0.47045 0.80442 0.27437
5120 2 1000 0.47159 0.77478 0.26306
result: openmp dominates for mnk >= 160000
netlib dominates for mnk < 160000
dgemm experiment 2, variant 3, speed in Gflops
m n k vanilla openmp netlib
10 10 1000 0.73219 1.0472 1.2821
20 10 1000 0.83210 1.3098 1.3693
40 10 1000 1.0183 1.5722 1.1212
80 10 1000 0.62957 0.95673 1.2608
160 10 1000 0.56578 0.72985 1.2352
320 10 1000 0.54269 0.84510 1.1248
result: netlib dominates for mnk >= 800000
Operating system: Linux (64-bit)
BLAS library: Netlib
Number of processors: 2
OpenMP enabled: yes
Performance summary:
vanilla -
dominates outright in 0 out of 6 tests
openmp -
dominates outright in 0 out of 6 tests
dominates in 1 test(s) for mnk >= > n = veclen(
The symbol 'veclen' is undefined
*** error in function printvec, line 1
n = veclen(v)
called by function analyse_score
called by function matrix_perf
</OUTPUT>
Artur