2311
Comment: Link
|
3309
Priorities
|
Deletions are marked like this. | Additions are marked like this. |
Line 21: | Line 21: |
* ATLAS provides an optimized subset of LAPACK | * ATLAS provides an optimized subset of LAPACK + code from |
Line 41: | Line 41: |
Priorities: || Package name || Priority || || libblas3gf || 10 || || libgsl0ldbl || 20 (?) || || libatlas3gf-base || 30 || || libatlas3gf-sse || 35 || || libatlas3gf-sse2 || 40 || || libatlas3gf-sse3 || 45 || || libatlas3gf-core2sse3 || 50 || || libatlas3gf-amd64sse3 || 55 || || libatlas3gf-corei7sse3 || 60 || || libatlas3gf-altivec || 60 || || libatlas3gf-v9 || 60 || || libatlas3gf-ev6 || 60 || || libatlas3gf-2.0 || 60 || |
|
Line 50: | Line 66: |
=== Priority === | |
Line 52: | Line 67: |
|| Package name || Priority || || libblas3gf || 10 || || libblas3gf || 10 || |
Priorities: || Package name || Priority || || liblapack || 10 || || libatlas3gf-base || 30 || || libatlas3gf-sse || 35 || || libatlas3gf-sse2 || 40 || || libatlas3gf-sse3 || 45 || || libatlas3gf-core2sse3 || 50 || || libatlas3gf-amd64sse3 || 55 || || libatlas3gf-corei7sse3 || 60 || || libatlas3gf-altivec || 60 || || libatlas3gf-v9 || 60 || || libatlas3gf-ev6 || 60 || || libatlas3gf-2.0 || 60 || == TODO == * Check what ATLAS is providing for LAPACK * Doing like gentoo: providing .pc files ? * Upload to experimental (almost ready) * Check for other implementations (CUBLAS, MKL in non-free, ACML in non-free) |
Handle different version of BLAS and LAPACK
Description
Beside being implementations, BLAS and LAPACK are also API standard for basic linear algebra operations (such as vector and matrix multiplication).
Many implementations of these API exist.
For BLAS:
http://packages.qa.debian.org/b/blas.html Reference BLAS or BLAS-reference
http://packages.qa.debian.org/a/atlas.html ATLAS Automatically Tuned Linear Algebra Software
http://packages.qa.debian.org/g/gsl.html GSL GNU Scientific Library
- Intel MKL - Non-free
- AMD ACML - Non-free
- Sun Performance Library - Non-free
- ...
For LAPACK:
http://packages.qa.debian.org/l/lapack.html Reference LAPACK
- LAPACK++
- ATLAS provides an optimized subset of LAPACK + code from
Problems
For now, in Debian, it is not trivial to switch between the different implementations. In the past, it used to be handle through the ld.so.conf.d/ possibility and also some primitive update-alternatives. It makes switches between different implementations pretty hard. It causes also many problems for application based on BLAS or LAPACK to select the best implementation.
Proposal
To simplify the usage, the proposal is to use the update-alternative mechanism.
BLAS
The following files must be provided in the shared library package:
- libblas.so.3gf[.0]
-dev package:
- libblas.a
- libblas.so
- cblas.h
Priorities:
Package name |
Priority |
libblas3gf |
10 |
libgsl0ldbl |
20 (?) |
libatlas3gf-base |
30 |
libatlas3gf-sse |
35 |
libatlas3gf-sse2 |
40 |
libatlas3gf-sse3 |
45 |
libatlas3gf-core2sse3 |
50 |
libatlas3gf-amd64sse3 |
55 |
libatlas3gf-corei7sse3 |
60 |
libatlas3gf-altivec |
60 |
libatlas3gf-v9 |
60 |
libatlas3gf-ev6 |
60 |
libatlas3gf-2.0 |
60 |
LAPACK
The following files must be provided in the shared library package:
- liblapack.so.3gf.[.0]
-dev package:
- liblapack.a
- liblapack.so
Priorities:
Package name |
Priority |
liblapack |
10 |
libatlas3gf-base |
30 |
libatlas3gf-sse |
35 |
libatlas3gf-sse2 |
40 |
libatlas3gf-sse3 |
45 |
libatlas3gf-core2sse3 |
50 |
libatlas3gf-amd64sse3 |
55 |
libatlas3gf-corei7sse3 |
60 |
libatlas3gf-altivec |
60 |
libatlas3gf-v9 |
60 |
libatlas3gf-ev6 |
60 |
libatlas3gf-2.0 |
60 |
TODO
- Check what ATLAS is providing for LAPACK
- Doing like gentoo: providing .pc files ?
- Upload to experimental (almost ready)
- Check for other implementations (CUBLAS, MKL in non-free, ACML in non-free)
Links
http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS on Wikipedia
http://www.gentoo.org/proj/en/science/blas-lapack.xml Gentoo equivalent
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=571108 A related bug
http://lists.debian.org/debian-science/2010/02/msg00001.html A thread on Debian Science