Slashdot Mirror


The Quest for More Processing Power

Hack Jandy writes "AnandTech has a very thorough, but not overly technical, article detailing CPU scaling over the last decade or so. The author goes into specific details on how CPUs have overcome limitations of die size, instruction size and power to design the next generation of chips. Part I, published today, talks specifically about the limitations of multiple cores and multiple threads on processors."

18 of 104 comments (clear)

  1. We don’t need more “power” by Pan+T.+Hose · · Score: 3, Interesting

    What we need is a better architecture which would allow for a better implementation of algorithms. Will we ever have an MMIX-like processor with 256 general-purpose 64-bit registers that each can hold either fixed-point or floating-point numbers? That is what I am waiting for, not more "power," whatever that means.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
    1. Re:We don’t need more “power” by dnoyeb · · Score: 2, Interesting

      True. These dual core CPUS are an indication that they are having difficulty increasing their CPU throughput.

      As with dual CPU motherboards, you go to dual, when you cant get anything else out of the single...

      10GHz CPU, lol. Why not release one that requires a 100GHz clock? If its only processing every 30th cycle, whats the big deal? Oversimplification I know, but that is the essence of Intels laughable strategy. Consumer ignorance vs. product innovation. Well take the ignorance. How long can it last with AMD spankin them year after year, technologically.

    2. Re:We don’t need more “power” by MerlinTheWizard · · Score: 2, Interesting

      You make a good point here. To add to what you said, I think we don't really need more "raw power" (at least, not for general use), but we need more "intelligent" use of the available power. We are a few who think the future is some kind of "soft core" where the available cells could perform different functions over time. Kind of like a super-scalar, on-the-fly reprogrammable FPGA. Think of how much of a "classic" processor is just a huge waste of ressources, most of the time. We need to improve on that.

  2. Re:There can only be one by 2.7182 · · Score: 3, Interesting

    Actually, quantum mechanics is already modelled with an infinite dimensional Hilbert space, which is why quantum computing is so fast.

  3. Quick answer by LiquidCoooled · · Score: 5, Interesting

    Run old software.

    Its only new software thats sucking up all the extra processing power.

    Remember back with really sluggish 33mhz 486s etc (and a lot lower) and thinking of the ultimate computer being a whole 50mhz.
    Well now you got a computer thats over 10 times faster with practically infinate capacity.

    Fire up that old operating system and run you original software, you will be in heaven!

    --
    liqbase :: faster than paper
  4. Re:There can only be one by 2.7182 · · Score: 4, Interesting

    You mean like something useful ? How about modelling weather or geophysical phenomenon or solving Maxwell's equations ? There are a zillion things like that could be amazingly better if we could speed them up. People forget too easily about scientific computing!

  5. Re:We don’t need more registers by cnettel · · Score: 5, Interesting
    Ok, classic x86 is cramped and the CPU does a lot of register renaming to get around it. I don't agree that more registers would actually do that much good.

    What kind of algorithm are you imagining would benefit from 256 fields of non-vectorized data?

    Of course, those registers could be used in larger things for everything that's worthy of a local variable, but as soon as you run into a stack operation you'll either only want to push a subset of the registers to the stack, or face a harder blow of memory access times by making each function call a 2048 byte write to memory.

    Explicit encoding of parallelism, hints to branch prediction, and similar stuff, seems far more appropriate.

    Again, few single functions in an imperative language have 256 separate variables, without involving arrays of data. Unless the register file is addressable by index from another register (basically turning it into a very small addressed memory, which is whta you try to avoid with registers), you have little use for 256 of them. Take for example a trivial string iteration algorithm, most of those registers would be completely useless. The same holds true for common graph algorithms.

  6. Re:We don’t need more registers by cnettel · · Score: 2, Interesting
    I don't agree that more registers would actually do that much good.
    Clarification: It's easy to see that you move in and out of registers and force the CPU to do register renaming to get good parallelism in x86. I fail to see the benefits from a real performance standpoint when you reach above let's say 32 of each kind, and I think that the 16 available in AMD64 should be fine for most tasks. The problem in x86 is that they are eight and even those have locked meanings to some degree.
  7. Eliminate Bottlenecks by Trolling4Columbine · · Score: 5, Interesting

    Chances are that you aren't often pushing your CPU to capacity. What I'd like to see is a better way to identify bottlenecks in my system. There's no sense pumping more power into a system if it's all going to be throttled by something like a slow hard drive.

    --
    Socialism: A feeling of discontent and resentment caused by a desire for the possessions or qualities of another.
  8. Re:More power will lead to more bloat.. by Rinikusu · · Score: 4, Interesting

    Because, overwhelmingly, no one really cares but a handful of people. The days of hand-tweaked, ASM optimized code are pretty much over for consumer code. Yes, there will always be a market, but it is ever diminishing with the size of market expanding. To use analogies, look at furniture. Go to just about any furniture "gallery" positioned for the great American unwashed and you'll find several hundred, almost identical mass-produced fat-ass-cliners, some with machine stitched leather, some with vinyl, some with cloth, etc. Dressers and other cabinetry are stapled, nailed, screwed and glued with machine precision accuracy. The demand for hand-built, crafted furniture has dropped tremendously (and the prices for these craft pieces seems to have gone up.. ). Yes, a "hand-tweaker" coder will probably find work with a small shop somewhere, or create their own consultancy for constituents who demand that kind of programming, and chances are that coder will make quite a bit more than the average, churn and burn programmer (people like me), but for the overwhelming majority, it's overkill.

    (Here's a simple cost analysis: We can pay this guy $100k/year to do hand-optimized tweaks on this code that then becomes a liability for future maintanence if that coder dies, quits, or whatever. Or, we could add another stick of $100 RAM, and buy a new processor next year for a fraction of his cost and get a similar performance bump... The math doesn't add up...)

    --
    If you were me, you'd be good lookin'. - six string samurai
  9. Myth of the single threaded desktop by Anonymous Coward · · Score: 1, Interesting
    The myth is that desktop programming is inherently single threaded and that there's no benefit to multi-threading. This is in part due to that fact that a lot of multi-threaded programs don't run any faster on a single processor than a single threaded program does. If there's no benefit to writing multi-threaded programs, than why go to the extra trouble of doing so.

    I expect that once multi-core desktop cpu's become more prevalent, the advantage of multi-threaded programming will become evident and start to take off.

    1. Re:Myth of the single threaded desktop by harrkev · · Score: 3, Interesting

      There are two fundamental truths:

      1) Programming for two or more processors is more work, and prone to more subtle and strange errors.
      2) Most people only have one processor.
      You can draw the obvious conclusions.

      Fact #1 can be dealt with by proper techniquie, training, and tools.
      Fact #2 is going to change due to the inability of AMD, Intel to deliver over 4GHz.

      --
      "-1 Troll" is the apparently the same as "-1 I disagree with you."
  10. Re:More power will lead to more bloat.. by Kjella · · Score: 2, Interesting

    From what I've gathered OS X has been cleaning up and improving speed on their code. A few select open source products have also reached a "stable" feature set and are working on smoothing things out. On the whole though, not all of it has gone to bloat. Much of it has gone to abstraction, reuse and consistency. I'd rather they reused a known, tested component that's 10% or 20%, or depending on the application, 1000% slower than to rewrite a new custom piece that'll have new bugs.

    Speed is rarely an issue that annoys me, but crashing is. And it is even more annoying to have a page mis-render than having Opera crash. The only speed issues that annoy me are sluggish or hanging interfaces, but that is a programming issue, not a "speed" issue as such. It doesn't take 3GHz to respond to mouse/keyboard events.

    Kjella

    --
    Live today, because you never know what tomorrow brings
  11. Not particularly good for Windows by TheLoneCabbage · · Score: 3, Interesting

    Multi threading get's you a speed boost not necesarily on the individual application, but definetly on the OS level. That's why Sun get's away with individual CPU's that are each 1/4 the speed of cheapy x86 hardware.

    Most OS's these days are not monolithic. Even MS is really a collection of smaller pieces, but not nearly to the degreee of Linux.

    Linux just scales better than Windows on multiple CPUs. I have no doubt that MS will work indian programers day and night to catch up, but this is a game they are definetly playing catch up in.

    Linux, in some versions is scalling past 64 CPUs now (oh the benefits of forked kernel development!), which should factor nicely when time comes that AMD ('cause may not be around then) is pushing ships with dozens if not hundreds of micro-cores.

    Last I checked (and I may be out of date on this) Windows started bogging on 4 CPUs. And never mind it's assanine global message loop.

    I fully realize Joe User cares more about percieved performance than real performance (long live xorg!), and explaining Linux's advanced scaling architecture will not win over the desktop, but it will have a signifigant impact on technical decision markets; from servers to embeded devices (HUGE market for these clustered chips).

  12. Re:Limitations... by Kjella · · Score: 3, Interesting

    The wonder of these future boxes is that we will STILL be able to write code that makes them run slow. Roll on Longhorn I say!

    Well, each version of Windows seems to bring about new hardware requirements. Most people buy a new Windows version with new hardware. It is more than just a little coincidence. I think Microsoft is well aware that most people aren't able to install Windows themselves, and that making them believe you'll need a faster box is a good idea to keep them upgrading to the "next" level, both on software and hardware.

    Kjella

    --
    Live today, because you never know what tomorrow brings
  13. Re:We don’t need more registers by cnettel · · Score: 4, Interesting
    Read my own clarification response above yours, I intended to write that x86 is cramped by its register count (and the further restrictions on what to use when), but that 256 is very, very much.

    The Itanium has a huge file with, IIRC, even more registers in total. They are not inter-changeable, though, but the (almost) only point in that would be to keep the total number of registers down, while being flexible for most types of code. As I think that it's generally actually easier to make them separate for different execution units, that's not very interesting. Also, note that the Itanium currently has a 2-cycle (again, IIRC) register access time! They tried to be visionary, adding a huge register set, in addition to some parallelism encoding and other things I mentioned in the parent, but they traded (what seems to be) far too much to get it.

    A huge (defined as MMIX-like, not AMD64-like)register file might be great, but you need selective register pushing to stack to get away with it, unless you or the compiler are performing very aggressive inlining. What's easier, if you're doing assembler -- calling a function and put a local on the stack or writing a huge fricking implementation of your main algorithm, taking great care to use all different registers in each function inlining?

  14. User defined branch prediction by neomage86 · · Score: 1, Interesting

    Just to note, I am not an Electrical Engineer (but will be in 3 years). From what little I've read, it seems like branch prediction allows the cpu to prefetch data it will need. Smart math people keep coming up with better and better general purpose algorithms. But these new algorithms need more and more logic behind them, adding to CPU complexity a lot. Now, my question is once we have an n-core cpu, would it be possible to optimize your main cpu set up for general purpose use, the second for video enconding, the third for games, and so on. Then when you run software, it will know (or you tell it), what CPU to run on. It seems that if the CPU designers knew what kind of code would be running, they could optimize branch prediction algorithms better for that task. It seems like misses are extremely expensive, and that something like this would help. It would be the next best thing to having an FPGA on your chip that automatically reconfigured itself for whatever algorithm you need.

  15. Who needs this much power? by vivin · · Score: 2, Interesting

    We have to look at how much this affects different people.

    Who needs so much raw processing power? Your everyday Joe Computer User, only uses it for Word Processing and checking email, and surfing the interweb. Which is why when some of my friends (or their parents) go looking for a new computer, I ask them what they use their computer for, mostly. If they're not eXtreme gamers or something, then I don't see a point with them buying a processor screaming along at 4 Ghz or whatever.

    In the light of this, I still think there's a market for single-core CPU's for the everyday user. There is probably one other thing that can change this though - video encoding/recoding. A lot of people are starting to use their PC for burning DVD's. As anyone who's ever authored a DVD knows, it can take some time. It takes about 3.5 hours on my Pentium 2.4Ghz to author a (4 Gig) DVD. That time is spent on the encoding. So multicore processors would probably help with that (or perhaps there could be a dedicated hardware solution - encoder cards?).

    I know this article is just talking about continuing trends, and what could die out. So yes, unicore/single-core CPU's may not be a "profitable" trend, but there are still uses for them. Also, as the article showed, talking about hyperthreading, it would also help if apps were written taking into account hyperthreading/multicore processors in mind. That way, they can take full advantage of it. I see hardware taking a while to catch up and utilize the full potential of the hardware.

    --
    Vivin Suresh Paliath
    http://vivin.net

    I like