Slashdot Mirror


There's No Such Thing As a General-Purpose Processor

CowboyRobot writes: David Chisnall of the University of Cambridge argues that despite the current trend of categorizing processors and accelerators as "general purpose," there really is no such thing and believing in such a device is harmful.

"The problem of dark silicon (the portion of a chip that must be left unpowered) means that it is going to be increasingly viable to have lots of different cores on the same die, as long as most of them are not constantly powered. Efficient designs in such a world will require admitting that there is no one-size-fits-all processor design and that there is a large spectrum, with different trade-offs at different points."

31 of 181 comments (clear)

  1. There are different workloads, duh. by Anonymous Coward · · Score: 4, Insightful

    David Chisnall says : parallel is not the same as in series. World gasps.

    1. Re:There are different workloads, duh. by Jane+Q.+Public · · Score: 2

      David Chisnall says : parallel is not the same as in series. World gasps.

      It's worse than that. TFA's basic premise that "there is no such thing as a general-purpose processor" is just flat wrong. Of course there are. His real argument is about how to make them efficient, which is a different thing and very much contrary to his title and introduction.

      Anything that can implement a Turing machine *IS* a general-purpose processor, by definition. And any general-purpose processor can do what any other general-purpose processor can do... although not necessarily fast or efficiently.

      Sadly, Chisnall gets the latter part (efficiency) confused with the former part... and in the process he incorrectly attempts to re-define the entire long-accepted meaning of what a "general purpose" processor is.

      Just no. He's not qualified to do that.

  2. Specialization is for insects by rossdee · · Score: 2

    According to Lazarus long
    The same should be true for AI

    1. Re:Specialization is for insects by rasmusbr · · Score: 2

      According to Lazarus long
      The same should be true for AI

      If that analogy holds in more than one way then I suppose that specialized AI models will appear earlier in history, will be vastly more numerous and resilient and long-lived than more generalized AI models.

      The more generalized AI:s will probably want to reach for a specialized-AI swatter every now and then.

  3. Saturday is Semantics Day by Crashmarik · · Score: 2, Insightful

    It isn't hard to understand when people talk about specialty processors they are talking about things that explicitly designed particular tasks easier.
    V.S. General processors which are designed to have wider application while not being as fit for any particular task.

    Not going to say this is correct, but it's pretty easy to put together the exact opposite argument of the authors. That specialty processors should be treated very carefully and their use limited. After all each time you add a different type of specialty processor into an environment, you introduce another codebase for the application, another toolchain to learn and another set of communication / OS support issues.

    1. Re:Saturday is Semantics Day by phantomfive · · Score: 2

      It isn't hard to understand when people talk about specialty processors they are talking about things that explicitly designed particular tasks easier. V.S. General processors which are designed to have wider application while not being as fit for any particular task.

      I believe his point (in the context of high performance algorithms) is that 'standard' processors vary so much in their performance, in the cases they optimize for; that there is no general purpose optimizer that you can consider will work in a certain way for a given algorithm. Some algorithms will work better on processor A, and others on processor B, even though they both are 'general purpose' processors.

      In other words, if you are studying high-performance algorithms, and are writing papers about high-performance algorithms, then you better have a deeper understanding of your processor than just 'general purpose.' General purpose processors vary too much for that to be a meaningful term in this context. Good advice, nothing particular to see here.

      --
      "First they came for the slanderers and i said nothing."
  4. Re:Efficiency by jones_supa · · Score: 2, Informative

    This seems to be how the human brain works, and it runs on less than 100 watts (100 watts corresponds to 2000 Calories per day).

    A whole woman consumes 100 watts. Of that brain is about 20 watts. Also, watt represents momentary consumption and calories are a fixed mass of energy, so you can't directly compare them.

  5. If it's fast enough, "general purpose" is fine by Anonymous Coward · · Score: 4, Insightful

    If a "general purpose" processor solves your problems fast enough, it's good enough.

    How the fuck is that "harmful"?

    Geez, you'd think TFA is just a blowhard looking for page hits.

    1. Re:If it's fast enough, "general purpose" is fine by Anonymous Coward · · Score: 3, Informative

      Because it is inefficient. In addition to higher energy bills, a less efficient architecture means shorter battery life in a mobile device, more noise in a desktop PC, and fewer servers per rack in a datacenter.

      There are "general purpose" microcontrollers that use microWatts of power. That can run on one tiny watch battery for years.

      For example, http://www.microchip.com/wwwpr...

      From datasheet,

        * 30 microAmps per Mhz
        * 20 nanoAmps in sleep

      So a 100mAh 3V watch battery would last 570 years on sleep mode and 3-5 months operating at 1MHz. Or at 31kHz, with some sleep it should operate for years on a button cell.

      And it's a fully programmable, general purpose microcontroller.

      So what's the problem? Too inefficient?

    2. Re:If it's fast enough, "general purpose" is fine by Ihlosi · · Score: 2, Insightful
      Because it is inefficient.

      And building a separate processor for each of the nearly inifinite number of possible tasks out there isn't?

      Especially when it comes to integrated circuits, mass production of one product is what makes the production process cheap and efficient.

      Also, at some point, you need to say "good enough/fullfills our requirements". Yes, you might save a bit of power by coming up with your own chip design, but designing an ASIC is not a trivial task and in the end your product might be three times as expensive and half a year late.

    3. Re:If it's fast enough, "general purpose" is fine by JaredOfEuropa · · Score: 2

      How the fuck is that "harmful"?

      Because every time you believe in a general purpose processor, a kitten dies

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  6. Re:Efficiency by jones_supa · · Score: 2

    A whole woman consumes 100 watts.

    D'oh! Human, not woman.

  7. Clickbait Caption, but Valid Arguments by gentryx · · Score: 3, Insightful

    Of course general purpose CPUs exist, simply because we call them that way. But it is also true that each design has it's own strengths, and "dark silicon" is another driver for special purpose hardware. Efficiency is another. Andrew Chien has published some interesting research on this subject. In his 10x10 approach he suggests to use 10 different types of domain-specific compute units (e.g. for n-body, graphics, tree-walking...), each of which is 10x more efficient than "general purpose CPUs" in its domain (YMMV). Those compute units bundled together, make up one core of the 10x10 design. Multiple cores can be connected via a NoC.

    Let's see how software will cope with this development...

    ps: can special purpose hardware exist if general purpose hardware doesn't?

    --
    Computer simulation made easy -- LibGeoDecomp
    1. Re:Clickbait Caption, but Valid Arguments by Thor+Ablestar · · Score: 3, Insightful

      Of course. But the very origins of microprocessor revolution are being forgotten:

      Intel was to make 10 specialized chips. Intel made ONE universal programmable chip i4004 that replaced them all and spent development money ONCE.

      It's possible to make 10 special-purpose chips but it will cost 10 times more.

  8. 1 Calorie per day = 48.4 mW by tepples · · Score: 5, Informative

    100 watts corresponds to 2000 Calories per day

    Also, watt represents momentary consumption and calories are a fixed mass of energy

    Calories and calories per day are not the same unit. A calorie is 4.18 kJ, and a calorie per day is 4.18 kJ / 86.4 ks = 48.4 mW. Multiply this by 2000 and you'll end up very close to 100 W.

  9. General purpose: Efficiency not required by davidwr · · Score: 5, Insightful

    From TFA:

    It's therefore not enough for a processor to be Turing complete in order to be classified as general purpose; it must be able to run all programs efficiently. [emphasis added]

    Um, nope.

    A general-purpose anything is rarely as efficient at a given task as a special-purpose version of the same thing. Sometimes you really do want your computer chip to be a "Jack of all trades, master of none."

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  10. It's not all that many years ago by msobkow · · Score: 4, Insightful

    It isn't all that many years ago that the floating point was handled by either software emulation or a co-processor. Now we're using GPUs as co-processors. There are also audio designs that act as co-processors. Several enterprise systems have encryption co-processors. IBM is notorious for putting specialized processors in their mainframes. Several chips have the GPUs embedded on-chip already.

    I'd argue that putting specialized chips on-die doesn't affect the general-purpose nature of the compute core that controls those resources at all. The whole article is red herring trying to establish a distinction between on-chip and off-chip processing that has to do more with the scalability of silicon manufacturing techniques than it does any distinguishing feature of the designs.

    Let's face it -- if you want to really accelerate a task, you design silicon specifically for that task and interface it to a general purpose core. The article discusses nothing new in the world of computing.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:It's not all that many years ago by SuricouRaven · · Score: 2

      AES encryption is built into all modern Intel CPUs, except a few Atoms.

      The enterprise crypto co-processors are mostly for RSA key generation. Something that's only done during connection setup, but can be a substantial load on a high-traffic SSL server that creates hundreds of connections each second.

  11. Transmeta by Sebastopol · · Score: 2

    This whole discussion just made me laugh whilst remembering the hype around the Transmeta / Torvalds code-morphing engine.

    Ah, the 90's. They were fun.

    CPUs have been "general purpose" since day one. The only non-general purpose hardware are ASICs (like the article says). Everything else is just marketing hype from Intel, et al.

    This is such an amazing rehash of what Intel used to call *T technologies in the 90's, starting from the 80's, when coprocessors started appearing (x87). The big trend was toward DSPs in the 90's, but that never happened, instead they pushed on new hardware like MMX, SSE and now vector processors. That's why we have graphics processors as non-general-purpose CPUs.

    To call something a GPGPU is just an egregious assault of on common sense.

    "Dark silicon", while a catchy name, is simply a side effect of latency, something the article mostly skips (hints at it with locality): the memory hierarchy exists and dark silicon is a result. When latency is zero, more of the silicon will be engaged.

    While one could easily claim that because parts of any chip power down that means it's not general purpose, that's an oversimplification: 100% utilization is fundamentally impossible because problems aren't solved that way, there is no infinite parallelism.

    I really think the author's analysis isn't fully developed. While the conclusion that hardware looks like the software may be a pleasant tautology, it overlooks Turing's thesis entirely. Which is odd, because that's what they author -started- with!

    --
    https://www.accountkiller.com/removal-requested
  12. Re:Efficiency by TechyImmigrant · · Score: 4, Funny

    A whole woman consumes 100 watts.

    D'oh! Human, not woman.

    I got myself an nvidia woman. She takes 400 watts.

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  13. Re:Hyperbolic headlines strike again by Zontar+The+Mindless · · Score: 2

    Come to Scandinavia, where there are lots of folks named "Thor" or "Tor", including the guy who lives just above me. He's a handyman and swings a very real hammer.

    --
    Il n'y a pas de Planet B.
  14. Um, what? by wonkey_monkey · · Score: 2

    Here is one definition of a general-purpose processor: if it can run any algorithm, then it is general purpose. This is not a particularly interesting definition, because it ignores the performance aspect that has been the driving goal for most processor development.

    Well, I'm sorry you don't find the definition interesting, but that doesn't mean you can redefine it however you want.

    It's therefore not enough for a processor to be Turing complete in order to be classified as general purpose; it must be able to run all programs efficiently.

    I assume there's a name for a logical fallacy where you redefine terms in order to make your point.

    With this in mind, let's explore what people really mean when they refer to a general-purpose processor: the specific category of workloads that these devices are optimized for and what those optimizations are.

    That's not what I mean when I refer to a general-purpose processor.

    Efficient designs in such a world will require admitting that there is no one-size-fits-all processor design and that there is a large spectrum, with different trade-offs at different points.

    I didn't realise anyone was denying this.

    --
    systemd is Roko's Basilisk.
  15. Re:Hyperbolic headlines strike again by TheRaven64 · · Score: 3, Informative

    I'm the author of TFA. There's a big difference between a general purpose processor and a general purpose computer. A lot of current research in computer architecture is focussed on the idea that you have a sharp divide between accelerators and general purpose CPUs. The point of the article is that different CPU microarchitectures are specialised for different workloads (one of the cited results was that in a big.LITTLE arrangement, the A7 core runs one of the SPEC benchmarks faster than the A15 because of its lower cache access time, for example) and that there are a lot of assumptions about the kind of code that the general purpose core will run. Many of these are true for C code, but a lot less true for code written in other languages. The communication patterns that mainstream multicore processors are optimised for are heavily tied to C, to the extent that if you have a language with a shared-nothing abstraction and message passing then the only way of implementing it is horrendously inefficient at the hardware level.

    --
    I am TheRaven on Soylent News
  16. Re:General purpose: Efficiency not required by 91degrees · · Score: 2

    I think there is a certain efficiency argument. A GPU may be able to run a C compiler but nobody would consider using it for that. A CPU can run an OpenGL implementation and it would be slow but you'd at least be able to do it without any fiddly hacks, and there could be a reason to do so.

    The article seems to be trying to find a hard and fast rule as to what "general purpose" means and then realising that that doesn't actually apply to general purpose processors.

  17. I's just a bullshit semantics game by Sycraft-fu · · Score: 2

    Guy is trying to play silly distinction games. Really, everyone in tech understands what people mean when they say "general purpose processor." Yes, said unit may have some specialized circuits and such, but it is made to be good at dealing with all kinds of problems. Integer, FP, branching, linear, etc doesn't matter its design can handle them all reasonably well.

    That compares to something specialized like a GPU. For certain kinds of problems, specifically single precision vector math with fairly consistent branches, it does amazing. However for other things, not as much, though it is turning complete and capable of anything. Still a true processor and not an ASIC that can't be programmed, but not general purpose.

    Try to play semantic games with it is silly. Are there going to be cases where the line might be blurred? Sure, but who cares? That's how life is. Everything doesn't always fit in to neat little boxes. It is still a generally useful way of looking at things.

  18. Re:Hyperbolic headlines strike again by smallfries · · Score: 4, Insightful

    A lot of the value in your article is lost by trying to shoehorn "general purpose processors" into an argument about task-optimisation. The difference between properties relating to computational power and those relating to performance is really basic textbook stuff that we teach to undergraduates. Being able to run any program, and being able to run any program efficiently, is a difference taught in undergraduate architecture courses.

    The parts of your article that are interesting and valuable would have been better served by a narrative that does not rely on a straw man. Cleanly separating the issue of power / performance and explaining that task-neutral optimisation is impossible would have been a better article, and one that would have been easier to write. There is a natural analogy with representation-bias in machine learning that would have provided more explanatory power without the unnecessary rhetoric. I know its the queue, but even so I am a little disappointed in your reviewers.

    --
    Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
  19. Re:Efficiency by Anonymous Coward · · Score: 5, Funny

    Sounds like a hottie

  20. Re:Efficiency by Anonymous Coward · · Score: 3, Funny

    Unfortunately she requires two inputs. :(

  21. Re:Hyperbolic headlines strike again by Kjella · · Score: 2

    Still don't get it. The difference is that accelerators try to do one thing, or at least one class of problems well at the expense of everything else. They optimize for the best case. CPUs do the same when they incorporates specialized instructions as "mini-accelerators" like AES-NI. But what sets general purpose processors apart is that they assume the worst and tries to make all code perform, no matter how ugly. They optimize for flexibility, with an emphasis on minimizing the worst cases. Those are two broad and fundamentally opposite ideas and while the implementations always differ somewhat the design goals remain the same.

    First you say Turing-complete is a poor definition, because it doesn't optimize for performance at all. Then you postulate that a general purpose processor must be efficient at everything, which is obviously setting up a "No true Scotsman" fallacy. You can't optimize for everything at once, you can't create a car with the speed of a Ferrari, the cargo capacity of a truck, the passenger capacity of a minivan and the price and size footprint of a Morris Mini. So the point your making in the headline is based on an absolutely absurd definition of a generalist.

    The difference you bring up between general purpose computing and general purpose computers is interesting though, what most people use their cell phone/tablets/laptops/desktops for might possibly be implemented with specialized software/hardware that makes a different trade-off than generic number crunching. But I wouldn't put money on it, I smell another Itanium in the making that'll emulate existing ARM/x86 code horribly. It would take an extreme amount of momentum to make that happen outside academic research papers.

    --
    Live today, because you never know what tomorrow brings
  22. Programming complexity by rockmuelle · · Score: 2

    A big reason we accept the trade offs of modern processors is that it's generally easy to program a broad range of applications for them.

    In the mid aughts (not very long ago, actually), there was a big push for heterogeneous multi-core processors and systems in the HPC space. Roadrunner at Los Alamos was a culmination of this effort (one of the first petascale systems). It was mix of processor types including IBMs Cell (itself a heterogeneous chip). Programming Roadrunner was a bitch. In having different processor families, you had to decompose your algorithm to target the right processor for a given task. Then you had to worry about moving data efficiently between different processors.

    This type of development is fun as an intellectual exercise, but very difficult and time consuming in practice. It's also something compilers will never be good at, requiring experts in the architectures, domains, and applications to effectively use the system.

    Another lesson from the period (and one that anyone whose done asics has known for years) is that general purpose hardware generally evolves fast enough to catch up with specialized hardware with a reasonable timeframe (usually 6-18 months, see DE Shaw's ASIC for protein folding as an example).

    While custom processors are cool (I love hacking on them), they're rarely practical.

    -Chris

  23. Re:General Purpose Defeats Patents So Here We Go ! by PPH · · Score: 2

    Good point. But if I can take (patentable) software targeted to a special purpose processor and port it to a different (possibly general purpose) processor, I have bypassed the patent.

    The goal of a 'well written' patent is to be as general as possible without getting tossed out of a USPTO examiner's office.

    --
    Have gnu, will travel.