AMD Betting Future On the GPGPU
arcticstoat writes with an interview in bit-tech "AMD's manager of Fusion software marketing Terry Makedon revealed that 'AMD as a company made a very, very big bet when it purchased ATI: that things like OpenCL will succeed. I mean, we're betting everything on it.' He also added: 'I'll give you the fact that we don't have any major applications at this point that are going to revolutionize the industry and make people think "oh, I must have this," granted, but we're working very hard on it. Like I said, it's a big bet for us, and it's a bet that we're certain about.'"
for OpenCL, this sounds very dangerous. Dangerous as in "Remember this really cool company named SGI that made uber powerful and specialized computing platforms?"
Personally, I actually use things like OpenCL to do real time image processing (video motion analysis), but I don't know too many others in the industry that do, so I can't imagine their market is particularly large.
There must be some huge potential markets that just don't seem to come to mind for me...
Loading...
I bet you drive a big car too, huh?
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
AMD famously overpaid by 250% for ATI, then delayed any fusion products for 2 years, then wrote off all of the overpayment (which they had been required to carry as a "goodwill" asset). At that point, they lost the money.
Luckily for them, ATI was still good at its job, and kept up with nVidia in video HW, so AMD owned what ATI was, and no more. But their gamble on the synergy was a total bust. It cracked their financial structure and forced them to sell off their manufacturing plants, which drastically reduced their possible profitability.
What they have finally produced, years later, is a synergy, but of subunits that are substandard. This is not AMD's best CPU and ATI's best GPU melded into one delicious silicon-peanut-butter cup of awesomeness. It's still very, very easy to beat the performance of the combination with discrete parts.
And instead of leading the industry into this brave new sector, AMD gave its competition a massive head-start. So it's behind on GPGPU, and will probably never get the lead back. Not that its marketing department has a right to admit that.
So will this make peoples web apps and office programs run noticeably better?
Because that is what the vast majority of computers are being used for even in the commercial sector. Computer hardware peaked for the average user around 2000. Now as the article points out we are sitting around waiting for better software*. AMD would be better off developing that software then pushing hardware for a need that mostly doesn't exist.
* Why is it that stuff like user agents and other forms of AI mostly disappeared from the scene in the 90's? We have the power now to run the things that everyone seemed to be working on back then.
========
CINC, 4th Penguin Legion
Mathematica 8 can use OpenCL (and CUDA) I think the new MATLAB can, too.
My Other Computer Is A Data General Nova III.
Make it abundently clear what you need to start development on this platform. Will it work on all new computers or just a rare AMD chipset and my code is worthless on all other machines.
solely based on their mediocre driver support.
Most of the corporate/government money for that is going into FPGA boxes that sit between the camera (or in the camera) and the network connection.
Loading...
The odds of AMD inventing unicorns and saving the company with their sale are better than I'd give the idea that OpenCL will become popular.
I work with databases all day, and we regularly get people who say "why can't you accelerate sorting using a GPU?" The reason why you can't is that by the time you transmit the whole problem set over to the GPU, wait for it to compute, and then transfer the results back to the CPU again, you could have just sorted it on the CPU. This problem, that you have to load/process/return everything from the GPU, only goes away if they are capable of running much more general software. I'd have to move the entire database query executor onto the GPU, and it would need enough memory to do significant tasks, before it made sense here.
I see OpenCL continuing to be more popular in scientific computing applications, making far less nodes required in the computing clusters they tend to run. It's hard to imagine another area they have any real potential to be popular in.
I have a great tip for Terry, ,with just a little support this renderer could work on openCL.
invest a little money in blender foundation: http://blender.org .
They are working on new renderer based on CUDA
Existence of a free and open source openCL renderer of professional quality would force closed source developers to develop GPU based renderers as well or lose customers.
You can even invest in secret , there are other sustantial supporters of the blender foundation whose identity is not given.
The Cycles renderer F.A.Q.
http://dingto.org/?p=157
As can Postgresql using pgopencl.
That's just utter bullshit and marketing hype.
AMD are far from the only company to make this bet. For one, the bet is backed by Apple, who are the creators of OpenCL. Nvidia have a GPU computing SDK with full support for OpenCL for all major platforms. Even Intel has just recently provided Linux drivers for OpenCL, and have supported windows for a while. ARM will have an implementation soon for their Mali GPU architecture.
I use OpenCL for nonlinear wave equations. There may only be a few OpenCL developers at the moment, but with articles like this, the community will only grow larger. Anybody else out there? What do you use it for?
You're almost right.
Except that at work -- Where desktops will never die. Editing a spreadsheet or writing code on a portable is retarded. Even if we go to a dockable solution it's still a PC.
P.S. The "smart" in smartphone == PC == Personal Computer.
If you look at that AMD Fusion design, they have already addressed this. The memory will be shared between CPU and GPU, and the 'transfer' from CPU to GPU will simply be a pointer exchange. In fact, Fusion is doing away with the concept of a GPU being a discrete device - the GPU that is presented to the OS is really only a virtual device wrapping a bunch of the vector processing units.
I don't think he means OpenCl specifically. OpenCl is a tool that connects you to GPU hardware. GPU hardware is designed for a different problem than the CPU, so they have different performance characteristics, in the not too distant future heterogenous multi core chips that do both the CPU and GPU calculations of today will be mainstream, and there will general purpose computing tools (which OpenCl is a relatively early generation of, along with CUDA) to access that hardware.
While I don't agree with the idea that this is the entire future, it's certainly part of it. Right now you can have 1200mm^2 of top tier parts in a computer, roughly split half and half CPU/GPU - but not every machine needs that, and it's hard to cool much more than that. So long as there's a market which maximizes performance and uses all of that, CPU/GPU integration will not be total. But there will be, especially in mobile and not top end machines 'enough' performance in 600-800 mm^2 of space, which can be a single IC package which will be a combined CPU-GPU.
It is, I suppose, a bit like the integration of the math co-processor into the CPU a decade ago. GPU's are basically just really big co-processors, and eventually all that streaming, floating point mathy stuff will belong in the CPU. That transition doesn't even have to be painful, a 'cheap' fusion product could be 4 cpu cores and 4 GPU cores, whereas an expensive product might be a 8 core CPU in one package, and 8 cores of GPU power on a separate card, but otherwise the same parts (with the same programming API). The unified memory will eventually obsolete the dedicated GPU probably, but GPU RAM is designed for streaming, in order operations, whereas CPU ram is for out of order random memory block grabs, ram that does either in order or out of order equally well would solve that problem (or as long as it does it well enough), but architecturally I would have GPU ram as a *copy* of the piece of memory that the gpu portion of a fusion part will talk to.
As to what the huge market is: OpenCL gives you easier access to the whole rendering subsystem for non rendering purposes. So your 'killer' apps, are laptops, tablets, mobile phones, low powered desktops, really, anything anyone does any sort of 3D on (games, windows 7, that sort of thing), so basically everything, all your drawing tools.
The strategy is poorly articulated with OpenCl, but I see where they're going. I'm not sure what Intel is doing in this direction though, which will probably be the deciding factor, and nVIDIA, rather than positioning for a buyout (by Intel), seems to be ready to jump ship to SoC/ARM type products. Intel doesn't seem to have the GPU know how to make a good combined product, but they can certainly try and fix that.
I've developed applications (for PrimeGrid.com) for both nVIDIA CUDA and AMD OpenCL. The thing about GPGPU is that you have to write very close to the hardware to get any reasonable speed increases. CUDA lets you do that. But OpenCL is practically CUDA running on AMD; not close to the hardware at all.
By all rights, my application should be faster on AMD cards. It's embarassingly parallel and has a fairly simple inner loop - albeit doing 64-bit math. If I could write it on AMD's close-to-metal language, Stream, I'm sure it would be. But while nVIDIA offered nice documentation and an emulator for CUDA, AMD didn't for Stream, and only recently did for OpenCL. nVIDIA's since removed their emulator, and since they (shrewdly) don't let one machine run both brands of cards together, I'm mainly aiming at CUDA now.
If AMD had come up with a C-like, close-to-metal language, with good documentation and preferably an emulator, they could have run circles around CUDA. Maybe they still can; but I doubt it.
(T>t && O(n)--) == sqrt(666)
Right now those 'fusion' type products are pretty terrible, I'm not sure decent RAM would be enough to save them, at least if you want decent gaming performance. Also, once you stick the CPU and GPU together you can pipe data directly from one to the other, so the RAM side of things probably changes a bit, but I'm not sure how. I've migrated to AI temporarily from the world of GPGPU so I'm not fully up on how, in detail, they need to talk to each other.
AMD may be betting the farm on a strategy that involves buying more expensive memory, that can, say, do both fast in order and fast out of order reads. Even if that's a 50% increase in price (on the RAM) you're still saving big on the GPU side of things, and they might just figure it's a problem technology will pretty easily solve fairly soon. They aren't really all in yet (in terms of products on shelves), so this might be a 4 years from now sort of problem, when the hardware landscape may be very different than today, I'm not sure, and right now that RAM wouldn't get you much, and there would be no reason to manufacture in volume, so no one would use it.
I could certainly see a future of CPU cores, GPU cores, FPGA's etc. That would make programming *very* interesting for high performance applications.