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."
"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."
David Chisnall says : parallel is not the same as in series. World gasps.
According to Lazarus long
The same should be true for AI
Also if we have a whole lot of special-purpose cores, we can leave the unused ones unpowered and gain in energy efficiency from the specialized ones. 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).
Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
There's no such thing as cars
We have to admit to ourselves that there is no one size fits all mode of transportation and that we require a large spectrum of different transportation methods tailored to the individual application.
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.
If Special Purpose Processors can defeat new patent law that says that computer programs running on general purpose computers cannot automatically be considered for patent protection but the same on Specific Purpose Computers ie Phones can be patented then its not hard to see where this crap gestated. Microsoft anyone? Do you think research grants get paid for anything but a corporatations own special purpose interests? This is the beginining of another end run around the new patent laws currently starting to hold back the patent cartell.
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.
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
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.
Anybody who's studied physics knows there's a lot of equations that ring true in the world, and that's the point of the mainstream Intel/AMD processors. Any programmer knows there's no limits to the number of functions you can write in C or VB, and languages like PHP place their own functions on top of a base of C, which can be compiled in to processor-specific code.
So, a chip that can do everything in Excel or Mathmatica would be the true General Purpose Processor. Intel Core i7 chips are close to getting there compared to a Pentium or Celeron chip. A RISC (Reduced Instrction Set Computing) chip by definition only knows the functions defined, and therefore can be fast at doing just that.
So, the true General Purpose Computing chip doesn't exist yet, but they're working on it!
if you have several different types of specialized cores on one cpu, you could call it a general-purpose processor.
So, a chip that can do everything in Excel or Mathmatica would be the true General Purpose Processor.
Yet such a chip can be emulated on a processor with reduced instruction set complexity because they're Turing equivalent: both are linear bounded automata. If you compile the same program in a high level language for a complex processor and a simple processor, they'll produce the same result. Each operation on the complex processor may correspond to several instructions on the simple processor, but ARM's bet with big.LITTLE is that reduced power consumption in a simple processor's instruction decoder makes up for that difference.
The true limits of "general purpose" are speed and size of memory, flexibility of input and output, and whether a device's manufacturer enforces restrictions against the device's owner on what software may run.
Basically it's making a big deal out of the fact that today's commonly available hardware is optimized for today's commonly available software. Duh! General purpose is a term relative to purposes a particular person has in mind. Nobody is suggested that Core i7 is capable of running Lt Cmdr Data.
A genuinely interesting paper would have specific ideas for architecture capable of solving problems beyond the scope of current CPUs and GPUs.
Chisnall seems to be confusing the expression "general purpose", which means "suitable for a wide variety of tasks", with an idea like "ideal for all tasks". He's criticizing arguments that no one is actually making.
Sure, tell any hardware engineer working on smartphones or tablets what they already know. Besides, it won't matter after a few years.
Graphene looks the most promising successor to silicon. In part because the electron mobility of graphene is hundreds to thousands of times faster than silicon, and it leaks almost no heat or power, (though inducing a bandgap increases leakage as of now).
Sure, for now stick some application processors in a phone to save a bit of power. In a decade or probably less just stick even a single core terahertz CPU in and you're done for 99% of all application processing. And that's 100% of 95% of the market, not 99% of tasks for everyone.
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.
there's no true scotsman
There have been many mediocre articles on the ACM Queue in the last few years ... this fits perfectly.
What about the human brain.
"If any question why we died, Tell them because our fathers lied."
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.
Back in the day (when I was actually PAID for buying supercomputers) I devised Jim's First Law of Supercomputing: For every computer architecture there is a problem that will solve on that particular architecture "better" than on any other architecture. And conversely, for every problem there is an architecture that will solve this problem "better" than any other architecture. (You get to define "better".) You didn't have to talk to too many computer sales-people to accept this as fact. I believe the point of the OP is exactly this.
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
"[Superscalar architectures] translate the architectural instruction encodings into something more akin to a static single assignment form (ironically, the compiler spends a lot of effort translating from such a form into a finite-register encoding)
Which makes me wonder, would it (in principle) be worth designing a chip with an ISA that is based explicitly on single-assignment-form, thereby avoiding both the need for transformations by the compiler and (more importantly) transformations by the CPU at run-time?
I don't care if it's 90,000 hectares. That lake was not my doing.
Yes, you can use almost 100% of the silicon, if you use a BitGrid to process information instead of Von Neuman architectures.
... there are lots of idiots that instead of kWh write kW/h.
It's quite understandable: our Education Minister Fursenko once said:
"Defect of the Soviet education system was an attempt to form a creative man, and now the challenge is to cultivate qualified consumers, qualified to benefit from the creative work of others"
"The ideology of education remains the same - we must prepare creators. But we need above all to inculcate the culture of using already existing developments, following the existing standards."
"I am deeply convinced that do not need higher mathematics at school. Moreover, higher mathematics kills creativity"
I'd say an X86 is general, but optimized. Obviously it does some things better than others, and there's known trade-offs between floating-point VS integral math, etc, but that's why we have special instruction sets, GPUs, and now APU's as well. They're still able to accomplish general tasks - most with reasonable speed - but they've been added on-to to accomplish the special tasks that are most common.
"it must be able to run all programs efficiently" Did he just pull shit of out his mouth? Does it have to fly too? General purpose means it is not optimized for any particular situation. Accelerators are optimized for specific situations. This guy is just stupid.
Shutting down parts when not needed?
Is it not the same way as brain works? Parts of the brain that are not needed are put in "suspended mode"
Which makes me wonder, would it (in principle) be worth designing a chip with an ISA that is based explicitly on single-assignment-form, thereby avoiding both the need for transformations by the compiler and (more importantly) transformations by the CPU at run-time?
If the ISA is based on single assignment then the compiler will still have to transform the code into this form. In practice the compiler does this anyway when it can and super-scaler hardware does a good job of executing this kind of code. The problem (returning to the subject of the thread) is that not all code fits this pattern and in these cases a single-assignment ISA will perform particularly badly so it is not suitable for general purpose processors.
Researchers have be developing ISAs for decades (including the single-assignment approach on dataflow computers in the 1980s) and the current mainstream ISAs are a reflection of that research. There is no magic new way of executing general purpose code.
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.
Everyone buys based on need you don't buy a Porsche that can go 200 MPH to deliver mail. Neither do you buy a Mack truck to pick up a few things at the hardware store. At the same token CPU's are purpose built and designed. Multi core generally were designed to help with multi task operations. Obviously if all you do is surf the web on a browser with only a few tabs open you don't need as much CPU as a person using CAD software, running multiple high process programs or playing 3D games. In fact Intel as I sure AMD does this too takes its CPU chip process and makes varied speed CPU's based on the quality of that wafer. So in essence many different speeds come out of the process to save money. Its also why ARM chips are becoming popular and even being considered for servers. They can run equally well and use less power and still maintain the duty status needed for a server. You don't buy a core i7 extreme to do your taxes on or write a term paper. At least you shouldn't because unless you use that power for other tasks. You again have bought a Corvette to deliver pizza's.
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.
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.
"There's No Such Thing As a General-Purpose Processor"
Say it ain't so. I'm still wrapping my head around that "no free lunch" thingie.
I have designs for general and efficient processors, or rather computing structures, and it is provable they are both efficient and general.
The generality of computing has been known for a long time, through emulation of Turing machines, but this has not been efficient.
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
Aren't all Scotsmen inherently British citizens
Yes. But not all British citizens are Scotsmen, only those residing in Scotland.
unless you have some other angle I think you failed to produce a workable joke.
"No true Scotsman" is about changing definitions in mid-argument, and an effective way to avoid this is to agree on definitions early on. Likewise, one resolves the heap paradox by defining a heap as a contiguous collection of grains where at least one grain is supported solely by other grains. I was aiming for a bit of an anti-joke by defining "Scotsman" the way the law probably defines it, if the definition of "citizen of a state" in another common-law country's constitution is to be believed.
Now let's apply this principle to the term "general-purpose processor". A Turing equivalence definition might be "capable of executing all programs." An efficiency definition might be "capable of executing all programs with time and energy use no greater than that of the most efficient processor for each program."
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.
The real problem is that you never know what you may end up doing. The potential of a speciality bit of silicon is by it's very nature limited. It may completely fail at some new task that you didn't think of when you were building it.
It's great for some really well defined problem but as soon as that definition is no longer invalid, the speciality silicon is useless.
"General Purpose" means that you can address any problem including the ones where your specialty silicon fail.
A Pirate and a Puritan look the same on a balance sheet.
Architectural improvements for general purpose CPUs yield less and less benefits: Even more registers? Even better branch prediction? Even larger caches? It'll all yield but a few percent, at least for current Intel designs. So, the way to go is currently more and more cores, but what good is it to have many cores that can't all fire simultaneously?
Computer simulation made easy -- LibGeoDecomp
Really? An academic claims there is no such thing as an ACTUAL non-theoretical device? Amazing. Clearly an incompetent. The number of specialized devices which have become "general purpose" in the last 30 years is astounding.
Clearly a case of Bozo-Philia