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."

9 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.

  2. 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.

  3. 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 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.

  4. 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.

  5. 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.
  6. 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.
  7. 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