Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Hi all! I've been lurking for a while, but this is my first post.

I was wondering if implementation of open CL in 3rd party applications and plugins is determined by OSX or by the 3rd party developer?

Will I be able to take advantage of the technology with existing 3rd party software, or do I have to wait until the developer has made some kind of update?

Thanks.
 
exaggeration

OpenCL could easily be implemented for the last generation POWERPC Macs.

But Apple says NOPE!

The complete abandonment of expensive PowerPC Macs by Apple and other developers like Google along with completely out of line pricing during a bad economy, not to mention, the Microsoft ANTI-MAC ads are a perfect storm of bad Mac news this year and all are going to come back to haunt Apple as bad decisions.

Yes, abandon people who bought expensive iMac G5s and $3000+ Powermac G5s in this bad economy. Think they'll give back the love?
...
I get that you are upset, but you are really exaggerating here and the deep bitterness you're displaying won't change the reality that your machine is at least four years old.

In particular, your assertion that this constitutes "total abandonment" of users of PowerMacs is way out of line. No one is being abandoned. Apple is just saying that users of it's (now) very old PowerMac line will have to suffice with Leopard, instead of Snow Leopard. That's not only not the same thing, it's a very reasonable position to take, and a better deal than what you would get from other manufacturers IMO.
 
Hi all! I've been lurking for a while, but this is my first post.

I was wondering if implementation of open CL in 3rd party applications and plugins is determined by OSX or by the 3rd party developer?

Will I be able to take advantage of the technology with existing 3rd party software, or do I have to wait until the developer has made some kind of update?

Thanks.

Developers will either have to use libraries/frameworks that are accelerated or add support for open CL themselves, it will not be automatic. The closest developers will get to "Free" acceleration will probably be any system frameworks like quicktime which will probably have full support and acceleration.
 
I get that you are upset, but you are really exaggerating here and the deep bitterness you're displaying won't change the reality that your machine is at least four years old.

The last G5 units were discontinued in late summer 2006, so they are approaching 3 years old, not over 4 years old. That said it was known for at least 3.5 years that Apple was going intel and any PPC hardware would be discontinued. It's also true that Leopard will probably continue to receive support for 18-24 more months meaning PPC users will have full support till the end of 2010, maybe longer ( 4.5 years minimum since the hardware was discontinued ). Some PowerMacs introduced back in 2001 will effectively have had support for over 9 years!

That's abandonment for ya'
 
Developers will either have to use libraries/frameworks that are accelerated or add support for open CL themselves, it will not be automatic. The closest developers will get to "Free" acceleration will probably be any system frameworks like quicktime which will probably have full support and acceleration.

Thanks for the reply, that makes perfect sense.
:)
 
It doesn't make sense that the quality would be worse. It isn't as if the graphics card would multiply bits differently than a CPU. If they were doing the same operation on both the Core i7 CPU with a non-CUDA application, and a "lesser" CPU combined with an NVIDIA card and a CUDA enabled application, the resulting video would be the same, all that should differ would be the time it took to get there.

It sounds like your "badaboom" test may not be all you think it is.

It wasn't mine, it was Anand's.

And yes there can be dramatic differences in the quality of the output (see link above). If I write a crappy h.264 encoder, and then I compare the output of my encoder vs the output of x264 at the same bitrate, it will be obvious that their encoder is superior to mine. Its painfully obvious you don't follow video encoding software development, I suggest you read this thread.

Likewise, if I write a crappy encoder, and then port it to CUDA and it speeds up 5x, then I still have a crappy encode when its done. So you just wasted 5x less time, and it still says nothing as to the speed and quality vs x264, just a comparison over Nero's own software encoder vs their CUDA enhanced encoder.

I'm not denying there are benefits to OpenCL, rather the video encoding community has looked into CUDA and its a huge pain in the ass because of CUDA's threading model. Mabye OpenCL changes that, but you're probably going to need a recent, high end video card to make it faster than your CPU. Even offloading certain tasks like motion estimation require a fair amount of overhead that could partially negate benefits.
 
...But I do have one question. When OpenCL and more specifically, CUDA is used, does it switch all of the encoding operation over to the graphics card and free the processor, or do the processor and graphics card work simultaneously to work through the process? Because if it just switches over all of the task to the graphics card... Well that is pretty much pointless and I agree with SirOmega that if you have a high end or multi-core processor that it is possible you could barely benefit from such a technology, if at all. However, if it utilizes the processor WITH the graphics card to encode... Well then we have ourselves a recipe for success. Imagine having OpenCL/CUDA on a machine with a high-end graphics cards with a processor capable of vast parallel processing. This could DRASTICALLY shorten the amount of time used to encode a video, along with a lot more applications/processes.
...

CUDA is specific to Nvidia GPUs, but OpenCL works across processing units. With OpenCL a processing task *could* execute on multiple processing units at one time -- on one or more CPU cores, on multiple GPUs, or any other processing unit that supports OpenCL.
 
And yes there can be dramatic differences in the quality of the output (see link above). If I write a crappy h.264 encoder, and then I compare the output of my encoder vs the output of x264 at the same bitrate, it will be obvious that their encoder is superior to mine. Its painfully obvious you don't follow video encoding software development, I suggest you read this thread.

So basically, calculating motion estimation on the GPU based on the unencoded pixels instead of the encoded pixels, which would be quite feasible to put on a GPU, wouldn't give you much benefit, even if it was done in zero time?
 
I've tried Badaboom using CUDA with Windows XP... and can confirm that the resulting quality was worse than other media encoders e.g. Handbrake.
That said... whether the cause of that is the programming, bugs, encoding options etc...... I've no idea at all.
 
So basically, calculating motion estimation on the GPU based on the unencoded pixels instead of the encoded pixels, which would be quite feasible to put on a GPU, wouldn't give you much benefit, even if it was done in zero time?

But the problem is that it can't be done in zero time. There are huge ( processing wise ) delays in getting the data to the GPU and offloading the data. Between overhead and a completely different programming model where many optimizations are impossible ( or not cost effective ) there are serious drawbacks.

Maybe open CL will break down some of these drawbacks and allow more hybrid applications where CUDA failed, but I'm not holding my breath.
 
OpenCL could easily be implemented for the last generation POWERPC Macs.

But Apple says NOPE!

The complete abandonment of expensive PowerPC Macs by Apple and other developers like Google along with completely out of line pricing during a bad economy, not to mention, the Microsoft ANTI-MAC ads are a perfect storm of bad Mac news this year and all are going to come back to haunt Apple as bad decisions.

Yes, abandon people who bought expensive iMac G5s and $3000+ Powermac G5s in this bad economy. Think they'll give back the love?

I think not.

But, as we know, Apple now makes most of its money from iPhones and iPODS and barely cares about Mac sales, so maybe they have the perfect plan after all? :rolleyes:

By the time Snow Leopard drops later this summer it will have been over three years since Apple sold their last G5. There is not a reason to continue to develop for a legacy machine. The goal is to sell new hardware. Why would Apple spend the resources working on G5 support for you to purchase a $129 OS when they can force your hand to spend $2,500 to get a new tower.

These decisions will not haunt Apple. The company is still making money, and lots of it in comparison to Microsoft, which posted their first ever loss. Bad corporate governance would be to dedicate developers' time to working on software for a ppc machine in a bad economy.
 
OpenCL could easily be implemented for the last generation POWERPC Macs.

But Apple says NOPE!

The complete abandonment of expensive PowerPC Macs by Apple and other developers like Google along with completely out of line pricing during a bad economy, not to mention, the Microsoft ANTI-MAC ads are a perfect storm of bad Mac news this year and all are going to come back to haunt Apple as bad decisions.

Yes, abandon people who bought expensive iMac G5s and $3000+ Powermac G5s in this bad economy. Think they'll give back the love?

I think not.

But, as we know, Apple now makes most of its money from iPhones and iPODS and barely cares about Mac sales, so maybe they have the perfect plan after all? :rolleyes:
You're right. It's relatively easy to code the OpenCL API as Universal and make it available to PowerPC computers. However, it's a pointless waste of time. Why? Because there are basically no GPUs on PowerPC computers that would support GPGPU operation or support it with sufficient performance.

DX10 generation GPUs were specifically designed to GPGPU operation in addition to traditional graphics work. None of them are available for PowerPC. The only other generation of GPUs that could hope to support OpenCL are the ATI X1xxx series as they were actually the first consumer application of GPGPU operation as the first accelerated Folding@home clients. Specifically, the X1600, X1800, and X1900 were supported in Folding@home. However, only the X1900 was ever made available as a custom option of the G5. You can assume the the user base is terribly low compared to overall PowerPC owners much less all Mac owners. The equivalent generation nVidia 7xxx series were found to be too slow for GPGPU operation by the Folding@home researchers and older DX9 GPUs would be even slower or incapable.

It isn't really unreasonable to not support OpenCL on PowerPC computers when they just don't have the hardware to run it even if the OS supported it. AMD and nVidia could make new third-party D10-gen cards available, but only the G5 is expandable so it's no hope for iMacs and laptops, and that still assumes G5 users are willing to buy new hardware and there are sufficient numbers of them to make it viable. It's highly unlikely that it is.
 
I'm sure Adobe will use this as a way to get people to upgrade to the next CS in a year or so.

No. Adobe will say they had already begun their development cycle before this was announced but hopes to have it ready for CS7. All development focus for CS5 is 64-bit and CS6 is installers that actually work without shutting down your computer for three days. For CS8 they have promised to have a common user interface that is at least slightly coherent in order to silence that pesky blog: http://adobegripes.tumblr.com/

But that's another 20 years from now.
 
OpenCL could easily be implemented for the last generation POWERPC Macs.

But Apple says NOPE!

The complete abandonment of expensive PowerPC Macs by Apple and other developers like Google along with completely out of line pricing during a bad economy, not to mention, the Microsoft ANTI-MAC ads are a perfect storm of bad Mac news this year and all are going to come back to haunt Apple as bad decisions.

Yes, abandon people who bought expensive iMac G5s and $3000+ Powermac G5s in this bad economy. Think they'll give back the love?

I think not.

But, as we know, Apple now makes most of its money from iPhones and iPODS and barely cares about Mac sales, so maybe they have the perfect plan after all? :rolleyes:
There's just one big, fat flaw with that argument:

APPLE HAS NOT MADE PPC MACS IN THREE YEARS! Abandon people who bought expensive computers several years ago? Hey, guess what? That $3k G5 (early generation) could get stomped by a bloody Mac Mini. If it was a high end G5, then it may beat the Mini but would be trounced by a modern mid-range iMac in most aspects. It's old technology. You want to try porting OpenCL to two different architectures? You want to write complete support for something that was discontinued years ago? Good luck. Also, as another poster pointed out, only the very highest-end G5s would have video cards that would actually run OpenCL code.

Spit those sour grapes out and stop kicking and screaming.
 
I have a feeling that nVidia is exaggerating CUDA and PhysX to sell its cards again.

I've actually used CUDA with both a low- and high-end nVidia card to accelerate some of my Matlab code, and I can see between a 5x and 15x improvement in the manipulation of large arrays of data. (This is on an HP workstation.) I currently generate the code using a plugin from a third-party company, and it would be great to have something like this built into the OS. I believe that Mathematica has plans for using this as well.
 
By the time Snow Leopard drops later this summer it will have been over three years since Apple sold their last G5. There is not a reason to continue to develop for a legacy machine. The goal is to sell new hardware. Why would Apple spend the resources working on G5 support for you to purchase a $129 OS when they can force your hand to spend $2,500 to get a new tower.

The error in your argument is that people paying lots of money for Macs expect them to last for a long time, so when that person who paid lots of money for a G5 finally buys a new machine, they will evaluate how much value they got for their money the last time they bought a Mac. I am sure Apple can force people to spend $2,500 to get a new tower, but they can't force people to spend $2,500 to get a new Macintosh tower.
 
1. I don't run Windows
2. All shipping Macs will support this vs. owning specific NVIDIA cards on the PC side.
3. Hopefully there will be more developer adoption due to #2.

arn
Don't all shipping Macs come with Nvidia cards already?
 
The error in your argument is that people paying lots of money for Macs expect them to last for a long time, so when that person who paid lots of money for a G5 finally buys a new machine, they will evaluate how much value they got for their money the last time they bought a Mac. I am sure Apple can force people to spend $2,500 to get a new tower, but they can't force people to spend $2,500 to get a new Macintosh tower.
OpenCL may not be supported on PPC Macs but I don't think Apple has said that Snow Leopard wont run on them as of yet. It's a possibility, but what's to prevent someone from running software on Leopard for the next year or two if they don't? A lot of production machines are still running Tiger. I think G5s will still have a good 1-2 years of life left in them even if they can't run Snow Leopard. In addition, if those people making evaluations don't take a complete architecture change into account then they're not thinking it through.
 
I did this several years ago on my Radeon X800XT using ATIs Avivo software.

In general, people shouldn't read into the marketing hype behind CUDA because it is really just a layer on top of OpenCL in the end.
 
So basically, calculating motion estimation on the GPU based on the unencoded pixels instead of the encoded pixels, which would be quite feasible to put on a GPU, wouldn't give you much benefit, even if it was done in zero time?

In the last post of the thread I linked above, one of the principle x264 developers states that the faster ME algorithms would be difficult to implement in CUDA. So yes, you cold port ME to the GPU, but if you're using a slower, less complex algorithm to perform ME then you have to make sure you have an awesome GPU to keep up with your CPU's ability to process frames. There is now additional overhead of making sure your GPU can keep up with your CPU, and the code to backup when the CPU has to take over ME because the GPU isn't fast enough.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.