Differences between revisions 3 and 4
Revision 3 as of 2010-02-25 19:22:21
Size: 2311
Editor: ?Sylvestre Ledru
Comment: Link
Revision 4 as of 2010-02-25 19:35:09
Size: 3309
Editor: ?Sylvestre Ledru
Comment: 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:

For LAPACK:

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)