Ubuntu QA:
BlogBrainstorm
Log in
Ubuntu QA
The Ubuntu community has contributed 12232 ideas, 57574 comments, 1174524 votes

Idea #8930: Use all (or nearly all) available instruction sets



up
77
down
Written by ethana2 the 22 May 08 at 05:48. Category: System.
Related to: Nothing/Others. Status: New
Description
..set up a distributed cross-compilation system if you need to. If you don't trust that, build in redundancy and checksumming.

The fact of the matter is that, as illustrated here,
http://mssaleh.wordpress.com/2008/05/19/ubuntu-804-lts-vs-windows-xp-sp3-applic ation-performance-benchmark/
constantly catering to the lowest common denominator in processor instruction sets is getting our butts kicked on performance even by /windows/ in many cases.
I don't want to waste my hardware's capability on i386 code, and I don't want to gentoo users laughing at me.

I want to go to the ubuntu site, pick my general type of machine (preferably using pretty pictures) , and have two choices:

-- Just give me something that works
or
-- I want to make the best use of my hardware

The latter option should let me download a utility that would examine my CPU and create a file (or something to that effect) that could be returned to the ubuntu site and used to choose the right disk image (with the right repository set of course) for my machine.

product: Intel(R) Celeron(R) CPU 2.80GHz
vendor: Intel Corp.
physical id: 1
bus info: cpu@0
version: 15.2.9
size: 18EHz
width: 32 bits
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up pebs bts sync_rdtsc cid xtpr
configuration: id=0
*-cache
description: L1 cache
physical id: 0
size: 8KiB
Tags: (none)

Attachments
No attachments.


Duplicates


Comments
glibik wrote on the 22 May 08 at 06:23
This is one of the few disappointing things about Ubuntu - the small variety of architectures supported. I would like to see, at a minimum, i686 in addition to i386. As this idea implies, there are many others that deserve support.

To counter this, I have seen an idea on brainstorm that suggests the existing variety of supported architectures is confusing and should be simplified, or reduced. :-\

Vote = +1

Auzy wrote on the 22 May 08 at 09:31
Before everyone jumps to conclusions, they should realise, this source is assuming quite a bit, and conclusions are made which may be wrong.

The person assumes the slowdown is due to CPU extensions, however, we cant be sure if it is, he hasn't actually properly evaluated the problem properly.

So +0 at the moment, we need research that actually makes sense before doing anything. The article provided jumps to conclusions, which cannot possibly be made with the limited data analysed.

adrian2 wrote on the 22 May 08 at 12:32
I agree with both glibik and Auzy.
1 ) Linux si getting bigger on disk and slower in ram (to be blunt and not go into more detail)
2)taking advantage of instruction sets on processors will mean a significant increase on speed.
It's not more instruction sets that slow down Ubuntu... i think, it's just that silicon processors have a frequency limit, and the only way to improve is to build construction sets. If no benefit is drawn from it things could get really slow... which they are. Raw power (MHZ) doesn't do much nowadays unless you use it intelligently.

Eldmannen wrote on the 22 May 08 at 13:08
Yes, I also think the performance isn't as good as it should be.

I want it compiled for i686 with SSE.

Auzy wrote on the 22 May 08 at 13:16
But do we have reseach that will show this helping?

mp3phish wrote on the 22 May 08 at 14:21
The research is there, and its called gentoo, arch, mandriva, et al.

I'm sick and tired of people spouting off this "we need to do more research and prove actual performance before we drop legacy support for 20+ year old machines which haven't been in commission for 15+ years"

The phroof is in the pudding. And the excuses are running wild lately.

@ the original idea, +1, but only because it advocates moving to i686. But its flaw is that it also advocates having several precompiled iso's and repositories. This is a mistake. Compile for i686, optimize for the most modern processors, and thats it. If people want i386 they can stick with the current LTS version which should last them another 2 years.

Trust me people, its not just a performance argument. These people who need i386 literally don't exist. The hardware was discontinued 20 years ago. It no longer works. even if it did it is not capable of running ubuntu due to a lack of memory and disk space limitations.

artir wrote on the 22 May 08 at 14:28
Keep Xubuntu for all architectures. Ubuntu should only have i686 instruction sets (plus the amd64 edition). Why? Almost nobody will run ubuntu on a 10 year old computer. Xubuntu is best suited for those.

+1

Auzy wrote on the 22 May 08 at 14:42
Actually, Gentoo though I've seen benchmarks for, and they actually came back as slower in some.. But do we have proper benchmarks that show there is a speedup?

ethana2 wrote on the 22 May 08 at 22:01
I do realize that the results there could have been because of better compiler optimization or a good many other things. It shook me up to see windows perform better than Ubuntu for something like that without a good explanation, you know, and I thought gcc was pretty solid.

I think artir nailed it. Ubuntu for the mainstream, i686, x86_64, (PS3)
Xubuntu for wierd pre i686 processors.

So basically then, this is a plea to Canonical to drop support for pre- i686 processors now? ...I can go along with that. If it gives me 1% more performance, I think it's worth it. --I understand that has already been done with libc and the kernel, but I'd like to know /everything/ on my machine is compiled for i686 at least.

If I understand correctly though, the i686 is the PII, and both sse and sse2 were added to x86 since that time..

glibik wrote on the 22 May 08 at 23:16
No, I don't think this should be "a plea to Canonical to drop support for pre- i686 processors" - not at all.

It should be to add support for more modern CPUs. IMHO, the MINIMUM additional support should be i686.

The maximum additional support ... well that would be dependant on the resources Canonical has to devote to it.

As far as the kernel itself is concerned, there is already code in the source tree for a huge variety of different CPU architectures. It's just a matter of compiling to suit. That said, a distribution is a great deal more than just a kernel.

mp3phish wrote on the 23 May 08 at 02:25
I agree that the x86x64 architecture should be the new standard in optimized code. Default support for sse2/mmx/3dnow/etc. Default support for like 4 times as many general purpose registers, superscalar, etc...

But the problem there is that the 64 bit compiler is not really all that popular. And neither is running the 64bit kernel, etc.. Thats because its not well supported.

On the other hand, i686 is THE DEFAULT march in gcc. But ubuntu still using march i386! It doesn't make sense.

I agree that maybe future improvements should go into x86-64, but it doesn't change the argument that i386 should be dropped completely in favor of at minimum, i686 (~ 11 years old with the ppro, ram size in those systems around 64MB, not enough to run ubuntu.)

adrian2 wrote on the 23 May 08 at 06:08
There are other os out there that can perform good on a low resource, old pc. There is no real need for Ubuntu to run on those pc's. Like everyone said it's old discontinued hardware and there's no need for it to be supported. I'm not saying that i agree with Microsoft on pushing the envelope and requiring at least 1gb of ram&more, but there are processors out there that were discontinued themselves and still had at least sse2 instruction sets, so where are we now really? 20 years ago?
i've decided +1. No processor being sold on the market today, and i'm referring to those who count : intel, amd, has 32 bit architecture, they all run on x86_64.
Even the cheapest have 64 bit wide registers. So support it!

Nait wrote on the 23 May 08 at 09:21
adrian2 you want 32bit OS to support 64bit registers?:O
I just prefer to use Ubuntu 64...

adrian2 wrote on the 23 May 08 at 10:06
@Nait: nope, just make more of ubuntu 64 support more instruction sets, and develop all apps to run x64 not some compatibility thing between 32 bit apps running on 64 bit machines with 64 os.

Ssdg wrote on the 23 May 08 at 16:47
For the benchmark, is the blog's guy sure that it was compiled with the same optimisations? that there is no "OS specific" tricks on it? for the codecs, I'm not sure they were compiled from the same source, for GIMP and Blender they need to access the graphic card or a OS specific component (limited to 16 at the time in windows if I remember correctly) used to "draw" 2D images on the screen (buttons, scrollbars, text, ...) which is poorly managed by the OS and can explain GIMP problems on windows,...

The benchmark is done with "user feelings" methods but for the moment the guy try to quantify sound speed without looking at the méteo and counting seconds with an hourglass.
(By the way, did he left compiz running,...)

So, as long as the Operating systems are SOOOO differents inside (I agree, ask them to draw a black square, they'll draw the same, but the mechanism is really different).

For the instruction sets because it's the point here, a well compiled source-distro will beat any pre-compiled distro's ass on speed problems, why? because it's not just a problem of instruction set, gcc does more (LOTS) like sorting instructions depending on the processor architecture in order to use every "region" of the processor at the time for differents instructions, use the differents levels of cache in the processor,... and thoses things change more often than the instruction set.

By the way, because of windows monopole, the drivers for your hardware are more specific than in linux (I suppose) look at the 3 nvidia drivers for linux and count how many there is for windows. I don't believe 3 drivers can propose the same acces to hundred cards than hundred drivers.

So as long as this test is flawed in so manu ways, that you forgot that GCC does much more than simply translating from a language to another and that there is differences between processors that use the same instructions set that can't be exploited without re-compilation, I think that this is better to let the i386 set as this, and if you want to use the full potential of your processor switch to a source distro. any binary distro can give you this power and if it uses each instruction, you'll add "gotos" (jumps) in your code that will break more hardware optimisations that you can imagine (but I swear you'll fell the difference in performances) so...

-1

ethana2 wrote on the 24 May 08 at 01:17
Ssdg: So Windows beat us on high arithmetic intensity operations there because what, it has a more performant kernel? I find that hard to swallow.

People know you're not going to be running XP on an i386, and they don't compile their apps for it. With ubuntu however, the compiling isn't done by the blender foundation, it's done by ubuntu motu folks, and if they're still bothering with i386, they're putting us at a completely unnecessary performance disadvantage.

sciurus wrote on the 25 May 08 at 03:44
There's some discussion of this at https://wiki.ubuntu.com/ubuntu-i686

Veichtlbauer wrote on the 2 Jun 08 at 10:11
Why don't you guys just use the x64 version of Ubuntu? All reasonably modern CPUs support the 64 bit extensions, and the whole ecosystem has caught up quite a bit. There are not many practical reasons left for sticking with 32 bit nowadays. Since all x64 CPUs already incorporate SSE/SSE2, the x64 stuff is also compiled to use the available features.

gaspard.leon wrote on the 11 Jun 08 at 23:22
god this is such a dumb thing to argue about...

Has anyone tried running ubuntu on a system with 256MB or less of RAM??? It's horrible...
Does anyone even have a 386/486/Pentium with 256MB+ of RAM???

i686 minimum, prefer options based on market share:

These are the computers being used in this, 2008... (it's not 1995 people)
- AthlonXP (K7) (market share dropping, but still in use)
- P4 (+ Celeron etc)
- Athlon 64 (K8)
- Core (2 duo) etc

adrian2 wrote on the 8 Jul 08 at 11:11
@ssdg: i don' want to spend hours compiling software that is renewed every week, I've got better things to do!


Post your comment