ATLAS: Difference between revisions
Weibullguy (talk | contribs) mNo edit summary |
Weibullguy (talk | contribs) No edit summary |
||
| (12 intermediate revisions by 3 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:// | |http://downloads.sourceforge.net/math-atlas/atlas{{ATLAS-Version}}.tar.bz2 | ||
|- | |- | ||
|} | |} | ||
---- | |||
ATLAS (Automatically Tuned Linear Algebra Software) will provide C and FORTRAN interfaces to a BLAS | {{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 == | == 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: | Install the package: | ||
make install | make install && | ||
cp -v lib | cp -v lib/*so /usr/lib | ||
== Multilib == | == Multilib == | ||
| Line 61: | Line 35: | ||
=== 32Bit === | === 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-{{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: | Install the package: | ||
make install | make install && | ||
cp -v lib | cp -v lib/*so /usr/lib | ||
=== N32 === | === 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-{{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 | make install && | ||
cp -v lib | cp -v lib/*so /usr/lib32 | ||
=== 64Bit === | === 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-{{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 == | ||
| Line 123: | Line 157: | ||
|-valign="top"; | |-valign="top"; | ||
!Installed Libraries: | !Installed Libraries: | ||
| libatlas.a, libcblas.a, libf77blas.a, liblapack.a | | libatlas.{a,so}, libcblas.{a,so}, libf77blas.{a,so}, libptcblas.{a, so} libptf77cblas.{a, so}, liblapack.{a, so} | ||
|} | |} | ||
| Line 130: | Line 164: | ||
{|style="text-align: left" | {|style="text-align: left" | ||
|-valign="top" | |-valign="top" | ||
!libatlas | !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" | |-valign="top" | ||
! | !libf77blas | ||
| | |is the FORTRAN library with optimized BLAS functions. | ||
|-valign="top" | |-valign="top" | ||
! | !libptcblas | ||
| | |is the threaded C library with optimized BLAS functions. | ||
|-valign="top" | |-valign="top" | ||
!liblapack | !libptf77blas | ||
| | |is the threaded FORTRAN library with optimized BLAS functions. | ||
|-valign="top" | |||
!liblapack | |||
|is the LAPACK library. | |||
|} | |} | ||
[[Category:Science_Engineering]] | |||
Latest revision as of 09: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. |