Twilight of the GPU — an Interview With Tim Sweeney
cecom writes to share that Tim Sweeney, co-founder of Epic Games and the main brain behind the Unreal engine, recently sat down at NVIDIA's NVISION con to share his thoughts on the rise and (what he says is) the impending fall of the GPU: "...a fall that he maintains will also sound the death knell for graphics APIs like Microsoft's DirectX and the venerable, SGI-authored OpenGL. Game engine writers will, Sweeney explains, be faced with a C compiler, a blank text editor, and a stifling array of possibilities for bending a new generation of general-purpose, data-parallel hardware toward the task of putting pixels on a screen."
For once I'm reading an 'xzy is going to die' article that doesn't sound like utter rubbish. Could it be that, for once, the one stating this actually knows what he's talking about?
My last custom realtime GPU was a Geforce Ti4200. I'm now using a Mac Mini with GT950. Mind you, Blender *is* quite a bit slower on the 950, even though it runs with twice the sysclock, but I'm not really missing the old Geforce. I too think it highly plausible that the GPU and the CPU merge within the next few years.
We suffer more in our imagination than in reality. - Seneca
He talks about the impending fall of the fixed function GPU.
Or do I need a GPU to calculate that?
I just browsed the article and it looks like what he's saying is that as GPU's become more like highly parallel cpu's we will begin to see API's go away in favor of writing compiled code for the GPU itself. For example, if I want to generate an explosion, I could write some native GPU code for the explosion, and let the GPU execute this program directly... rather than being limited to the API's capabilities.
So essentially, we will go back to game developers needing to make hardware specific hacks for their games... some games having better support for some cards, etc.
API's are there for a reason... lets keep em and just make them better.
Sometimes the best solution is to stop wasting time looking for an easy solution.
Somehow I don't think there's going to be lack of a standardized API much like OpenGL or DirectX even if it's possible to write code for the GPU as easily as the CPU.
The APIs at the most basic level allow Joe and Bob to build their own system, throw whatever graphics card they can find in it and have the same game run on both systems.
As soon as you start coding for a specific GPU you're going to be treating PCs like consoles. I don't care to have to buy multiple graphics cards to play various games.
APIs are for compatibility and general purpose use. The option of flexibility is great for industry use where you're running rendering farms all running identical hardware and custom software.
Work Safe Porn
Is C the best language for parallel processing? C is designed for an iterative, single-process system. When massively parallel processors (whether general purpose or for graphics specifically) become popular, there should be a paradigm shift in the popular medium-level language. Something more along the lines of APL might be appropriate.
For the last decade or so, it seems like the rendering side was abstracted away into either DirectX or OpenGL, but if the author is correct, those abstractions are no longer going to be a requirement.
While I don't know a lot more about the various other rendering techniques that the article mentions, it seems like there might be an opportunity emerging to develop those engines and license them to the game companies.
I suspect that game companies won't want to get into the graphics rendering engine design field themselves, but there's real possibility for a whole new set of companies to emerge to compete in providing new frameworks for 3D graphics.
--
Hey code monkey... learn electronics! Powerful microcontroller kits for the digital generation.
GPUs are going to be driven by the same things that drive game consoles & set top boxes. You can copy pure software, but you can't copy dedicated chips. You can copy video rendered by a CPU but not video rendered on a dedicated chip. Dedicated chips are going to stay cheaper than CPUs for many years. Just because you can decode HDTV in software doesn't mean there still isn't huge momentum behind set top boxes and DTCP enabled GPU's.
Standards based programming isn't going anywhere. That's crazy. We need Direct X, OpenGL, JMF, & MHP if only to outsource large chunks of the programming to cheaper divisions. How great it would be if everyone could base their career on hand optimizing ray tracing algorithms for SSE V, but the economy would never support it. These things have to be outsourced to select groups, firewalled behind a standard & higher paid programming done to the standard.
I have a bit of trouble with tech-speak, but I read the article as suggesting the GPU was on its way out entirely, meaning on a multi-core system one (or more) of the cores could be used to render a game's graphics while the rest of the cores do the rest of the work.
If that's correct, I wonder if this would make the PC platform attractive to gamers and programmers again? Eliminating the need for a $500 graphics card - and one of the hurdles to programmers - all of a sudden makes a cheap, but processor-powerful PC pretty attractive for gaming.
Also, it would eliminate the "runs best on" nonsense.
I just don't get how they can be saying this at all.
Ok... so from the article we have:
Which they say is remarkably true.
HUH?
So, all these new GPUs really don't speed up your machine? So I can take my nvidia 8800 OUT of my box, leave it to an onboard graphics chipset and I'll be getting the same performance will I?
Yeah.
Right.
I don't see AT ALL how they're getting this right?
Please someone enlighten me, as I'm not seeing it from where I'm sitting.
I think he was implying that it would be rolled up for most games in their engine. So developers would pay a licensing fee for the engine which sort of defined an api for the developers to use.
Well.. maybe. Or Maybe not. But Definitely not sort of.
If we are going back to the "old" days...
Why can't we skip all this OS nonsense, and just boot the game directly?
After all that will make sure that you get the MOST out of your computer.
See Ivan Sutherland's Wheel of Reincarnation. The idea is that CPUs get faster and graphics move there; then busses get faster and graphics moves to dedicated hardware; rinse and repeat. http://www.anvari.org/fortune/Miscellaneous_Collections/56341_cycle-of-reincarnation-coined-by-ivan-sutherland-ca.html
--- Often in error; never in doubt!
He is talking about custom rendering engines that would run on dedicated processors close to the video memory (such as on current generation GPUs). You could probably write a custom rendering engine in CUDA right now -- might not be all that great, but bandwidth would be a non-issue since it is running on the video card.
I think too many see his reference to CPU and think of CPUs running on the motherboard. Whereas he is looking at CPUs as any processor in the system, including the GPU cores running on current generation video cards.
Not sure why Tim Sweeney gets so much flack, he is the lead developer for a pretty popular 3d rendering engine...
I think the point of the article is that computing paradigms are merging. You won't have a CPU and a GPU. You'll have one thing that looks like both. In other words, you'll have a multicore, parallel, vector machine.
And that, absolutely, positively, will happen. Larrabee, or something like it, is the future. If you hold AMD stock, sell now, because Fusion doesn't sound anything like Larrabee and is going to seem positively draconian by the time it comes out.
In some ways, these new processors will look like a Cray YMP on your desktop. It's a rough analogy but suitable for illustration. Of course there are all sorts of differences in the way the memory systems will work and that's a huge part of the performance equation.
It seems to me that Tim puts a bit too much faith in compilers. He talks about language extensions but only in CUDA-like terms of "where things will run." A compiler needs a lot of information to be able to vectorize. The user often has to provide that information in a language like C because of its loose typing, aliasing and side-effect rules.
My prediction is that some APIs will go away, but many of the low-level ones will stay because it's often faster to call into a hand-coded library than rely on the compiler to have enough information to automatically optimize the code. Eventually compilers will start pattern-matching to these APIs. Higher-level APIs will be developed to save developer time, not CPU time. They will exist almost purely for code reuse purposes.
I disagree with Tim that hardware vendors will differentiate on performance. At least, in the way he's thinking. It won't be hardware gadgets, vector length or number of pipes that matter. It's going to be the compiler, programming environment and libraries. To the extent that the hardware supports those in its ISA, hardware will matter. But the bulk of the muscles of the chip won't matter so much as their placement and utility (by the compiler). The inflection point is leading to a world where software is king.
I disagree.
Direct hardware programming has always been the best in terms of performance. However, it is the worst in terms of compatibility. If you're programming consoles, this is just fine. If you're programming for PCs, not so much.
It will never go back to programming for specific pieces of graphical hardware. I'd say that each vendor MIGHT make a major chipset, and that those chipsets would be coded for, and everything else gets API'd, but even this is unlikely. If a company had to have two or three sets of programmers for their graphics, each team for a different major chipset, we'd see more expensive games or prettier games with crappier gameplay.
Even the OpenGL/DirectX split takes a heavy toll on programming resources for game developers.
Job? I don't have time to get a job! Who will sit around and bitch about being broke and unemployed then?
"Not sure why Tim Sweeney gets so much flack, he is the lead developer for a pretty popular 3d rendering engine..."
Just because he's a good programmer doesn't mean his statements about other things will be true, each statement must be taken individually.
Tim sweeney said 10 years or so ago the GPU would be integrated into the CPU, it hasn't happened.
Not only that the bandwidth requirements are off the charts for modern GPU computing. Sometimes I wonder if these programmers are even aware of wtf it is they are saying. I know lots of programmers who know dick all about the relationships in hardware. Tim sweeney borders on being one of those types of programmers. It's like he's so focused on development he's not seeing the forest from the tree's.
Also game engine's are many man projects, tim sweeny would be just one single dude on a team, nothing notable IMHO.
"There are really countless possibilities. I think you'll see an explosion of new game types and looks and feels once rendering is freed from the old SGI rendering model. "
Hmmm. That reminds me. When are we getting rid of the Von Neumann architecture?
Shai Schticks:"You don't make peace with friends, you make peace with enemies"
Anyone bought a hardware encryption processor?
Anyone bought a Dialogic voice board?
No probably not. You see eventually all hardware collapses into the CPU(s).
But the problem is that Games and Graphics are the Lamborghinis of computing. Performance uber alles. So I'm not convinced that anything short of the biggest quad core machines has the general purpose in software performance sufficient to away with these big honking graphics cards. Maybe not and smaller machines can do it but it's just as likely you buy a nanoITX daughterboard for your PS3 (or whatever the analog is to that next year) to handle all the 'other' computing requirements too.
"It seems to me that Tim puts a bit too much faith in compilers."
Itanium
Shai Schticks:"You don't make peace with friends, you make peace with enemies"
I hope that it goes back to programmer controlled rendering. I'm not a programmer by trade, but I like coming up with my own systems, and I cant tolerate the rules set in place by an API, which is why I havnt done much hobby graphics programming in a while. I predict that GPU's will die, and that we will just expand on multi core processing by automating it, so that programmers wont have to consider how many cores their application runs on, the load balancing will just be done under the hood, automatically. As a side note, why is it that source runs so well? I'm not really up to speed on it, but dosnt source use some unique method that runs it primarily off of the GPU?
Assuming this does in fact happen in the future... when will it happen?
First let's be clear that by "it" I mean the complete disappearance of the GPU market.
To answer, first ask: who will be among the last ones to be willing to part with their GPU?
I think the answer to this question is: gamers.
Which leads me to the condition of the 'when' (not the date of course).
And that condition is: when the integrated GPU/CPU is capable of performing under the JND (just noticeable difference) threshold of what the separate GPU itself could do.
In other words, once they start to output graphics which aren't discernibly different (which are so realistic that you cannot tell the difference) then at that point the separate GPU will perish because there is no longer a motive for it to continue to exist, as no human perception can tell them apart.
I do not respond to cowards. Especially anonymous ones.
What I got from the article wasn't so much the 'fall of the GPU' as a move away from the fixed APIs e.g. DirectX and OpenGL.
In which case, would this be a huge bonus for Linux ?
A lot of people say they use Linux for work but have Windows installed on the same machine so they can run games. If the games programmers are going to be writing C/C++ code that runs on the CPU or GPU, then in theory this cuts out the proprietary graphics APIs and makes the games much more portable. Could this mean that more of these games will be ported to Linux ?
John Carmack's evil twin.
Ok so you state that memory bandwidth requirements for GPUs are off the charts. Where do you propose to get more memory bandwidth than on the CPU itself? Seems to me if you want memory bandwidth there is no better place to be than on the cpu die...
Could you get around this by "compiling" the game for individual PUs?
And having it failing to run on newly released architectures? GPU instruction sets change much more often than even the Mac platform's m68k to PowerPC to x86 to x86-64.
But it could be as simple as buying a game, and on install getting a PU specific file either from disc, or for newer iterations from a download server.
Until the publisher goes out of business or just decides to discontinue porting an older game's PU specific files to newer video cards in order to encourage users to buy^W license the sequel. And then you get into microISVs that don't have the money to buy one of each make and model of video card against which to compile and test a game's PU specific files.
"Take a 1999 interview with Gamespy, for instance, in which he lays out the future timeline for the development of 3D game rendering that has turned out to be remarkably prescient in hindsight:
2006-7: CPU's become so fast and powerful that 3D hardware will be only marginally beneficial for rendering, relative to the limits of the human visual system, therefore 3D chips will likely be deemed a waste of silicon (and more expensive bus plumbing), so the world will transition back to software-driven rendering."
Nuff said.
You are very, very wrong. The history of computer hardware has been one where extra functionality is moved from the cpu for speed, folded back in a few years later for efficiency, and farmed out to an add-on card for speed some time later...
See http://catb.org/jargon/html/W/wheel-of-reincarnation.html for details.
Assuming he means Emacs, then this is the way God intended it to be.
So developers would pay a licensing fee for the engine which sort of defined an api for the developers to use.
Right now, computer graphics programming students use OpenGL. What would these students be able to afford should OpenGL become irrelevant?
If the CPU and the GPU are one, they compete for memory access. That's why the GPU is separate, and has its own memory. Putting them together is a bizarre idea.
"Ok so you state that memory bandwidth requirements for GPUs are off the charts. Where do you propose to get more memory bandwidth than on the CPU itself? Seems to me if you want memory bandwidth there is no better place to be than on the cpu die..."
Again you're missing the point, "the jack of all trades, master of none" problem, not to mention the space requirements. GPU's complexity is nothing like the old style co-processor units that were integrated into the core. They require ridiculous amounts of cutting edge ram to get that kind of performance, and they need a lot of ram to output the results of those calculations.
I don't see CPU's integrating 512MB to 2GB of ram in the near term future given heat and die size considerations, and we haven't even touched the extremely low bandwidth between modern cpu's and main memory in PC's (which is much much less then a modern GPU).
The GPU will play it's part for as long as is necessary. I don't rule out that perhaps one day it will be technically feasable but it is nowhere near that day, it's at least a decade or more away.
We've seen this time and time again, processors go through evolutions of integrating and seperating. We went from mainframes to PC's and with the net 'back to mainframes' but notice how each device play's their role, each one didn't totally obsolete the other, they just have become more specialized at their tasks.
Then why aren't commercial games already distributed as C++ source code so that they can be recompiled for AMD or Intel CPUs?
This doesn't make any sense. I didn't say they would release the source code. Only that they would write directly to the CPU/GPU, without using API's like OpenGL, just like they currently do for everything that is not graphics rendering.
Then what will computer graphics programming students use to write a demo of rotating Platonic polyhedra textured with "Hello World"?
The same things they used before OpenGL/DirectX became prevalent. The same things they used during the DOS era.
Mada mada dane.
I didn't say they would release the source code. Only that they would write directly to the CPU/GPU
Then how can publishers assure users that a title still on store shelves is compatible even with a PC manufactured after the game went gold?
The same things they used before OpenGL/DirectX became prevalent. The same things they used during the DOS era.
Which took an order of magnitude longer to get going from scratch than a typical GLUT or AllegroGL app. Because developer time is still valuable, software rendering won't make the OpenGL API go away, even if only because of OpenGL in software.
If it weren't, linux gaming wouldn't be in the situation that it is.
DirectX is better established, better run, and better performing.(Some of this is because Microsoft didn't upgrade versions of OpenGL for a long time, but a lot of it is the fact that the OpenGL folks, like most standards bodies, spend so much time deciding on anything whatsoever that they get left in the dust).
If what this guy is suggesting becomes the case, rather than forcing every little guy out of the market, it might break the back of DirectX(which given that it's established, well known, and at the moment actually superior) which might mean more portable games, which would of course be good for Linux, Apple and everyone else.
I think one thing is clear... the man owns a lot of Intel stock.
Mod me down, my New Earth Global Warmingist friends!
If they're not curling their toes and mimicking a seizure, you're doing it wrong, or she's got some issues.
http://www.goaskalice.columbia.edu/2524.html
I think you mean John Carmack's retarded half brother, from his mother's second marriage.
Mod me down, my New Earth Global Warmingist friends!
Developers will use [future coprocessor cards] just like they use CPU's at the moment.
Which means they'll have to both be x86, or both be ARM, or both be some other architecture that NV and ATI can agree on. goodluckwiththat.
I think you missed the words "graphics programming students" in the parent post.
They use OpenGL, whether or not it is better or worse than DirectX.
I want to hear what John Carmack thinks about this.
Does he agree/disagree and why?
I always like seeing two giants in the industry debate on high level topics. It gives some insight into trends... and I just plain dig gaming anyway...
Most people aren't thought about after they're gone. "I wonder where Rob got the plutonium" is better than most get.
Winmodems are not really a good example of this. The CPU does not have special instructions or hardware added to it to make it act like a modem, it's just that it got fast enough that this was possible.
I think the best example is the FPU. That used to be a seperate chip and it was then incorporated into the CPU.
Hardware that disappeared because the CPU got faster is a different story and not really relevant.
What Tim Sweeney predicted back in the 90-s was that by 2006-7 CPU's would overpower GPU-s. It's the end of 2008, and we're at least 5 years away from CPU-s catching up with the future GPU hardware, and at least 10 years away from standards and engines emerging on mainstream hardware, which will challenge DirectX+OpenGL.
Now he's at it again, and I could understand him, as we often get caught predicting what we want to happen, for what we think will happen. General purpose vector computing power is far better and more interesting for a game engine developer, but he doesn't take any of the remaining economics into account.
For a new piece of technology to be picked up by most people, it has to provide substantial improvement over the current status-quo in some area that matters, while providing good DirectX/OpenGL drivers that people can run (at that point) over two decades of CAD/games/rendering software that uses those technologies.
Not to mention that those CPU-s with general purpose instruction sets, should somehow match the efficiency, cost and performance of GPU-s with fixed pipelines and limited instruction sets. Not a trivial task by any means.
Don't forget where the current growth is: smart phones, ultra mobile laptops, and laptops. Those devices tend to use far more dedicated hardware than desktops, because it's far more efficient (for ex. video/audio playback on smart phones is hardware accelerated).
Every other graphics blog talks about Larrabee like it's going to take your baby away. It won't. It will suck, just like every other Intel graphics chip. The problem isn't that Intel can't make fast chips, it's that they don't have the graphics experience to come close to ATI and NVidia.
Intel is good at cheap, "good enough" graphics for office machines - the freebie that does the bare minimum, which satisfies 95% of all users out there. That's where they should stay. It's a good market for them, an excellent candidate for chipset/CPU integration, and an area the other players don't put too much focus on. Yeah, you can get NVidia/ATI graphics onboard, and they're decent, but it's not their bread and butter.
If anything, I fully expect the GPU to become more important over time, but it would be nice to have 100% complete software fallback, allowing any game or app to run on any hardware. You might get a slideshow with onboard video, but it should still be allowed to run. None of this DirectX hardware versioning - it defeats the point of having a middleware API in the first place! It would also let developers code whatever effects they want, allowing hardware to accelerate them if present, while still being every bit as stunning on software emulation - just slower!
It would mean an end to "DirectX 10 effects", which I think is a damned good thing! If anything, DX10 has shown us its tricks are nothing special, all of them feasible with DX9 primitives, just a little more of them. That sort of artificial feature bloat would be a thing of the past with the adoption of a general-purpose graphics programming language.
-Billco, Fnarg.com
My understanding is that the majority of games are already building off of an existing engine, rather than the raw api frameworks. I would guess that computer graphics programming students would actually program in the native language, learning how to implement efficient graphics algorithms. Really creating a simple ( albeit insufficient) software 3d graphics engine isn't that difficult.
Well.. maybe. Or Maybe not. But Definitely not sort of.
My machine language course in University was MIPS/RISC, and while a few more systems are using that now, it was pretty irrelevant then.
So long as the general approach to rendering doesn't change it won't matter all that much, and there will always be a cheap, but largely inadequate and irrelevant system for students to work with.
How long has audio been around? Have you ever seen an audio chip integrated into the CPU? Most of them are done by onboard chips, not on the CPU.
RTFA, idiot. You didn't read it, you accused someone of being payed off, and you made assumptions based on the context provided by a bunch of tween posts on an Internet forum. You are either playing Slashdot bingo or you're a tool.
OpenGL, and DirectX force you into rendering a specific way.
If the hardware was fully programmable, you wouldn't need to be forced into doing things the OpenGL/DirectX way, and we might see a resurgence of past software rendering techniques. OR, you could still do things the OpenGL/DirectX way... He says this in the God-damned article, you choad.
This guy has no clue at all or has been paid off.
Right, so you are probably too young, or too stupid to know what past software rendering systems were. Why do I fucking bother with you? Because it's fun and you make me laugh.
You use OpenGL so ... that you have a portable interface to the graphics system
For Christ's sake, Tim Sweeney makes it perfectly fucking clear that he feels when CPUs are powerful enough or GPUs programmable enough, we'll be able to do all our rendering in C++... again. You know, that PORTABLE language that's older than you are? Holly shit balls, Batman, how does Doom run on dos/windows/mac/linux/game boy/cell phone/my toaster without being written to one of these 'portable interfaces to a graphics system'?!???!111
OH, because all rendering was written in C for a single processor? Yes, and even some fugly non-portable assembler, dick boy. Damn, code 'libraries' aren't going away, just the narrowly focused window through which we access a certain category of hardware.
The whooooooooole point this guy was trying to get across was you won't need a portable little window onto the graphics system when the hardware is fully programmable, and general purpose. At that point a portable language will do, and yes, we already have those, been there, and done that.
*WOOSH*
nt.
Tim sweeney said 10 years or so ago the GPU would be integrated into the CPU, it hasn't happened.
Isn't Intel working on integrating the GPU and CPU? Hence, the monthly statements by Nvidia that they are not afraid of Intel. With the development of multi core CPU it is now possible to economically integrate the GPU into the CPU. I expect in about 2 years we will see the first multi core CPU with an integrated GPU from Intel. This would make Sweeney prediction about 10 years early. I guess he is a futurist.
In other news...
A man whose company makes its money writing game engines says, "APIs are going to go away. It's going to be very, very hard to build a game engine in the future when you can't rely on the APIs anymore. So everyone'll have to switch to the few companies that build game engines instead. Like mine. I recommend you start now and save yourself the headache."
Hmm, I detect no bias whatsoever.
Well, almost as little as when nVidia tells the world that they have seen the future and it's in GPGPUs replacing CPUs. Amazing how everyone has seen the future, it supports their business model and the rest of us can save ourselves a lot of pain if we jump on what pays them well.
Call me stupid, but from what I saw from Larrabee it centers around a new specialized very wide vector unit to do most of the work. So far for a any plain old C compiler
It's not uncommon for lower-end graphics cards to use ordinary DDR2 (the GeForce 9500 GT has a DDR2 version), and you can get some surprisingly powerful GPUs integrated into a motherboard chipset, which don't have the 100W+ coolers a cpu or dedicated cards can (there's an integrated GeForce 8300 in an AM2+ motherboard).
I wouldn't be at all surprised to see the lower end GPUs being embedded in the CPU instead of the chipset.
It's also interesting to note that the guy being interviewed is in the business of making 3D engines.
Now ask the question: would 3D engine makers perhaps have something to gain if OpenGL and DirectX would be scrapped, as the interview suggests?
Most game dev labs wouldn't have the resources to build their own engines from the scratch using a C++ compiler, making them to - wait for it - licence a 3D engine like the one this guy is selling.
So in summary, the article paints a picture from the future which would be very beneficial to interviewee, so I'd take it with a grain of salt. Either we'd get some de facto 3D engines replacing OpenGL and DirectX, or the game developers will waste time recreating each new graphics technology advancement into their own engines.
http://codeandlife.com
"I wouldn't be at all surprised to see the lower end GPUs being embedded in the CPU instead of the chipset."
You're still ignoring the memory bandwidth issue, the bandwidth to main memory is still at least 10x worse then on card DDR2 with wide memory interface. Integrated on CPU means that the memory that will be used for the gpu will be main memory which is infinitely slower then on card memory, this is lost on the integrationists.
Infinitely slower? Even with the memory controller in the CPU as well (like all modern cpus), and using DDR2 (or even DDR3) ram?
What about my comparison with graphics chips integrated into motherboard chipsets? Especially the example I gave, which has to go to the CPU for memory access anyway, as for that CPU socket the CPU has the memory controller, not the motherboard chipset? That one seems to work well enough to me, and could only work BETTER by being integrated into the cpu, with access to a better power rail and being closer to the memory controller and ram.
There are other problems like the latency issues. If you have the GPU on the CPU, you still have latency to and from ram, along with other programs, not just the GPU. You have bus competition between two sets of devices in which the memory is shared between programs and the gpu itself which effectively cuts the bandwidth by a decent percentage when the program is running.
I think the point of the article is that computing paradigms are merging. You won't have a CPU and a GPU. You'll have one thing that looks like both. In other words, you'll have a multicore, parallel, vector machine. And that, absolutely, positively, will happen. Larrabee, or something like it, is the future. If you hold AMD stock, sell now, because Fusion doesn't sound anything like Larrabee and is going to seem positively draconian by the time it comes out.
In the '80s and '90s, if you wanted decent sound, you had to fork out for a dedicated soundcard. Something like the Creative AWE32 springs to mind. These days, all the sample replay, effects processing and mixing is done by the CPU and a buffer's worth of data is placed in memory waiting for a DMA transfer to a pair of DAC's.
From what I could gather from TFA, Sweeney is predicting that the processes which are currently handled by a dedicated 'Graphics Processor' will instead be executed by the main general-purpose CPU(s) and fed to a frame buffer for final display on the monitor.
Squirrel!
Couldn't the hardware remain relatively the same (i.e. dedicated fast VRAM and bus) but the programs sent to it be simple C++ programs that are parallelized with the help of the compiler?
I don't think Sweeney is that away from reality. He did not say that all the graphics will be run from the main PC bus. He said that the fixed function processors will be a thing of the past, and since they will be general purpose, there would not be a need for an API between the applications and the hardware.
And that word processor will STILL run better than Microsoft Word!
I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
Ah, but with a multicore chip, you can HAVE a bunch of copied dedicated chips. :) Particularly as we scale up to 16 core or 32 core chips.... Suddenly you could have the equivalent of 30 Geforce GPUs and still retain a dual core CPU for the rest of the game code.
I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
I think a more likely scenario is an open source ray tracing or other rendering technique engine running most games and 3d applications. Of course there will be some competitors and clones, but they will eventually fade away as the GPL code improves inevitably over time being worked on by so many game companies and other 3d programmers constantly. You might even see a scenario where a single graphics engine runs 90% of 3d apps, games or otherwise! I'm extrapolating 10 years, I don't expect any of that to happen over night.
I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
A decade away from now we will likely have massively multi core quantum chips, running at 256 bits or more. To even pretend that that kind of CPU wouldn't easily run ray tracing with 20 of it's cores tied behind it's back is pretty silly. I would shorten the time scale to 5-7 years. But I'm not profit, either, it could happen even sooner! The trend to more and larger multicore chips is pretty inevitable. When everyone's cell phone is a beowulf cluster of 128 bit x86 architecture cpus, a lot of this whole discussion is going to be completely invalid.
I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
OK, so he was optimistic about 3-4 years. So?
I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
Even if GPU's go away, there's no indication that libraries like OpenGL will go away. As a 3D graphics programmer who uses OpenGL and shaders, I know that no one will want to reinvent the wheel and rewrite all that low-level rasterizing, perspective correct texture mapping, and TnL code. Even when using shaders for as much as possible, you don't have to do all that by hand.
The main interest from the scientific computing community is that the graphics card can both run a numerical simulation and render the results both at the same time without having to bung all the data across between different processors or computers. In the past programmers would have to run their simulation on a supercomputer (maybe be allocated 64 nodes for a couple of hours) and then pipe the data into a SGI workstation to render. Now, they can have a desktop PC in their office with 2 Gigabytes of GPU memory, 1000+ stream processors and a nice high resolution plasma monitor to visualize everything.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
Will it be replaced by the NKVD (iN Kernel ViDeo) ?
Sweeney is right IMO. It is also one of the more important interviews and I recommend it to all that are currently doing computer graphics. This is essentially a RISC vs CISC debate again, and it shares all the common arguments with it. Given most of the industry today is a RISC design abstracted to a CISC interface, I agree with Sweeney and think that the true maturing will happen when the CPU and GPU will merge. Intels battleplan is many core approach. Specialized hardware is always faster clock for clock, but programmers appreciate generics everywhere, and since we do not pay for our GPUs per computation result they produce, an idle GPU is a waste. And it is idle half the time, being specialized as it is. Except of all the folks who play WOW 24-7.
I think the problem with this argument is that it still makes sense to break up the functionality into separate hardware. Then those that want to go hog wild with some aspect of the hardware can (like graphics). Putting all of the functionality into the CPU seems like it would lead to stagnation of technology, because only a couple of players would be able to make any real advances.
I don't understand why Sweeney thinks that the "death of the GPU" would entailthe death of all graphic APIs. By definition, an API is a programming interface that helps the programmer do certain jobs without having to code low-level stuff over and over again, right? So if graphics rendering starts being done by the CPUs instead of a dedicated GPU, how does this change the situation?
Yes, I understand that the APIs will have to be rewritten to accommodate the underlying hardware, and that some restrictions that were imposed by GPUs may go away if we use a general-purpose CPU instead...but why in the world does that mean the game programmers of the future will be confronted by nothing but a blank screen and a program editor? Don't we have APIs now for writing programs that run on CPUs? I'm pretty sure that in addition to the program editor, they'll still have graphics APIs—just newer and better ones.
In fairness, I have to say that this is a pretty short and shallow interview. Maybe Sweeney meant to say something like, "people who write game engines will have to start over from scratch, and rethink their basic tools". Maybe.
Great men are almost always bad men--Lord Acton's Corollary
One comment dropped almost at random in the middle: "if it consumes far less power when you're running old DirectX applications".
Or if it consumes less power, period. And power is money. These guys are looking at the $600+ PC market. When they made the prediction about the death of the GPU in 2006 they were making games that took $2000 PCs to run well... and I'm sure a $2000 PC in 2006 would have been happy without a GPU. Now they're making games that take $600 PCs to run well, and those are high end. You can get a laptop for what, $400 now? You're not going to get a CPU or a GPGPU getting that kind of performance in a $200 PC or a $400 laptop for a few years, and by that time what's the low end going to be?
Again you're missing the point, "the jack of all trades, master of none" problem, not to mention the space requirements. GPU's complexity is nothing like the old style co-processor units that were integrated into the core. They require ridiculous amounts of cutting edge ram to get that kind of performance, and they need a lot of ram to output the results of those calculations.
I don't see CPU's integrating 512MB to 2GB of ram in the near term future given heat and die size considerations, and we haven't even touched the extremely low bandwidth between modern cpu's and main memory in PC's (which is much much less then a modern GPU).
The GPU will play it's part for as long as is necessary. I don't rule out that perhaps one day it will be technically feasable but it is nowhere near that day, it's at least a decade or more away.
Don't forget, integrating different functions onto one chip is much easier said than done. Putting RAM on a CPU die isn't that easy, and doesn't work that well, because the process technologies used between them are different. A lot of people think you can just put all kinds of different circuits on a single die (logic, memory, analog, etc.), and that just isn't the case. It can be done, but there's huge tradeoffs involved.
So what if the kinds of things that OpenGL and DirectX have implemented can now be done "efficiently enough" in high level code instead of dedicated hardware (albeit by making the whole system more expensive and power hungry... and that matters), that doesn't mean there isn't room for dedicated hardware, it just means the dedicated hardware needs to be doing something more sophisticated.
The raytracing acceleration in Slusallek's RPU was able to get 2008 CPU performance out of a low density FPGA implementation in 2005... with about the same hardware budget as a late '90s Rage II GPU, using an API called OpenRT - Open Ray Tracing.
Don't forget, integrating different functions onto one chip is much easier said than done. Putting RAM on a CPU die isn't that easy, and doesn't work that well, because the process technologies used between them are different. A lot of people think you can just put all kinds of different circuits on a single die (logic, memory, analog, etc.), and that just isn't the case. It can be done, but there's huge tradeoffs involved.
Thanks for the heads up. Everybody thinks it's as easy as shrinking the die, and circuits = same everywhere.
The thing they are not understanding is the architecture and actual structural geometry. Things are made of stuff, which has to be shaped properly, then the data has to circulate and be stored somewhere within a given period of time, and routed around, etc, etc.
The graphics controller on the xbox is separate from the cpus. The whole point of the article is merging the cpu and gpu onto one chip, requiring memory access to go over the same lines.
It is not the architecture referenced in the article, where GPU commands are integrated with the CPU commands. Please examine the specs from Microsoft:
There is a dedicated GPU, with a memory controller on-die. The CPU cores are on a separate die, and contain a separate instruction set. The CPU's memory access is tightly linked with the GPU so that the CPU can send geometry data to the GPU with no delays.
If anything, this represents a third architecture, more different from that discussed in the article than it is from a PC shared-memory architecture (except in the PC, the north bridge mediates the memory access, instead of the GPU.)
My point is entirely that if you merge the CPU and GPU command set into the same core, you will slow the system down. The XBOX360 gets speed from linking the CPU's geometry data send to the GPU's memory access, in essence allowing it to get a free pre-fetch. That's not what the article is about.
The problem is not the hardware. It is the interface. You think people will design a new graphics library with a new interface easily? Think again. OpenGL is an interface first and an implementation second. Same for DirectX. Ever heard that there are software implementations of OpenGL? I wonder what they are for? Maybe so you do not have to start from scratch and do not have to start from scratch and so that you do not have to work with some hiome-coocked interface?
I re-iterate: This guy has no clue.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.