Download the Tom's Hardware App from the App Store
The reference for current tech news
Yes No
Ads

Tim Sweeney: GPGPU Too Costly to Develop

by - source: Tom's Hardware US

Epic Games' chief executive officer Tim Sweeney recently spoke during the keynote presentation of the High Performance Graphics 2009 conference, saying that it is "dramatically" more expensive for developers to create software that relies on GPGPU (general purpose computing on graphics processing units) than those programs created for CPUs.

He thus provides an example, saying that it costs "X" amount of money to develop an efficient single-threaded algorithm for CPUs. To develop a multithreaded version, it will cost double the amount; three times the amount to develop for the Cell/PlayStation 3, and a whopping ten times the amount for a current GPGPU version. He said that developing anything over 2X is simply "uneconomic" for most software companies. To harness today's technology, companies must lengthen development time and dump more money into the project, two factors that no company can currently afford.

But according to X-bit Labs, Sweeney spent most of his speech preaching about the death of GPUs (graphics processing units) in general, or at least in a sense as we know them today. This isn't the first time he predicted the technology's demise: he offered his predictions of doom last year in this interview. Basically, the days of DirectX and OpenGL are coming to a close.

“In the next generation we’ll write 100-percent of our rendering code in a real programming language--not DirectX, not OpenGL, but a language like C++ or CUDA," he said last year. "A real programming language unconstrained by weird API restrictions. Whether that runs on Nvidia hardware, Intel hardware or ATI hardware is really an independent question. You could potentially run it on any hardware that's capable of running general-purpose code efficiently."

Share:
35
Comments
Read more
X
Submit

Comments
Add your comment
ravewulf 08/14/2009 9:40 PM
Hide
-3+

I'm not going to comment on the economics as I don't know enough about it (although I would guess they are inflated a bit), but the benefits of multithreading must be weighted and determine if it is a good fit for the application. Video compression needs it, a simple text editor less so.

As for the "death" of GPUs, I doubt that will happen anytime soon. Far off in the future, probably.

Anonymous 08/14/2009 9:49 PM
Hide
-20+

C++ or CUDA? Is Nvidia sponsoring this guy? If CUDA was so freaking wonderful in it's present state, there'd be more applications that use it. The fact of the matter is that 99.999% of applications run fast enough on a modern CPU without any good reason to run it on GPGPU.

What's more absurd is him making that ridiculous rant without giving a nod to OpenCL, which aims to do everything he talks about...

eyemaster 08/14/2009 10:08 PM
Hide
-0+

Well, he has a valid point, where programming in a simple way for a CPU is much simpler than writing for an API like Direct X and Open GL. They do provide a good way of hiding the hardware video cards and providing a common interface. So, a major con and major pro for video cards and their API's.

Until processors are fast enough to replace all that the video cards of today can do now, at the same speed, I don't see video cards going anywhere anytime soon. At the same time, when CPU's are fast enough, GPU's will also have advanced enough that they will still make a difference big enough. They progress together. Where games are concerned, I can see that the CPU would go away or be less significant than the video card.

DXRick 08/14/2009 10:21 PM
Hide
-4+

Reminds me of the CEO of my last company. He tells us that he has no clue what we do every day and then goes on to tell us that it must be faster and cheaper.

Sweeney obviously has no clue what DirectX and OpenGL are, but is convinced there are better ways to do graphics processing. I know how the programmers at Epic feel.

deltatux 08/14/2009 10:23 PM
Hide
-10+

I would rather listen to John Carmack talk the state of gaming technology than to listen to Tim Sweeney's baseless talks.

Blessedman 08/14/2009 10:27 PM
Hide
-1+

I think Tim is just wrong, I mean maybe(!) when CPU's have 32 cores (2016?) you could afford to gobble up 20 or so for rasterazation and vertex setup. Doesn't that though kind of push into the area of programming for a GPGPU? I thought that's what Directx and OpenGL was for so they didn't need to keep reinventing the wheel... This is the perfect time for a small team of highly motivated young programmers to spend a few summers in their basement and bang out the next generation engine for GPGPU's.

ptroen 08/14/2009 10:36 PM
Hide
-2+

Well for starters you have a slow PCI bus that is just well slow. The significance of this is a developer needs to write instructions(ie code) that takes this into account and then call the API to do stuff(shader code etc...). To complicate matters further you have PPU code(physics code which is really just glorified collision detection) which may sit on the graphics card but not necessarily. Also their is the sound card which will call positional acoustic events in 3d space. All of the code of the game itself in a effect has to be load balanced with the PCI bus working overtime.

Going back to the GPU compiler topic what would be nice is to just use C++ templates or the CLR of .net and just stick some templates and very quick load balance CPU/GPU code churned out however regardless of the language at hand the developer will still have to construct a good object design which will take some time. The worst case is a bit of code duplication because of different languages which is what we have right now but honestly it's not really that bad unless you don't understand the architecture then creep sets in. For example within DirectX you have constant buffers and vertex types where you can set the structures which will communicate the type of information back and forth between CPU mobo and GPU land since the primitive types are standardized(IEEE32 bit floats) it's pretty trivial for a programmer to know what's going where however I must agree it's quite annoying to try to integrate physics api with gpu.

hellwig 08/14/2009 10:50 PM
Hide
-12+

This all goes to a lack of understanding of the underlying architecture. I worked at a company that was enforcing what they called 3-View design. The only problem with this design system was that determining what the system should do, and determining what the system should be made of (i.e. hardware) were independant processes. This meant you developed a system without knowing the limitations of the hardware its running on. I pointed this out to the instructor who was teaching the class they offered at work, and he couldn't even respond.

A good example of this is Crysis. How much money did the producers put into that game to give it cutting-edge graphics and effects, only to find out consumers needed a multi-thousand dollar computer to benefit from that hard work, thus most people would never see it?

Anonymous 08/14/2009 10:58 PM
Hide
-6+

CEOs tend to be business people with degrees in Business Administration that rarely know the details of what they manage. This guy clearly doesn't understand code, he's taking "recommendations" and "data, in an executive format" that have been regurgitated up the chain of command a few times, combined with some arrogance and self-importance.

We used to be a nation where inventors founded a company to create and sell their invention, now we have a bunch of spoiled, rich-kid schmucks running "established, brand name" companies. It's nearly impossible to start a new company now, and any person with brilliant ideas has to find a job at an established company, and then have their ideas "managed" by a bunch of ignorant MBAs. Then we wonder what happened to America...

frozenlead 08/14/2009 11:14 PM
Hide
-5+

Frozenlead: Developers too lazy to learn to multithread/GPGPU optimize code.

Since when in the tech field do people complain about moving forward? If you can't keep up with the train, you lose.

Kami3k 08/14/2009 11:37 PM
Hide
-1+

Oh it's the guy from Epic Games, no wonder GoW was so buggy, they have a idiot in charge.

falchard 08/14/2009 11:37 PM
Hide
-2+

For a company that develops the most used engine in videogames. Thats a poor idealogy. 2 cores is too much money. If a competitor develops a GPGPU version, they will definetly face a backlash in engine sales.

Wayoffbase 08/15/2009 1:47 AM
Hide
-0+

deltatux :
I would rather listen to John Carmack talk the state of gaming technology than to listen to Tim Sweeney's baseless talks.


That's a tough call. I'll choose option 3 if I can: ignore both.

Uncle Meat 08/15/2009 2:26 AM
Hide
-0+

http://en.wikipedia.org/wiki/Tim_S [...] developer)

Not exactly someone who I would consider a clueless CEO.

omnimodis78 08/15/2009 2:43 AM
Hide
-1+

_barraCUDA :
C++ or CUDA? Is Nvidia sponsoring this guy? If CUDA was so freaking wonderful in it's present state, there'd be more applications that use it. The fact of the matter is that 99.999% of applications run fast enough on a modern CPU without any good reason to run it on GPGPU. What's more absurd is him making that ridiculous rant without giving a nod to OpenCL, which aims to do everything he talks about...


Well I can tell you first hand that when I enable CUDA in Coreavc for my HD movies, CPU utilzation drops from about 10-20% to mostly 1%. Yes, same speed - but why not utilize the power of the GPU for tasks that it can very easily perform?

LORD_ORION 08/15/2009 4:11 AM
Hide
-0+

Carmack has a unique position, he surrounds himself with the most elite programmers, and is one of the most eilite programmers himself. I get the impression that Sweeney has more business acumen, and thus aproaches the situation from that perspective.

In the end, I agree with Sweeney... having a unified programming architecture is more cost effective... and I see larrabee's architecture ultimately dominating mainstream PC gaming.

Anonymous 08/15/2009 5:06 AM
Hide
-3+

Having done some GPGPU work myself, I can agree that it's a significant amount of work to port general purpose code to the GPU. The amount of effort depends on exactly what you're trying to do, and sometimes the whole exercise can end up producing a much smaller speedup than expected.

The biggest hurdle is the fact that GPGPU is still not standardized (DirectX 11/compute & OpenCL are just starting out), so there are several standards to work with. The algorithm still needs to be written for the CPU, as there are still users out there without proper GPGPU hardware support. All of that adds up to a lot of risk, which the financial guys don't like much - so the 10x figure doesn't seem too crazy.

Of course, when a GPGPU'd algorithm works well, it's pretty incredible.

bk420 08/15/2009 6:06 AM
Hide
-0+

GPGPU is the future. OpenCL will be the greatest programming standard that ever happened to linux and windows.

ash9 08/15/2009 6:21 AM
Hide
-2+

Sweeney's still pissed at ATI for pre releasing Quake 3

asH

ash9 08/15/2009 6:36 AM
Hide
-0+

Sweeney can only be talking about Larabee, which is conceptually a bunch of cpu's strapped together..if i7's are $500 and up that one will cost $3000 in lots of 1000- reduced wafer size or not, its hyperthreading and all that overhead thats costly- and I dont see signs of Intel spending on R&D lately.
asH

MamiyaOtaru 08/15/2009 8:59 AM
Hide
-0+

right, cause larrabee will be made of a bunch of their most expensive processors. I'm pretty sure it is actually a bunch of shrunk P1s or P2s isn't it?

hannibal 08/15/2009 12:07 PM
Hide
-0+

This is one way of telling why there are so few games that support "new" technologies like multi core support etc. They are too costly to make... Hmmm... This is great new for companies like AMD and Intel who will put their GPGPU products in line sooner or later. Nice new technology that nobody wants to support for many years. Just like AMDs' 64 bit support that is now starting to see some light after what 10 years? waiting...

Anonymous 08/15/2009 3:45 PM
Hide
-0+

mamiya0taru: Larrabee will be a bunch of Atom CPUs on a single die. It's funny how they come up with their Tflop/Gflop numbers for Larrabee, if you factor in the slight increase in clockspeed, multiply the Gflops of Atom by the number of cores, then they're claiming that somehow what are essentially Atom cores wind up being as fast as indvidual Nehalem cores, and at a lower clockspeed. Synergy, brilliant design, or outright lies?

Anonymous 08/15/2009 4:49 PM
Hide
-0+

Today's CPUS are pretty fast. They may be specifically geared towards more general purpose tasks but that is a response to the market. If and when they see that dedicated graphics processor are overkill for most users in both power consuptions and processing power I think we will start to see more SSE3/SIMD/3DNOW/OPENCL whatever type decoder units in CPUs. Considering that NVidia is the only real stand alone GPU maker you can see that the technologies to integrate the CPU and GPU into a single unit and the shift to in-CPU graphics processing have already begun.

I would go so far as to say that modern CPUs could dump a lot of the logic they currently carry and absorb some GPU tech that does the same but better and then release the new instructions as an extention like sse or 3dnow to give direct access to it from opencl libraries.

In theory, if you could get equal CPU power as is in modern GPUs you could eliminate a lot of the bottleneck/latency that is the PCIe bus. Something like hypertransport between general instruction execution units and gpu-type execution units.

Companies are already looking at this and the GPU's day will come, but it will be a borg like assimilation, not extinction.

amnotanoobie 08/15/2009 9:53 PM
Hide
-0+

syadnom :
I would go so far as to say that modern CPUs could dump a lot of the logic they currently carry and absorb some GPU tech that does the same but better and then release the new instructions as an extention like sse or 3dnow to give direct access to it from opencl libraries.In theory, if you could get equal CPU power as is in modern GPUs you could eliminate a lot of the bottleneck/latency that is the PCIe bus.


The hard part about what you are suggesting is that we take 2 completely different architectures, mash em up and hope for the best. This is like saying take a CISC processor and combine it with the properties of RISC processor.

dreamphantom_1977 :
If it cost's so much then why are so many companies developing code for it???1. GpGPU is 2-100 times faster then the cpu, so I suppose it depends on what you are using it for and how long u plan to run it.



Other companies are using it for applications that never originally used the GPU, examples include video transcoders, CFD simulators, and other math applications. Since the GPU is a number crunching monster (ADD, MADD, etc) it is a good fit for these applications.

syadnom :

Folding@home for example has been around for years, and hundreds of thousands of computers run that code..



Folding@Home is not a general-purpose application, it is a highly mathematical application and would benefit from any number crunching hardware. FAH is a perfect app for the GPU since it knows all the data beforehand (since the data sets would probably be small), and you just feed the data and your formula and just wait for the result. The GPU performance drops if you need to take a look at some derived data which is in the VRAM, RAM or HDD of your PC.

syadnom :

2. For games, if the code is developed mainly on the cpu, like GTAIV, then obviously it's gonna bottleneck the game and people are gonna be pissed off and avoid the game because they don't have the cpu to run it. But if they coded it better to take advantage of the gpu more in my opinion the game would have sold much better and the developing costs would have payed off in the long run.


I'm not really sure about the application of GPGPU with games, because if the GPU today is already busy drawing everything does it really have enough free time to do other tasks? Let's face it, if the GPU is an underused resource during gaming, then why is a 9400GT not good enough to play recent titles at high settings.

syadnom :

The gpu is here, it's in it's prime, and is not going anywhere. If anything the cpu and gpu are gonna combine into one big mega chip, probably with ray tracer, dsp, all built in, and actually i can forsee a futer will it will take on all the fuctions of the motherboard and the psu and will become modular and "completely" wireless including being powered by wireless means. This will be a superchip that will do anything and everything. I'm going to name it,( remember you heard it here first lol), I'll call it the "UMPU"- for Universal Mega processing Unit



I think Intel is going to try to do that before the guys in green and maybe before AMD. Remember the 80-core thing Intel did before (and what it was actually meant to show)?

i8cookiemonster 08/16/2009 9:40 AM
Hide
-0+

Wow the level of ignorance I'm seeing here is really astonishing. I'm glad to see someone posted a Wikipedia link to Tim Sweeney...I hope a few people actually read it.
My belief is that he is correct in saying that soon we'll see an end in the seperation of GPUs and CPUs. Its already been happening, and this is the course that was set in motion ever since DirectX 8 and OpenGL 2.0 introduced programmable pixel and vertex shaders. Over the last several generations the GPU has been becoming more and more robust and coming closer and closer to being able to run 'general purpose' code. Larabee is the essentially the culmination of the GPU and CPU (being highly parallel like today's GPUs yet compatible with everyday x86 instructions) and it IS the natural progression of things. The benefits of this are numerous. It frees the programmer from the restrictions of the hardware...instead of having to know which functions a piece of hardware can execute, he needs to know how FAST it can execute them. It's truly a game changer. An example of what this means...take a look at Crysis. It's a great looking game. But, it's and engine created for and restricted by the capabilities of the hardware (DirectX 10 specifically). Now imagine a hypothetical future game engine. It's written totally with a custom software renderer. The implications of this is that the renderer is limited to the imagination of the programmer more than the capabilities of the hardware. DirectX 11 may be the last version before this happens (as it introduces a vast amount of general purpose capabilities and lifts many restrictions...bringing it closer to compliance with the more common CPU). AMD and Intel are both in a great position for this, and NVidia would like you to think it's not happening, but it is:
http://www.theinquirer.net/inquire [...] s-x86-chip

techguy911 08/16/2009 4:54 PM
Hide
-0+

I use gpu based video conversion software its 500x faster than cpu with my current rig setup, then next dx version should have built in support for gpu based offloading that would eliminate the need for programming in cuda.

Windows 7 makes use of gpu for things like encoding sound and video and imaging thus gpu usage will be in windows 7 they should be getting ready for that.

eodeo 08/16/2009 5:03 PM
Hide
-0+

CPUs trying to replace GPUs and GPUs trying to replace CPUs. Interesting.

So far GPUs have more than 10x faster chips under their hoods. It will be interesting to see how CPUs overcome this deficit.

When you look at i7 with 4 physical and 8 logical core and ati 4850 with 800 physical cores, its easy to see why it would be a pain to paralelize all the code to that many cores, but lets not forget that the physical barrier for single core speed has been reached. Thats why you dont see 4ghz commercial CPUs or higher. You only see more cores, p4 and above.

Parallelization is the way to go be it GPU or CPU

matt87_50 08/17/2009 2:19 AM
Hide
-0+

Yes! couldn't agree with him more! this is why I'm alot more excited about the intel x86 larrabee than any gpgpu!

I think what he's saying about 10 TIMES THE COST!! is a little exaggerated, just a scare tactic to tempt people to the safety of the unreal engine.
but graphics coding these days is really just the task of arguing with the various graphics APIs, calling functions in different orders, with different arguments until it does what you want. and the added frustration of having to learn new languages for each type of gpu and gpgpu implementation is even more painful. I just want larrabee and 48 cores at my command with c++, where I can say "ok, you are going to do this, and you are going to do it exactly this way!"

the biggest example of how the current architecture is too complex is with the ps3, you have to code manual bits of the rendering pipeline in c++ to run on the spus, and then switch between the graphics api and manual code multiple times just to render one frame! copying data to and from the gpu... just way too complicated.

xrodney 08/17/2009 9:10 AM
Hide
-0+

Quote :He thus provides an example, saying that it costs "X" amount of money to develop an efficient single-threaded algorithm for CPUs. To develop a multithreaded version, it will cost double the amount; three times the amount to develop for the Cell/PlayStation 3, and a whopping ten times the amount for a current GPGPU version.

This is b*****t.
Difference between single and multithread application is definetly not twice a cost. This would be maybe true for simple applications, but for more expensive and complex software, difference in cost between single and multithread application have diminishing return, thats mean more costy application, less it cost to make it multithread.
Not sure about GPGPU programing, but i seriously doubt that if single thread app cost 10 mil tak GPGPU modified version would cost 10x of that.

Me personaly would not pay anymore for any app not able use advantage of multiple CPUs as its not that hard implement, and i dont wana suport lazy programers (ofcourse only those that can gain something from more CPU)

Anonymous 08/17/2009 3:24 PM
Hide
-0+

xrodney: I'd have to disagree, as a .NET developer, everytime I have to add a new thread to an application, my fee doubles... True story :D

Although I'd say that the OS is the biggest hinderance, most developers have a difficult time effectively gaining real-time performance when having to synchronize threads... Microsoft ought to open-source their thread scheduler, so that developers can understand how it works. Their scheduler sucks compared to Linux's anyways, so it's not like they'd be losing valuable trade secrets.


Ads

Best offers

Newsletters


OK
Ads