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