1 |
Hi David, |
2 |
|
3 |
David Seifert <soap@g.o> writes: |
4 |
|
5 |
>> > An actual ABI compliance test, e.g. done using abi-compliance- |
6 |
>> > checker would be more interesting. |
7 |
>> |
8 |
>> As said above, the symbols don't need to be 1-1 copy of each other. |
9 |
>> Any library which is a superset of the reference one will work. |
10 |
> |
11 |
> Again, I'm willing to accept this under a USE="lapack_targets_virtual" |
12 |
> configuration, |
13 |
|
14 |
I hear you, and I was with the same opinion, too. |
15 |
|
16 |
Nevertheless, if a runtime switch works, it is simpler than USE_EXPAND. |
17 |
|
18 |
We already have a couple of them, PYTHON_TARGET, RUBY_TARGET, etc. I |
19 |
don't want to add more to this list unless absolutely necessary. |
20 |
|
21 |
Alternatively, it could be exclusive USE flags instead of USE_EXPAND. |
22 |
That's possible and we need to add a lot of USE flags, OpenBLAS, blis, |
23 |
reference, altas, nvBLAS, etc. I don't think it a clean solution. |
24 |
|
25 |
> but wholesale editing of DT_NEEDED entries is definitely too scary and |
26 |
> too invasive for most non-sci/hpc users of Gentoo. |
27 |
|
28 |
Sorry if I confused you. There is no hack of DT_NEEDED involved. |
29 |
|
30 |
An application is compiled against the reference, then it is pointed by |
31 |
LDPATH and ld.so.conf to a drop-in replacement library, and it profits. |
32 |
That's not more than upgrading a dynamic library. |
33 |
|
34 |
The scheme was shown to work with gcc runtime, libstdc++, and opengl, in |
35 |
Gentoo. |
36 |
|
37 |
> Again, for 99% of users, OpenBLAS will be the right trade-off between |
38 |
> performance and customizability. Every recompilation of libreoffice or |
39 |
> chromium will devour more CPU cycles than switching between USE-flag |
40 |
> implementations. |
41 |
|
42 |
I understand your point. Let me elaborate: |
43 |
|
44 |
1. OpenBLAS has quite a bit of hand-tuned assembly, it is not very |
45 |
portable. Special care is need to manage the default BLAS on |
46 |
profiles, like ppc64, arm64, arm, riscv, etc. |
47 |
|
48 |
2. All the Gentoo users care about optimization. And there are |
49 |
non-science applications that call linear algebra routines. |
50 |
|
51 |
3. Maintaining different BLAS frameworks in repo/gentoo.git and |
52 |
proj/sci.git wastes everybody's time, and causes endless confusion to |
53 |
users. That offsets the time saved to make OpenBLAS the global |
54 |
default. |
55 |
|
56 |
Therefore, from the users' point of view, I still think runtime |
57 |
switching makes more sense. |
58 |
|
59 |
Yours, |
60 |
Benda |