Toon posts:

compileren met AMD Core Math Library

Pagina: 1
Acties:

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 11-01-2022
Ik wil octave linken tegen de AMD Core Math Library (ACML). Octave maakt gebruik van de Blas en Lapack bibliotheken. ACML bevat een implementatie van deze bibliotheken de geoptimaliseerd is voor AMD processoren. Ik heb ACML in /usr/local/acml4.4.0/gfortran64 staan en start het configure script als volgt (ik heb een paar niet relevante opties weggelaten):
./configure LDFLAGS="-L/usr/lib/mesa -L/usr/local/acml4.4.0/gfortran64/lib" FFLAGS=-I/usr/local/acml4.4.0 gfortran64/include --with-blas=acml --with-lapack=acml


Een deel van de output van configure is:
  Installation prefix:         /usr/local/octave-acml
  Fortran compiler   gfortran -I/usr/local/acml4.4.0/gfortran64/include
  Fortran libraries:            -L/usr/lib/mesa -L/usr/local/acml4.4.0/gfortran64/lib -L/usr/lib/x86_64-linux-gnu/gcc x86_64-linux-gnu/4.5.2 -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../.. -L/usr/lib/x86_64-linux-gnu -lgfortran -lm
 
  BLAS libraries:              -lblas
  LAPACK libraries:            -llapack


De compiler flags worden dus goed geinterpreteerd, maar octave wordt alsnog met de standaard blas en lapack bibliotheken gelinked. De dev pakketen hiervan wil ik liever niet deinstalleren omdat dan een heleboel dev paketten verwijderd worden. Hoe kan ik er voor zorgen dat de acml bibliotheek wordt gebruikt?

(Ubuntu 11.04, octave 3.4.0 source van de website en ACML 4.4.0 van de AMD website)

  • lamko
  • Registratie: December 2001
  • Laatst online: 30-05 00:54
Symlink maken naar de juiste library ?
Deze howto over gcc heeft me heel goed uitgelegt hoe include en linken werkt :
http://www.network-theory.co.uk/docs/gccintro/

And this !! Is to go even further beyond!!!


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

staat in die acml directory effectief een libblas en een liblapack?

Mogelijk is de volgorde van de lib-paden (-L vlaggen) op de linker command-line fout

ASSUME makes an ASS out of U and ME


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 11-01-2022
Ik kan niet in de libacml.so kijken, maar de functie prototypes in acml.h zijn vergelijkbaar met /usr/include/cblas.h

In de output van ./configure --help
  --with-blas=<lib>       use BLAS library <lib>
  --with-lapack=<lib>     use LAPACK library <lib>


Met de opties voor ./configure die ik heb gebruikt zou dus -lacml gebruikt moeten worden in plaats van -lblas en -llapack. Dat gaat dus niet goed. Ik heb daarom maar symslinks gemaakt blas.h -> acml.h en libblas.so -> libacml.so en idem voor lapack. Hopelijk gebruikt hij nu alsnog acml.

De FFLAGS heeft volgens mij geen zin: fortran heeft geen header files nodig. Omdat octave in zowel fortran als C++ geschreven is heb ik de -I${ACMLDIR}/include aan CXXFLAGS gehangen.

Compileren duurt nog wel twee uur. Even afwachten dus.

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Je kan ook in de configure logs (config.log als ik me niet vergis) kijken waar het fout ging.

ASSUME makes an ASS out of U and ME


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 11-01-2022
Compileren gaat goed, maar bij het linken krijg ik alsnog een foutmelding:
libtool: link: gcc -g -O2 -pthread -DHAVE_CONFIG_H -Wall -W -Wshadow -Wformat -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -pthread -pthread -g -O2 -pthread -o .libs/octave main.o -Wl,-Bsymbolic-functions  -L/usr/lib/mesa -L/usr/local/acml4.4.0/gfortran64/lib ./.libs/liboctinterp.so ../liboctave/.libs/liboctave.so ../libcruft/.libs/libcruft.so ../libcruft/.libs/libranlib.a ../libgnu/.libs/libgnu.a -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse -lqrupdate /usr/lib/libfftw3.so /usr/lib/libfftw3f.so -lfltk_gl -lfltk -L/usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libhdf5.so -lz -lfontconfig -lGL -lGLU -lX11 -lreadline -lncurses -lpcre -llapack -lblas -ldl -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2 -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../.. -lgfortran -lm -pthread -Wl,-rpath -Wl,/usr/local/octave-acml/lib/octave-3.4.0

/usr/bin/ld: warning: libacml_mv.so, needed by /usr/local/acml4.4.0/gfortran64/lib/liblapack.so, not found (try using -rpath or -rpath-link)

/usr/local/acml4.4.0/gfortran64/lib/liblapack.so: undefined reference to `vrda_sincos_'
/usr/local/acml4.4.0/gfortran64/lib/liblapack.so: undefined reference to `vrda_exp_'
/usr/local/acml4.4.0/gfortran64/lib/liblapack.so: undefined reference to `vrda_scaled_logr_'
/usr/local/acml4.4.0/gfortran64/lib/liblapack.so: undefined reference to `vrsa_logf_'
/usr/local/acml4.4.0/gfortran64/lib/liblapack.so: undefined reference to `vrsa_expf_'
/usr/local/acml4.4.0/gfortran64/lib/liblapack.so: undefined reference to `vrsa_sincosf_'
/usr/local/acml4.4.0/gfortran64/lib/liblapack.so: undefined reference to `vrda_log_'

ls -l /usr/local/acml4.4.0/gfortran64/lib/
total 68520
-rw-r--r-- 1 martijn martijn 38912090 2010-02-05 12:13 libacml.a
-rw-r--r-- 1 martijn martijn   542220 2010-02-05 12:13 libacml_mv.a
-rwxr-xr-x 1 martijn martijn   351618 2010-02-05 12:13 libacml_mv.so
-rwxr-xr-x 1 martijn martijn 30347648 2010-02-05 12:13 libacml.so
lrwxrwxrwx 1 martijn martijn       10 2011-06-17 23:12 libblas.so -> libacml.so
lrwxrwxrwx 1 martijn martijn       10 2011-06-17 23:12 liblapack.so -> libacml.so


Een selectie uit de commandline van de linker:
libtool: link: gcc -g -O2 ... -L/usr/local/acml4.4.0/gfortran64/lib ... -lblas -llapack ... 


De linker kijkt dus in juiste directory, daar staat libacml_mv.so, maar toch kan hij die niet vinden. Hoe kan ik hem verder helpen?

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Je moet waarschijnlijk ook nog even
code:
1
-lacml_mv

toevoegen.

ASSUME makes an ASS out of U and ME


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 11-01-2022
Heb nu LIBS=-lacml toegevoegd aan ./configure. Configure stopt nu al heel snel. Config.log bevat:
code:
1
./conftest: error while loading shared libraries: libacml_mv.so: cannot open shared object file: No such file or directory


Het hele configure command is nu:
./configure \
LDFLAGS="-L/usr/lib/mesa -L/usr/local/acml4.4.0/gfortran64/lib" \
CXXFLAGS=-I/usr/local/acml4.4.0/gfortran64/include \
LIBS=-lacml_mv \
--prefix=/usr/local/octave-acml \
--enable-shared --enable-dl \
--with-blas=lacml --with-lapack=lacml

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

voeg die eens even toe aan de LDFLAGS na de bijhorende LDFLAGS.

ASSUME makes an ASS out of U and ME


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 11-01-2022
Bedoel je "-lacml_mv" toevoegen aan LDFLAGS??
In de configure --help staat:
LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir>
LIBS        libraries to pass to the linker, e.g. -l<library>

Voor de acml_mv bibliotheek is dat dat dus:
LIBS=-lacml_mv LDFLAGS=/usr/local/acml4.4.0/gfortran64/lib


Of niet?

  • begintmeta
  • Registratie: November 2001
  • Niet online
Ik heb ivm wat matrix-gerelateerde zaken (in R) hier ook maar met andere BLAS geinstalleerd. Ik heb OpenBLAS en ACML geprobeerd, en voor zover ik kon zien was het verschil in performance niet heel groot (In 'R Benchmark 2.5' op een FX-8350 was ACML deed er bij 1 thread pakweg 1,006 keer zo lang over en bij 4 threads 0,9514. Ik denk dat ik daarom maar voor ACML ga, maar ik heb er niet zo'n kijk op, dus zijn er nog zaken waar ik op zou kunnen letten, die in het voordeel van OpenBLAS kunnen werken? Beide BLAS zijn in ieder geval beter dan de default BLAS.

ACML is dan op mijn CPU trouwens doorgaans toch wel wat sneller dan OpenBLAS heb ik na iets uigebreider te sten gezien, en lijkt ook beter te schalen naar meer threads:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
OpenBLAS 1 thread   ACML 1 thread   OpenBLAS 4 threads  ACML 4 threads
            
revolutionsbench.R          
[1] "Matrix Multiply:"          
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
 12.106   0.026  12.141      10.787   0.040  10.832      18.237   4.540   5.750      13.374   0.157   4.279 
[1] "Cholesky Factorization:"           
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  2.367   0.017   2.383       2.174   0.033   2.209       4.937   0.780   1.497       2.827   0.013   0.961 
[1] "Singular Value Decomposition:"         
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  9.783   0.046   9.838       9.097   0.077   9.179      15.744   0.100   8.111      14.150   0.074   4.466 
[1] "Principal Components Analysis:"            
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
 26.207   0.187  26.409      23.197   0.193  23.401      38.213   3.424  19.998      31.744   0.423  11.221 
[1] "Linear Discriminant Analysis:"         
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
 26.403   0.217  26.635      23.193   0.197  23.406      38.233   3.420  20.004  31.644   0.326  10.993
            
mm.R            
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  2.443   0.040   2.484       3.353   0.130   1.088       2.847   0.167   0.760       2.443   0.123   0.667 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  2.333   0.034   2.372       4.950   0.613   2.212       4.103   0.053   1.304       4.017   0.607   1.670 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
 10.433   0.030  10.478      21.403   1.197   8.934  21.720   0.580   8.224  15.690   0.167   5.416
            
R-benchmark-25.R            
I. Matrix calculation           
            
Creation, transp., deformation of a 2500x2500 matrix (sec):  0.765333333333333  Creation, transp., deformation of a 2500x2500 matrix (sec):  0.767666666666667  Creation, transp., deformation of a 2500x2500 matrix (sec):  0.763666666666666  Creation, transp., deformation of a 2500x2500 matrix (sec):  0.769333333333333 
2400x2400 normal distributed random matrix ^1000____ (sec):  1.287  2400x2400 normal distributed random matrix ^1000____ (sec):  1.29133333333333   2400x2400 normal distributed random matrix ^1000____ (sec):  1.292  2400x2400 normal distributed random matrix ^1000____ (sec):  1.28833333333333 
Sorting of 7,000,000 random values__________________ (sec):  0.922999999999999  Sorting of 7,000,000 random values__________________ (sec):  0.928  Sorting of 7,000,000 random values__________________ (sec):  0.928333333333333  Sorting of 7,000,000 random values__________________ (sec):  0.929666666666667 
2800x2800 cross-product matrix (b = a' * a)_________ (sec):  1.08833333333333   2800x2800 cross-product matrix (b = a' * a)_________ (sec):  1.026  2800x2800 cross-product matrix (b = a' * a)_________ (sec):  0.321  2800x2800 cross-product matrix (b = a' * a)_________ (sec):  0.333333333333333 
Linear regr. over a 3000x3000 matrix (c = a \ b')___ (sec):  0.589  Linear regr. over a 3000x3000 matrix (c = a \ b')___ (sec):  0.603333333333333  Linear regr. over a 3000x3000 matrix (c = a \ b')___ (sec):  0.250333333333334  Linear regr. over a 3000x3000 matrix (c = a \ b')___ (sec):  0.239333333333333 
            
Trimmed geom. mean (2 extremes eliminated):  0.916089883030128                   Trimmed geom. mean (2 extremes eliminated):  0.900788168824331                      Trimmed geom. mean (2 extremes eliminated):  0.610526150301175                      Trimmed geom. mean (2 extremes eliminated):  0.620069235982817 
            
II. Matrix functions            
            
FFT over 2,400,000 random values____________________ (sec):  0.297999999999999  FFT over 2,400,000 random values____________________ (sec):  0.290666666666667  FFT over 2,400,000 random values____________________ (sec):  0.298333333333333  FFT over 2,400,000 random values____________________ (sec):  0.291666666666668 
Eigenvalues of a 640x640 random matrix______________ (sec):  0.421666666666666  Eigenvalues of a 640x640 random matrix______________ (sec):  0.504666666666666  Eigenvalues of a 640x640 random matrix______________ (sec):  1.41666666666667   Eigenvalues of a 640x640 random matrix______________ (sec):  0.491333333333333 
Determinant of a 2500x2500 random matrix____________ (sec):  0.666999999999998  Determinant of a 2500x2500 random matrix____________ (sec):  0.562333333333335  Determinant of a 2500x2500 random matrix____________ (sec):  0.313  Determinant of a 2500x2500 random matrix____________ (sec):  0.208666666666668 
Cholesky decomposition of a 3000x3000 matrix________ (sec):  0.568  Cholesky decomposition of a 3000x3000 matrix________ (sec):  0.556666666666667  Cholesky decomposition of a 3000x3000 matrix________ (sec):  0.311666666666667  Cholesky decomposition of a 3000x3000 matrix________ (sec):  0.261666666666667 
Inverse of a 1600x1600 random matrix________________ (sec):  0.539333333333334  Inverse of a 1600x1600 random matrix________________ (sec):  0.518999999999998  Inverse of a 1600x1600 random matrix________________ (sec):  0.292666666666669  Inverse of a 1600x1600 random matrix________________ (sec):  0.239666666666667 
            
Trimmed geom. mean (2 extremes eliminated):  0.505504418895319                  Trimmed geom. mean (2 extremes eliminated):  0.526327099561632                  Trimmed geom. mean (2 extremes eliminated):  0.307594683474525                  Trimmed geom. mean (2 extremes eliminated):  0.26347997405067 
            
   III. Programmation           
            
3,500,000 Fibonacci numbers calculation (vector calc)(sec):  0.784333333333331  3,500,000 Fibonacci numbers calculation (vector calc)(sec):  0.781666666666666  3,500,000 Fibonacci numbers calculation (vector calc)(sec):  0.782666666666666  3,500,000 Fibonacci numbers calculation (vector calc)(sec):  0.784666666666666 
Creation of a 3000x3000 Hilbert matrix (matrix calc) (sec):  0.26066666666667   Creation of a 3000x3000 Hilbert matrix (matrix calc) (sec):  0.256666666666668  Creation of a 3000x3000 Hilbert matrix (matrix calc) (sec):  0.255666666666668  Creation of a 3000x3000 Hilbert matrix (matrix calc) (sec):  0.256 
Grand common divisors of 400,000 pairs (recursion)__ (sec):  0.629333333333333  Grand common divisors of 400,000 pairs (recursion)__ (sec):  0.623999999999998  Grand common divisors of 400,000 pairs (recursion)__ (sec):  0.636333333333333  Grand common divisors of 400,000 pairs (recursion)__ (sec):  0.636666666666668 
Creation of a 500x500 Toeplitz matrix (loops)_______ (sec):  0.808  Creation of a 500x500 Toeplitz matrix (loops)_______ (sec):  0.789000000000001  Creation of a 500x500 Toeplitz matrix (loops)_______ (sec):  0.814666666666668  Creation of a 500x500 Toeplitz matrix (loops)_______ (sec):  0.769666666666668 
Escoufier's method on a 45x45 matrix (mixed)________ (sec):  0.387999999999998  Escoufier's method on a 45x45 matrix (mixed)________ (sec):  0.387999999999998  Escoufier's method on a 45x45 matrix (mixed)________ (sec):  0.402000000000001  Escoufier's method on a 45x45 matrix (mixed)________ (sec):  0.390000000000001 
            
                Trimmed geom. mean (2 extremes eliminated):  0.576418234768474                  Trimmed geom. mean (2 extremes eliminated):  0.574133166463194                  Trimmed geom. mean (2 extremes eliminated):  0.585008965049582                  Trimmed geom. mean (2 extremes eliminated):  0.576005281962453 
            
Total time for all 15 tests_________________________ (sec):  10.017     Total time for all 15 tests_________________________ (sec):  9.889  Total time for all 15 tests_________________________ (sec):  9.07900000000001   Total time for all 15 tests_________________________ (sec):  7.89000000000001 
Overall mean (sum of I, II and III trimmed means/3)_ (sec):  0.643873055731495  Overall mean (sum of I, II and III trimmed means/3)_ (sec):  0.648082578313077  Overall mean (sum of I, II and III trimmed means/3)_ (sec):  0.478940840800649  Overall mean (sum of I, II and III trimmed means/3)_ (sec):  0.454853374385977 
            
bench.R         
[1] "hilbert n=500"         
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.077   0.010   0.087       0.247   0.007   0.255       0.213   0.003   0.093       0.393   0.034   0.260 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.067   0.004   0.071       0.230   0.000   0.229       0.170   0.014   0.072       0.324   0.006   0.214 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.066   0.003   0.071       0.230   0.000   0.228       0.180   0.010   0.074       0.330   0.004   0.213 
[1] "hilbert n=1000"            
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.403   0.020   0.425       2.246   0.007   2.262       0.800   0.026   0.349       2.487   0.036   2.034 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
   0.37    0.01    0.38       2.190   0.010   2.201       0.750   0.023   0.302       2.470   0.014   1.979 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.363   0.017   0.380       2.186   0.010   2.198       0.744   0.027   0.302       2.443   0.010   1.969 
[1] "sort n=6"          
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.230   0.000   0.233       0.230   0.003   0.232       0.227   0.004   0.233       0.227   0.003   0.233 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.237   0.006   0.245       0.233   0.000   0.232       0.230   0.003   0.234       0.226   0.007   0.233 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.233   0.000   0.233       0.227   0.007   0.233       0.233   0.000   0.234       0.230   0.003   0.233 
[1] "sort n=7"          
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  2.907   0.026   2.936       2.894   0.033   2.930       2.933   0.013   2.947       2.903   0.030   2.935 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  2.920   0.034   2.956       2.880   0.034   2.917       2.917   0.016   2.939       2.893   0.024   2.922 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  2.913   0.030   2.946       2.897   0.026   2.926       2.903   0.030   2.936       2.886   0.027   2.917 
[1] "loess n=3"         
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.027   0.000   0.026       0.030   0.000   0.029       0.073   0.000   0.027       0.027   0.000   0.028 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.024   0.000   0.023       0.027   0.000   0.026       0.073   0.000   0.025       0.027   0.000   0.025 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.024   0.000   0.022       0.027   0.000   0.025       0.070   0.000   0.025       0.023   0.000   0.025 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.020   0.000   0.022       0.026   0.000   0.025           0.026   0.000   0.025 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  0.023   0.000   0.022       0.026   0.000   0.026       0.070   0.000   0.025       0.026   0.000   0.025 
[1] "loess n=4"         
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  1.757   0.003   1.765       2.147   0.000   2.149       1.847   0.003   1.762       2.140   0.007   2.151 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  1.750   0.000   1.754       2.147   0.000   2.149       1.843   0.003   1.762       2.144   0.000   2.146 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  1.757   0.000   1.758       2.146   0.000   2.149       1.853   0.004   1.758       2.150   0.000   2.151 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  1.760   0.000   1.763       2.124   0.000   2.124       1.860   0.000   1.764       2.120   0.000   2.123 
   user  system elapsed        user  system elapsed        user  system elapsed        user  system elapsed 
  1.753   0.000   1.755   2.156   0.000   2.160   1.850   0.000   1.764   2.146   0.000   2.149

[Voor 113% gewijzigd door begintmeta op 21-06-2013 10:09]


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 11-01-2022
Zo, dat is een oude thread van mij. Ik koop binnekort een A10 processor, en dan ga ik nog eens naar ACML / APP kijken. Uiteindelijk wil ik de GPU gebruiken en dat kan op mijn huidige laptop toch niet.

  • begintmeta
  • Registratie: November 2001
  • Niet online
APPML zou ik inderdaad eens moeten uitproberen, maa ik heb maar een HD7750, dus dat zal niet veel uitmaken. Voor de dingen die ik de komende tijd in R moet doen is een geoptimaliseerde BLAS (al dan niet multi-threading) sowieso al wel een verbetering verwacht ik. ATLAS zou ik ook eens moeten proberen, maar dat is neit zo 123 gecompileerd helaas. Hoe presteert een geoptimaliseerde ATLAS BLAS/LAPACK ivm OpenBLAS of ACML doorgaans? Of is daar geen pijl op te trekken,

Acties:
  • 0Henk 'm!

  • begintmeta
  • Registratie: November 2001
  • Niet online
Hmm, mij is inmiddels opgevallen dat de (gfortran-versie van) ACML wel wat afkortingen maakt om wat sneller te rekenen, bijvoorbeeld worden NaNs niet goed gepropageerd bij matrixvermenigvuldiging. Ik ben daarom maar weer naar OpenBLAS gegaan, daar werkt dat in ieder geval wel zoals verwacht (maar misschien weer weat anders niet). de Intel Fortran-versie van ACML zou trouwens wel het gewensde gedrag hebben, maar kan ik die library ook met gnu fortran gebruiken? Er is ook nog een Open64-versie die ik zou kunnen overwegen, maar ik weet niet hoe die zich gedraagt.
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee