-
-
Notifications
You must be signed in to change notification settings - Fork 565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
atlas spkg does not take the SAGE_ATLAS_ARCH variable into account when SAGE_FAT_BINARY is set to 'yes' #13706
Comments
Attachment: trac_13706-atlas_arch-tm.patch.gz proposal minimalistic patch |
This comment has been minimized.
This comment has been minimized.
comment:2
May it be cleaner to switch the two conditions instead of replacing the 'elif' by a 'if' ? Also, why was the arch 'HAMMER' chosen by default ? |
comment:3
#10508 uses the new x86x87 target for building ATLAS on i386 with SAGE_FAT_BINARY, so I'm pretty sure that this has been fixed for a while now. |
comment:4
As of today, this seems not to be fixed in the spkg proposed in #10508 : SAGE_FAT_BINARY default still overwrites SAGE_ATLAS_ARCH when it is set. SAGE_FAT_BINARY is not only used for atlas, but also for (according to grep in the sage-5.4 sources) : ecm-6.3.p8 libm4ri-20120613 mpir-2.4.0.p6 polybori-0.8.2 r-2.14.0.p6 hence one may want to take advantage of it and be more precise by setting the SAGE_ATLAS_ARCH variable. By the way, it is interesting to see that, when SAGE_FAT_BINARY=='yes' in sage-5.4, libm4ri-20120613 explicitely disables SSE2 set of instructions and atlas-3.8.4.p1 explicitely enables it. Also, in the #10508 package, configure_base() method adds 3DNow set of instructions to some Intel architecture, which seems not to know it: https://en.wikipedia.org/wiki/3DNow! |
comment:5
The combination is nonsensical: You either want a binary that runs on all reasonably old hardware for distribution, or you want to specify the architecture in detail. Which one is it? I don't mind adding support for nonsensical combinations if there is demand. But the only bug here is that it requires SSE2 on i386, which is probably too much. Note that the old ATLAS (which we currently ship, and probably will for a while) doesn't have "generic" archdefs to start with so it always was a crapshot.
So? Sage will never run with only the original 8086 instruction set. For many of the processors on your web page you'll have to recompile a linux distro from source, never mind Sage. |
comment:6
Close as invalid since everybody seems to agree that the combination in nonsensical and the SSE2 issue is addressed at #10508. |
Author: Volker Braun |
Changed author from Volker Braun to none |
Reviewer: Volker Braun |
comment:8
I disagree with this positive review.
|
comment:9
You can recompile atlas after installing sage using the atlas-config script. This allows your obscure use case without burdening the process for making binary distributions. As a plus you'll actually have a chance of getting the correct tuning values since the script can disable CPU sleep states. #10508 addresses the issue presented here in that we don't require SSE for generic i386 builds any more. |
Changed keywords from atlas, days43 to atlas, days43 denigration community management |
comment:10
Understood, i won't bother anymore about this. |
comment:11
Replying to @sagetrac-tmonteil:
I don't understand what "both" could possibly mean. How can it run on all architectures while still being optimized for one architecture? If it needs to run on all architectures, it cannot use Core2-specific instructions for example, so how could be optimized for Core2?
|
comment:12
No answer, closing this. |
comment:13
Replying to @jdemeyer:
Well, he apparently meant he wants to specify what "reasonably old" means to him (or, more precisely, what's needed / more appropriate in his use case). To me doesn't sound too exotic or "obscure"... |
comment:14
You can (and always could) specify precisely what you want for ATLAS using SAGE_ATLAS_ARCH. |
comment:15
Replying to @vbraun:
... unless you also specified |
comment:16
That is because |
comment:17
Replying to @vbraun:
.. which is a misinterpretation of "fat". |
comment:18
If you are complaining about the misnomer then you are quite late to the party ;-) |
comment:19
Replying to @vbraun:
You know, je später die Gäste... (Although that's not the first time I'm arguing that way.) The MPIR spkg supports exactly what's meant by "fat binary", although on x86 / x86_64 only IIRC. |
comment:20
For leif, we should support the variable
|
Changed keywords from atlas, days43 denigration community management to atlas, days43, denigration, community, management, sdl |
The spkg-install code of atlas spkg is structured as follow (from line 192):
It has the effect not to take the SAGE_ATLAS_ARCH variable into account when SAGE_FAT_BINARY is set to 'yes'. I consider it as a bug, since on may want to build a fat binary for an architecture that is not HAMMER (for example, one may want to build a fat binary able to run on Pentium 3).
Component: build
Keywords: atlas, days43, denigration, community, management, sdl
Reviewer: Volker Braun
Issue created by migration from https://trac.sagemath.org/ticket/13706
The text was updated successfully, but these errors were encountered: