Handling packages with SSE extensions
Quentin Spencer
qspencer at ieee.org
Wed Aug 17 17:47:08 UTC 2005
Nils Philippsen wrote:
>On Wed, 2005-08-17 at 10:41 -0500, Quentin Spencer wrote:
>
>
>>I'm working on a package for ATLAS (Automatically Tuned Linear Algebra
>>Subsystem). On i386, it can use SSE, SSE2 and 3Dnow. How are programs
>>handled that use these extensions? Are there other packages that would
>>make good references? I have gmp installed on my system, and I see that
>>there are libs with identical names in /usr/lib and /usr/lib/sse2. Is
>>this the standard way of dealing with this? How does the system load the
>>correct libraries? How does rpm/yum deal with choosing what to install?
>>
>>
>
>Ideally the package should do what gimp does: have codepaths for all
>optimization levels (i.e. nothing, mmx, sse, ...) in the binary and
>dynamically select the best one for the machine it's running on. Then a
>single package (or library) is sufficient.
>
>
ATLAS doesn't do this. It is based on compile-time optimizations (that
make for very long compiles). Because the resulting binaries are
hardware dependent, I'm using the Debian package as a starting point
because it uses a scheme of "recorded builds" from "average" hardware to
produce binaries that are repeatable regardless of hardware and perform
reasonably well on a range of hardware. Some additional performance
improvement can be obtained if a user rebuilds a custom package for
their system. The ATLAS sourceforge site distributes separate binaries
for all of the different SIMD extensions, and I don't see this changing.
I was hoping to put all the separate extensions in separate packages and
have the user install the correct one (or find a way for yum to find the
correct one), like is done with the different kernels. This is a very
tricky packaging problem, and I welcome any suggestions on how best to
deal with it.
-Quentin
More information about the fedora-extras-list
mailing list