Difference between revisions of "ATLAS"

From CBLFS
Jump to navigationJump to search
(Added page.)
 
 
(22 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{| style="text-align: left; background-color: AliceBlue;"
+
{|style="text-align: left; background-color: AliceBlue;"
 
|-
 
|-
 
!Download Source:
 
!Download Source:
| http://www.netlib.org/atlas/atlas3.6.0.tgz
+
|http://downloads.sourceforge.net/math-atlas/atlas{{ATLAS-Version}}.tar.bz2
 +
|-
 
|}
 
|}
= BLAS =
 
  
BLAS are '''B'''asic '''L'''inear '''A'''lgebra '''S'''ubprograms written in Fortran77.  There are Level 1 (scalar and vector operations), Level 2 (scalar-matrix operations) and Level 3 (matrix-matrix operations) subprograms.  They are available at [http://www.netlib.org/blas/] as tarballs of F77 source files and are un-optimized for any particular architecture.  [[LAPACK]] can also provide un-optimized BLAS libraries if desired.
+
----
 +
 
 +
{{Package-Introduction|BLAS are '''B'''asic '''L'''inear '''A'''lgebra '''S'''ubprograms written in Fortran.  There are Level 1 (scalar and vector operations), Level 2 (scalar-matrix operations) and Level 3 (matrix-matrix operations) subprograms.  ATLAS (Automatically Tuned Linear Algebra Software) will provide C and FORTRAN interfaces to a BLAS implementation optimized for a specific machine architecture.  The ideal source of BLAS and LAPACK libraries are those provided by the microprocesor vendor such as AMD's [[ACML]].  However, these are not provided under a license that allows re-distribution without written consent from the vendor.|http://www.netlib.org/blas/}}
 +
 
 +
== Non-Multilib ==
 +
 
 +
First, build the [[LAPACK]] libraries, then compile the package:
 +
 
 +
mkdir build &&
 +
cd build &&
 +
../configure --prefix=/usr \
 +
--with-netlib-lapack=$PWD/../../lapack-{{Lapack-Version}}/lapack_LINUX.a \
 +
-Fa alg -fPIC -b 32 &&
 +
sed -i "/RANLIB/s/echo/ranlib/" Make.inc &&
 +
make &&
 +
cd lib &&
 +
make shared &&
 +
make ptshared &&
 +
cd ..
 +
 
 +
Install the package:
 +
 
 +
  make install &&
 +
  cp -v lib/*so /usr/lib
  
ATLAS (Automatically Tuned Linear Algebra Software) will provide C and F77 interfaces to a BLAS implementation optimized for a specific machine architecture.
+
== Multilib ==
  
The ideal source of BLAS and [[LAPACK]] libraries are those provided by the microprocesor vendor such as AMD's [[ACML]].  However, these are not provided under a license that allows re-distribution.
+
=== 32Bit ===
  
== Dependencies ==
+
First, build the [[LAPACK]] libraries, then compile the package:
  
=== Optional ===
+
mkdir build &&
 +
cd build &&
 +
CC="gcc ${BUILD32}" ../configure --prefix=/usr \
 +
--with-netlib-lapack=$PWD/../../lapack-{{Lapack-Version}}/lapack_LINUX.a \
 +
-Fa alg -fPIC -b 32 &&
 +
sed -i "/RANLIB/s/echo/ranlib/" Make.inc &&
 +
make &&
 +
cd lib &&
 +
make shared &&
 +
make ptshared &&
 +
cd ..
  
* [[gcc-3.X.X]] Benchmarking by the ATLAS maintainers indicates that, with the exception of Core Duo and Pentium M, compiling ATLAS with gcc-3.X produces better x87 code than gcc-4.X[http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27827].
+
Install the package:
  
== Non-Multilib or Multilib ==
+
  make install &&
 +
  cp -v lib/*so /usr/lib
  
Compile the package:
+
=== N32 ===
  
    make
+
First, build the [[LAPACK]] libraries, then compile the package:
  
The configuration is interactiveSimply follow the instructions presented on the screen.
+
mkdir build &&
 +
cd build &&
 +
CC="gcc ${BUILDN32}" ../configure \
 +
--prefix=/usr --libdir=/usr/lib32 \
 +
  --with-netlib-lapack=$PWD/../../lapack-{{Lapack-Version}}/lapack_LINUX.a \
 +
-Fa alg -fPIC &&
 +
sed -i "/RANLIB/s/echo/ranlib/" Make.inc &&
 +
make &&
 +
cd lib &&
 +
make shared &&
 +
make ptshared &&
 +
cd ..
  
 
Install the package:
 
Install the package:
  
    make install <TARGET_MAKEFILE>
+
  make install &&
 +
  cp -v lib/*so /usr/lib32
 +
 
 +
=== 64Bit ===
  
Where <TARGET_MAKEFILE> will be displayed at the completion of the previous step.
+
First, build the [[LAPACK]] libraries, then compile the package:
  
 +
mkdir build &&
 +
cd build &&
 +
CC="gcc ${BUILD64}" ../configure \
 +
--prefix=/usr --libdir=/usr/lib64 \
 +
--with-netlib-lapack=$PWD/../../lapack-{{Lapack-Version}}/lapack_LINUX.a \
 +
-Fa alg -fPIC -b 64 &&
 +
sed -i "/RANLIB/s/echo/ranlib/" Make.inc &&
 +
make &&
 +
cd lib &&
 +
make shared &&
 +
make ptshared &&
 +
cd ..
 +
 +
Install the package:
 +
 +
  make install &&
 +
  cp -v lib/*so /usr/lib64
 +
 +
== Configuration Information ==
 +
 +
Create and install pkgconfig metadata files:
 +
 +
cat > blas.pc.in << "EOF"
 +
prefix=/usr
 +
exec_prefix=${prefix}
 +
libdir=/usr/<LIB>
 +
includedir=${prefix}/include
 +
 +
Name: blas
 +
Description: Automatically Tuned Linear Algebra Software F77 BLAS implementation
 +
Version: 3.8.0
 +
URL: http://math-atlas.sourceforge.net/
 +
Libs: -L${libdir} -latlas -lcblas -lf77blas -lptcblas -lptf77cblas
 +
Libs.private: -lm -lgfortran
 +
EOF
 +
 +
cat > lapack.pc.in << "EOF"
 +
prefix=/usr
 +
exec_prefix=${prefix}
 +
libdir=/usr/<LIB>
 +
includedir=${prefix}/include
 +
 +
Name: lapack
 +
Description: Linear Algebra PACKage
 +
Version: 3.8.0
 +
URL: http://math-atlas.sourceforge.net/
 +
Libs: -L${libdir} -latlas -llapack
 +
Libs.private: -lm -lgfortran
 +
Cflags: -I${includedir}
 +
EOF
 +
 +
=== Non-Multilib or 32-Bit ===
 +
 +
sed -i 's/<LIB>/lib/' blas.pc.in &&
 +
sed -i 's/<LIB>/lib/' lapack.pc.in &&
 +
cp -v blas.pc.in /usr/lib/pkgconfig/blas.pc &&
 +
cp -v lapack.pc.in /usr/lib/pkgconfig/lapack.pc
 +
 +
=== N32 ===
 +
 +
sed -i 's/<LIB>/lib32/' blas.pc.in &&
 +
sed -i 's/<LIB>/lib32/' lapack.pc.in &&
 +
cp -v blas.pc.in /usr/lib32/pkgconfig/blas.pc &&
 +
cp -v lapack.pc.in /usr/lib32/pkgconfig/lapack.pc
 +
 +
=== 64-Bit ===
 +
 +
sed -i 's/<LIB>/lib64/' blas.pc.in &&
 +
sed -i 's/<LIB>/lib64/' lapack.pc.in &&
 +
cp -v blas.pc.in /usr/lib64/pkgconfig/blas.pc &&
 +
cp -v lapack.pc.in /usr/lib64/pkgconfig/lapack.pc
 +
 
== Contents ==
 
== Contents ==
 +
 +
{|style="text-align: left"
 +
|-valign="top";
 +
!Installed Libraries:
 +
| libatlas.{a,so}, libcblas.{a,so}, libf77blas.{a,so}, libptcblas.{a, so} libptf77cblas.{a, so}, liblapack.{a, so}
 +
|}
 +
 +
=== Short Description ===
 +
 +
{|style="text-align: left"
 +
|-valign="top"
 +
!libatlas
 +
|is the main ATLAS library, providing low-level routines for all interface libraries.
 +
|-valign="top"
 +
!libcblas
 +
|is the C library with optimized BLAS functions.
 +
|-valign="top"
 +
!libf77blas
 +
|is the FORTRAN library with optimized BLAS functions.
 +
|-valign="top"
 +
!libptcblas
 +
|is the threaded C library with optimized BLAS functions.
 +
|-valign="top"
 +
!libptf77blas
 +
|is the threaded FORTRAN library with optimized BLAS functions.
 +
|-valign="top"
 +
!liblapack
 +
|is the LAPACK library.
 +
|}
 +
 +
[[Category:Science_Engineering]]

Latest revision as of 10:43, 20 March 2010

Download Source: http://downloads.sourceforge.net/math-atlas/atlas3.8.0.tar.bz2

Introduction to ATLAS

BLAS are Basic Linear Algebra Subprograms written in Fortran. There are Level 1 (scalar and vector operations), Level 2 (scalar-matrix operations) and Level 3 (matrix-matrix operations) subprograms. ATLAS (Automatically Tuned Linear Algebra Software) will provide C and FORTRAN interfaces to a BLAS implementation optimized for a specific machine architecture. The ideal source of BLAS and LAPACK libraries are those provided by the microprocesor vendor such as AMD's ACML. However, these are not provided under a license that allows re-distribution without written consent from the vendor.

Project Homepage: http://www.netlib.org/blas/

Non-Multilib

First, build the LAPACK libraries, then compile the package:

mkdir build &&
cd build &&
../configure --prefix=/usr \
--with-netlib-lapack=$PWD/../../lapack-3.1.1/lapack_LINUX.a \
-Fa alg -fPIC -b 32 &&
sed -i "/RANLIB/s/echo/ranlib/" Make.inc &&
make &&
cd lib &&
make shared &&
make ptshared &&
cd ..

Install the package:

 make install &&
 cp -v lib/*so /usr/lib

Multilib

32Bit

First, build the LAPACK libraries, then compile the package:

mkdir build &&
cd build &&
CC="gcc ${BUILD32}" ../configure --prefix=/usr \
--with-netlib-lapack=$PWD/../../lapack-3.1.1/lapack_LINUX.a \
-Fa alg -fPIC -b 32 &&
sed -i "/RANLIB/s/echo/ranlib/" Make.inc &&
make &&
cd lib &&
make shared &&
make ptshared &&
cd ..

Install the package:

 make install &&
 cp -v lib/*so /usr/lib

N32

First, build the LAPACK libraries, then compile the package:

mkdir build &&
cd build &&
CC="gcc ${BUILDN32}" ../configure \
--prefix=/usr --libdir=/usr/lib32 \
--with-netlib-lapack=$PWD/../../lapack-3.1.1/lapack_LINUX.a \
-Fa alg -fPIC &&
sed -i "/RANLIB/s/echo/ranlib/" Make.inc &&
make &&
cd lib &&
make shared &&
make ptshared &&
cd ..

Install the package:

 make install &&
 cp -v lib/*so /usr/lib32

64Bit

First, build the LAPACK libraries, then compile the package:

mkdir build &&
cd build &&
CC="gcc ${BUILD64}" ../configure \
--prefix=/usr --libdir=/usr/lib64 \
--with-netlib-lapack=$PWD/../../lapack-3.1.1/lapack_LINUX.a \
-Fa alg -fPIC -b 64 &&
sed -i "/RANLIB/s/echo/ranlib/" Make.inc &&
make &&
cd lib &&
make shared &&
make ptshared &&
cd ..

Install the package:

 make install &&
 cp -v lib/*so /usr/lib64

Configuration Information

Create and install pkgconfig metadata files:

cat > blas.pc.in << "EOF"
prefix=/usr
exec_prefix=${prefix}
libdir=/usr/<LIB>
includedir=${prefix}/include

Name: blas
Description: Automatically Tuned Linear Algebra Software F77 BLAS implementation
Version: 3.8.0
URL: http://math-atlas.sourceforge.net/
Libs: -L${libdir} -latlas -lcblas -lf77blas -lptcblas -lptf77cblas
Libs.private: -lm -lgfortran
EOF
cat > lapack.pc.in << "EOF"
prefix=/usr
exec_prefix=${prefix}
libdir=/usr/<LIB>
includedir=${prefix}/include

Name: lapack
Description: Linear Algebra PACKage
Version: 3.8.0
URL: http://math-atlas.sourceforge.net/
Libs: -L${libdir} -latlas -llapack 
Libs.private: -lm -lgfortran
Cflags: -I${includedir}
EOF

Non-Multilib or 32-Bit

sed -i 's/<LIB>/lib/' blas.pc.in &&
sed -i 's/<LIB>/lib/' lapack.pc.in &&
cp -v blas.pc.in /usr/lib/pkgconfig/blas.pc &&
cp -v lapack.pc.in /usr/lib/pkgconfig/lapack.pc

N32

sed -i 's/<LIB>/lib32/' blas.pc.in &&
sed -i 's/<LIB>/lib32/' lapack.pc.in &&
cp -v blas.pc.in /usr/lib32/pkgconfig/blas.pc &&
cp -v lapack.pc.in /usr/lib32/pkgconfig/lapack.pc

64-Bit

sed -i 's/<LIB>/lib64/' blas.pc.in &&
sed -i 's/<LIB>/lib64/' lapack.pc.in &&
cp -v blas.pc.in /usr/lib64/pkgconfig/blas.pc &&
cp -v lapack.pc.in /usr/lib64/pkgconfig/lapack.pc

Contents

Installed Libraries: libatlas.{a,so}, libcblas.{a,so}, libf77blas.{a,so}, libptcblas.{a, so} libptf77cblas.{a, so}, liblapack.{a, so}

Short Description

libatlas is the main ATLAS library, providing low-level routines for all interface libraries.
libcblas is the C library with optimized BLAS functions.
libf77blas is the FORTRAN library with optimized BLAS functions.
libptcblas is the threaded C library with optimized BLAS functions.
libptf77blas is the threaded FORTRAN library with optimized BLAS functions.
liblapack is the LAPACK library.