Announcement

Collapse
No announcement yet.

Our Last Time Benchmarking Ubuntu 32-bit vs. 64-bit

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #41
    Originally posted by duby229 View Post

    I just want to point out that there is basically like 0 performance gain from those additional GPRs.
    Source?

    AMD did publish at least one paper around the time x86-64 was released showing simulation results for SPECint/fp performance as a function of number of GPR's. IIRC 16 was a significant boost from the original 8 in x86-32, but the improvement going from 16->32 was substantially less; thus they chose 16. IIRC the performance boost due to 8->16 GPR's alone was on the order of 10-20%.

    Most 32bit binaries are compiled for i686.
    Yes. And are thus with relatively few exceptions still bound by the i386 ISA. And even if e.g. SSE2 is used instead of x87 for fp math, x86-32 ABI's still specify that fp arguments are passed on the stack (or maybe a couple did use the x87 register, I don't remember), necessitating copying stuff back and forth on function call boundaries. And so on..

    Most 64bit binaries at least have SSE2 optimizations.
    Yes, SSE2 is always available on x86-64 so it's used not only for vectorized code but also for plain scalar code, instead of x87.

    And that's exactly what you are seeing I'm completely sure of it. A natively compiled 32bit binary will perform very similar to a natively compiled 64bit binary.
    As can be seen e.g. by the benchmarks in this article we're ostensibly discussing right now, this is not correct.

    We live age where 16GB of RAM is common and we are still stuck at 2bytes worth of GPRs... I think it's a damn shame. (And they can for damn sure no longer claim it's a transistor budget problem.)
    Huh?

    Comment


    • #42
      Originally posted by rudregues View Post
      And what about the kernel itself? Is there a roadmap or plans for when they will drop 32-bit support of the kernel?
      AFAIK no such plans. 32-bit x86 is still useful for embedded devices etc. even though its time has clearly passed for mainstream desktops and servers which Ubuntu is targeting.

      Comment


      • #43
        Originally posted by vsteel View Post
        So explain to me why people want to use old hardware but need to use new software? ...
        Really, you don't get that? Interesting ...

        Comment


        • #44
          Originally posted by jabl View Post
          AFAIK no such plans. 32-bit x86 is still useful for embedded devices etc. even though its time has clearly passed for mainstream desktops and servers which Ubuntu is targeting.
          It's not just useful, but it's going to be essential for the "Internet of Things" (IoT). 32-bit is only leaving desktops and servers to take over the much larger embedded market. Linux will become only more important and having the latest software, and by that I don't mean playing with Lara Croft in 4K, is essential for these to operate and to communicate securely. Canonical either isn't interested in this business or could just be looking to keep things separate. Time will tell, but I'm also not much interested in Canonical myself to care about their plans.

          Comment


          • #45
            Originally posted by duby229 View Post
            Also worth pointing out, GUI interfaces are not that CPU intensive. While I fully agree we all should be on a 64bit OS by now, there really isn't a point in compiling every program to 64bits. Until Steam starts consuming more than 4gigs of RAM or it starts hitting the CPU hard, it really doesn't need to be 64bits.
            This is really not true. There are a lot of additions to the AMD64 spec besides just 64bit pointers. There are a lot of extra registers including about double the amount of general purpose registers. There are also standardized a lot of instructions added since, like SSE, SSE2, etc...

            Even still, there is an ABI added in linux that uses AMD64 instructions with 32bit pointers, for absolute performance, called X32. It is not that popular because the performance hit for 64bit pointers isn't that high.

            At very least, Ubuntu could have dropped i386 for i686 like Arch Linux did. Arch did this for better 32-bit performance on older machines, being that no one was running 386s, but Pentium IIs and IIIs at the time.

            I'm not so sure 32 bits is completely done, but when we are talking about "Machines running the latest version of Ubuntu", its a safe bet to say that most of them would be poor choices to run Ubuntu.

            If you really need to keep old hardware in operation, the best bet is usually old software. Keep in mind that no one is getting rid of existing 32-bit builds, and that if you have a 32-bit machine, the software you are running on it now should be good for the rest of the life of that hardware. 32-bit is not being all of a sudden dropped, but phased out.

            Comment


            • #46
              Originally posted by sdack View Post
              It's not just useful, but it's going to be essential for the "Internet of Things" (IoT). 32-bit is only leaving desktops and servers to take over the much larger embedded market.
              Two points

              1. Ubuntu has two main distros. Server, and Desktop. They currently do not offer an embedded image. There are plenty of OS choices for embedded, i.e. IoT, ubuntu is not one of them. They are only phasing out 32-bit desktops, which are becoming increasingly obsolete. If Ubuntu decides to roll an embedded IoT distribution in the future, it will not be effected by their desktop.

              2. I am not sure why 32-bit x86 would be optimal, or even desirable for embedded. There are plenty of other better choices for this like MIPS, and especially ARM. ARM being the embedded leader right now. Even still, most low power x86 chips these days are increasingly 64bit. PC Engines APUs are 64-bit x86.

              Comment


              • #47
                Originally posted by sdack View Post
                Nonsense. 8-bit and 16-bit are still alive, and 32-bit is also still alive.

                Do you need examples? Take any of the home and small office network devices and take a look inside. They mostly run 32-bit CPUs with Linux these days. Washing machines, fridges, microwaves, etc. still use 16-bit controllers. You'll even find 16-bit on mainboards next to your 64-bit CPU or in your keyboard.

                In short, there will always be a need for good 32-bit software and you better hope it runs Linux and not some proprietary software. Computers are found not only on or under desks. They are everywhere now and in every form and shape.

                Now, in case of Ubuntu is this possibly a good decision. Ubuntu doesn't perform very well when compared to other distros and it even falls behind Debian in terms of performance. So hopefully will it enable Canonical to deliver a better Linux for the modern x86 desktops and servers. For the older PCs is there still Lubuntu and Debian itself available. Anyone who uses Ubuntu on 32-bit PCs will likely have issues with it already.

                Statements like "there is no longer reason for 32bit operating systems and or 32bit programs" make the people here - us - look really dumb, like we were Democrats, who claim not voting for them puts an end to democracy. It's so bad, it hurts just to read here.
                you don't understand that 32bit and lower are overwhelmed by newest hardware giving them better opportunity to maximize their quality. nowadays 32bit is useless. it's not question of democrats or not democrats it's question of evolution and quality of technology. You can get light with a candle or an incandescent bulb when there is led which let to get light in better way with less energetic consumption. it's only question of intelligence. 32bit is nowadays a waste of progress.

                Comment


                • #48
                  Originally posted by Azrael5 View Post
                  you don't understand that 32bit ...
                  No, you don't understand what 32 bit is. I understand what it is. It's an addressing mode and describes the amount of memory a CPU can address as well as the width of its registers. And that's all. It has nothing to do with light bulbs whatsoever. Once you get it right will it no longer be a question of intelligence for you, but you will have intelligence.

                  Comment


                  • #49
                    Originally posted by GI_Jack View Post
                    Two points

                    1. Ubuntu has two main distros. Server, and Desktop. They currently do not offer an embedded image. There are plenty of OS choices for embedded, i.e. IoT, ubuntu is not one of them. They are only phasing out 32-bit desktops, which are becoming increasingly obsolete. If Ubuntu decides to roll an embedded IoT distribution in the future, it will not be effected by their desktop.

                    2. I am not sure why 32-bit x86 would be optimal, or even desirable for embedded. There are plenty of other better choices for this like MIPS, and especially ARM. ARM being the embedded leader right now. Even still, most low power x86 chips these days are increasingly 64bit. PC Engines APUs are 64-bit x86.
                    1. I never said Ubuntu was great. Canonical could possibly be very short-sighted in fact.

                    2. Optimal is only what's also cheap. It doesn't matter if it's then Arm, MIPS, Intel or whatever as long as the compiler can produce code for it and the chips don't cost much. Debian offers 32-bit versions for all three of them and my money is on them when it comes to the long haul. I still don't give two fucks about Canonical. I already said it's probably best for them to give up on 32-bit, because their distro isn't even performing good on 64-bit, but manages to lose to Debian in terms of performance. That's rather impressive for a Debian-based distro and not in a good way.

                    Right now it's only Debian with their stability and wide range of supported platforms, as well as Intel with Clear Linux and their use of function multi-versioning, who are setting the standards for what we really need. Debian being the best choice for the embedded market and Intel simply by showing how to maximise performance. There is little desire for anything in between, which is where many distros still are.
                    Last edited by sdack; 01 October 2017, 05:39 PM.

                    Comment


                    • #50
                      Originally posted by GI_Jack View Post

                      This is really not true. There are a lot of additions to the AMD64 spec besides just 64bit pointers. There are a lot of extra registers including about double the amount of general purpose registers. There are also standardized a lot of instructions added since, like SSE, SSE2, etc...

                      Even still, there is an ABI added in linux that uses AMD64 instructions with 32bit pointers, for absolute performance, called X32. It is not that popular because the performance hit for 64bit pointers isn't that high.

                      At very least, Ubuntu could have dropped i386 for i686 like Arch Linux did. Arch did this for better 32-bit performance on older machines, being that no one was running 386s, but Pentium IIs and IIIs at the time.

                      I'm not so sure 32 bits is completely done, but when we are talking about "Machines running the latest version of Ubuntu", its a safe bet to say that most of them would be poor choices to run Ubuntu.

                      If you really need to keep old hardware in operation, the best bet is usually old software. Keep in mind that no one is getting rid of existing 32-bit builds, and that if you have a 32-bit machine, the software you are running on it now should be good for the rest of the life of that hardware. 32-bit is not being all of a sudden dropped, but phased out.
                      Actually I fully agree with you. You didn't say anything I don't agree with. Except that 8 extra registers isn't very much. It's dinky as hell. Most extra registers have come from ISA expansions and which makes the whole thing harder to optimize. It definitely needs more than just 16 GPRs. Make it more like 256 minimum. I recognize there's no chance in hell for that though, it's just wishful thinking.

                      Comment

                      Working...
                      X