OS X 10.2 and higher comes standard with highly optimized versions of BLAS and Lapack in /Systems/Library/Frameworks/vecLib.framework. It seems that even for double precision they do much better. See http://sthmac.magnet.fsu.edu/benchmarks/ I am not sure how these numbers would look on G3 Macs, but obviously for double precision there is not much reliance on Altivec. So I tried to configure R-devel with --with-blas="-framework vecLib", which seems to work well since --with-blas is used literally as a linker flag But later the build gets into trouble because of the Lapack sources in the R distribution, which define the same (non-optimized) functions as the (optimized) functions in vecLib. Thus double definitions, different sources, the linker uses the R-versions which come first and which do not work in combination with the BLAS from vecLib. In this case we may also need a flag --with-lapack="-framework vecLib", which implies it should not use the Lapack files in R to build lapack.so. Since Mac OS X 10.2 and higher always comes with both Lapack and BLAS this could be the default in configure for those systems. ==Jan de Leeuw; Professor and Chair, UCLA Department of Statistics; Editor: Journal of Multivariate Analysis, Journal of Statistical Software US mail: 9432 Boelter Hall, Box 951554, Los Angeles, CA 90095-1554 phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu homepage: http://gifi.stat.ucla.edu ------------------------------------------------------------------------ ------------------------- No matter where you go, there you are. --- Buckaroo Banzai http://gifi.stat.ucla.edu/sounds/nomatter.au ------------------------------------------------------------------------ -------------------------
We do not use optimized LAPACKs because too many of them contain errors (one of which is in the current LAPACK sources and for which we use a modified souce with a modified name). That's stated in the distribution somewhere. There's nothing to allow you to build with an optimized LAPACK. The current code does work with some blases that contain lapack routines, e.g. sunperf. I have hacked the code to use sunperf and on real problems the gain is negligible. If `which do not work in combination with the BLAS from vecLib' is true, then your library is not providing a proper BLAS interface, but I would be interested to know what `does not work' means (it is the dreaded phrase of technical support staff). I have plans to have BLAS support in a shared library (as on Windows). There are some potential problems (e.g. ATLAS is built without PIC flags) and I do intend to get back to this for 1.7.x. The main potential problem will be the non-standard behaviour of MacOS X, I believe. On Thu, 28 Nov 2002, Jan de Leeuw wrote:> OS X 10.2 and higher comes standard with highly optimized versions > of BLAS and Lapack in /Systems/Library/Frameworks/vecLib.framework. > It seems that even for double precision they do much better. See > > http://sthmac.magnet.fsu.edu/benchmarks/ > > I am not sure how these numbers would look on G3 Macs, but > obviously for double precision there is not much reliance on Altivec. > > So I tried to configure R-devel with --with-blas="-framework vecLib", > which seems to work well since --with-blas is used literally as a > linker flag > > But later the build gets into trouble because of the > Lapack sources in the R distribution, which define the same > (non-optimized) functions as the (optimized) functions in vecLib. > Thus double definitions, different sources, the linker uses the > R-versions > which come first and which do not work in combination with the BLAS > from vecLib. > > In this case we may also need a flag --with-lapack="-framework vecLib", > which implies it should not use the Lapack files in R to build > lapack.so. Since Mac OS X 10.2 and higher always comes with > both Lapack and BLAS this could be the default in configure for > those systems. > ==> Jan de Leeuw; Professor and Chair, UCLA Department of Statistics; > Editor: Journal of Multivariate Analysis, Journal of Statistical > Software > US mail: 9432 Boelter Hall, Box 951554, Los Angeles, CA 90095-1554 > phone (310)-825-9550; fax (310)-206-5658; email: deleeuw@stat.ucla.edu > homepage: http://gifi.stat.ucla.edu > > ------------------------------------------------------------------------ > ------------------------- > No matter where you go, there you are. --- Buckaroo Banzai > http://gifi.stat.ucla.edu/sounds/nomatter.au > > ------------------------------------------------------------------------ > ------------------------- > > ______________________________________________ > R-devel@stat.math.ethz.ch mailing list > http://www.stat.math.ethz.ch/mailman/listinfo/r-devel >-- Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595
ripley@stats.ox.ac.uk wrote: ...> I have hacked the code to use sunperf and on real problems the > gain is negligible.... I also found this to be the case in some recent testing I did in Linux (Mandrake 9.0) with an AMD Athlon 2100+. Converting from my non BLAS version of R 1.6.1 to optimized ATLAS saved about 10 minutes on a 4.5 hour test suite. This was using a .a rather than a .so version of the library, but according to a comment by Doug Bates, the .a library is probably faster (but I presume uses more memory). The tests do many things I would not expect to benefit from ATLAS, but about a quarter of the time is spent on programs that do make fairly heavy use of La.svd and La.eigen. So, on some problems you might save some time, but overall I think, as Brian says, the gain is negligible. Paul Gilbert
NB: I referred to sunperf, not ATLAS. Sunperf is a BLAS/LAPACK replacement, not just a version of BLAS. There are problems where using an optimized BLAS helps, but my comment was about an optimized LAPACK on top of an optimized BLAS. On Fri, 29 Nov 2002, Paul Gilbert wrote:> ripley@stats.ox.ac.uk wrote: > ... > > I have hacked the code to use sunperf and on real problems the > > gain is negligible. > ... > > I also found this to be the case in some recent testing I did in Linux > (Mandrake 9.0) with an AMD Athlon 2100+. Converting from my non BLAS > version of R 1.6.1 to optimized ATLAS saved about 10 minutes on a 4.5 > hour test suite. This was using a .a rather than a .so version of the > library, but according to a comment by Doug Bates, the .a library is > probably faster (but I presume uses more memory). The tests do many > things I would not expect to benefit from ATLAS, but about a quarter of > the time is spent on programs that do make fairly heavy use of La.svd > and La.eigen. So, on some problems you might save some time, but overall > I think, as Brian says, the gain is negligible. > > Paul Gilbert >-- Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595