Difference between revisions of "ATLAS"
Weibullguy (talk | contribs) (Complete re-write for new ATLAS version.) |
Weibullguy (talk | contribs) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
|http://downloads.sourceforge.net/math-atlas/atlas{{ATLAS-Version}}.tar.bz2 | |http://downloads.sourceforge.net/math-atlas/atlas{{ATLAS-Version}}.tar.bz2 | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
Line 14: | Line 9: | ||
{{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/}} | {{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: | |
− | |||
− | |||
− | |||
− | |||
− | ../configure | + | 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 && | make && | ||
− | + | cd lib && | |
− | make | + | make shared && |
− | + | make ptshared && | |
− | + | cd .. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | cd .. | ||
− | |||
Install the package: | Install the package: | ||
− | + | make install && | |
− | + | cp -v lib/*so /usr/lib | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Multilib == | == Multilib == | ||
Line 103: | 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 && | make && | ||
− | + | cd lib && | |
− | make | + | make shared && |
− | + | make ptshared && | |
− | + | cd .. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | cd .. | ||
− | |||
Install the package: | Install the package: | ||
− | + | make install && | |
− | + | 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 && | make && | ||
− | + | cd lib && | |
− | make | + | make shared && |
− | + | make ptshared && | |
− | + | cd .. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | cd .. | ||
− | |||
Install the package: | Install the package: | ||
− | + | make install && | |
− | + | 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 && | make && | ||
− | + | cd lib && | |
− | make | + | make shared && |
+ | make ptshared && | ||
+ | cd .. | ||
− | + | Install the package: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | make install && | |
+ | cp -v lib/*so /usr/lib64 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Configuration Information == | == Configuration Information == | ||
Line 210: | Line 105: | ||
prefix=/usr | prefix=/usr | ||
exec_prefix=${prefix} | exec_prefix=${prefix} | ||
− | libdir=/usr/<LIB> | + | libdir=/usr/<LIB> |
includedir=${prefix}/include | includedir=${prefix}/include | ||
Line 217: | Line 112: | ||
Version: 3.8.0 | Version: 3.8.0 | ||
URL: http://math-atlas.sourceforge.net/ | URL: http://math-atlas.sourceforge.net/ | ||
− | Libs: -L${libdir} - | + | Libs: -L${libdir} -latlas -lcblas -lf77blas -lptcblas -lptf77cblas |
Libs.private: -lm -lgfortran | Libs.private: -lm -lgfortran | ||
EOF | EOF | ||
− | + | ||
− | cat > | + | cat > lapack.pc.in << "EOF" |
prefix=/usr | prefix=/usr | ||
exec_prefix=${prefix} | exec_prefix=${prefix} | ||
− | libdir=/usr/<LIB> | + | libdir=/usr/<LIB> |
includedir=${prefix}/include | includedir=${prefix}/include | ||
− | Name: | + | Name: lapack |
− | Description: | + | Description: Linear Algebra PACKage |
Version: 3.8.0 | Version: 3.8.0 | ||
URL: http://math-atlas.sourceforge.net/ | URL: http://math-atlas.sourceforge.net/ | ||
− | Libs: -L${libdir} - | + | Libs: -L${libdir} -latlas -llapack |
Libs.private: -lm -lgfortran | Libs.private: -lm -lgfortran | ||
Cflags: -I${includedir} | Cflags: -I${includedir} | ||
Line 239: | Line 134: | ||
sed -i 's/<LIB>/lib/' blas.pc.in && | sed -i 's/<LIB>/lib/' blas.pc.in && | ||
− | sed -i 's/<LIB>/lib/' | + | sed -i 's/<LIB>/lib/' lapack.pc.in && |
cp -v blas.pc.in /usr/lib/pkgconfig/blas.pc && | cp -v blas.pc.in /usr/lib/pkgconfig/blas.pc && | ||
− | cp -v | + | cp -v lapack.pc.in /usr/lib/pkgconfig/lapack.pc |
=== N32 === | === N32 === | ||
sed -i 's/<LIB>/lib32/' blas.pc.in && | sed -i 's/<LIB>/lib32/' blas.pc.in && | ||
− | sed -i 's/<LIB>/lib32/' | + | sed -i 's/<LIB>/lib32/' lapack.pc.in && |
cp -v blas.pc.in /usr/lib32/pkgconfig/blas.pc && | cp -v blas.pc.in /usr/lib32/pkgconfig/blas.pc && | ||
− | cp -v | + | cp -v lapack.pc.in /usr/lib32/pkgconfig/lapack.pc |
=== 64-Bit === | === 64-Bit === | ||
sed -i 's/<LIB>/lib64/' blas.pc.in && | sed -i 's/<LIB>/lib64/' blas.pc.in && | ||
− | sed -i 's/<LIB>/lib64/' | + | sed -i 's/<LIB>/lib64/' lapack.pc.in && |
cp -v blas.pc.in /usr/lib64/pkgconfig/blas.pc && | cp -v blas.pc.in /usr/lib64/pkgconfig/blas.pc && | ||
− | cp -v | + | cp -v lapack.pc.in /usr/lib64/pkgconfig/lapack.pc |
== Contents == | == Contents == | ||
Line 262: | Line 157: | ||
|-valign="top"; | |-valign="top"; | ||
!Installed Libraries: | !Installed Libraries: | ||
− | | libatlas.{a,so}, libcblas.{a,so}, | + | | libatlas.{a,so}, libcblas.{a,so}, libf77blas.{a,so}, libptcblas.{a, so} libptf77cblas.{a, so}, liblapack.{a, so} |
|} | |} | ||
Line 275: | Line 170: | ||
|is the C library with optimized BLAS functions. | |is the C library with optimized BLAS functions. | ||
|-valign="top" | |-valign="top" | ||
− | ! | + | !libf77blas |
|is the FORTRAN library with optimized BLAS functions. | |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 09:43, 20 March 2010
Download Source: | http://downloads.sourceforge.net/math-atlas/atlas3.8.0.tar.bz2 |
---|
Contents
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. |