I wrote at article this morning at GDN (Amazon Clusters Offer Massive GPU Potential) talking about the potential that the newly announced cloud-based GPU (that's graphics processing unit, just in case) service from Amazon could have for the gaming industry. It took some hours for that information to then percolate through the filter that is my brain and for me to realize, there's massive potential for online video as well.For those that don't know what I'm talking about, I'll quote the press release from Amazon:
Amazon Web Services LLC today announced Amazon Cluster GPU Instances, a new instance type designed to deliver the power of GPU processing in the cloud. Amazon Cluster GPU provide developers and businesses immediate access to the highly tuned compute performance of GPUs with no upfront investment or long-term commitment.
Amazon Cluster GPU Instances provide 22 GB of memory, 33.5 EC2 Compute Units, and utilize the Amazon EC2 Cluster network, which provides high throughput and low latency for HPC and data intensive applications. Each GPU instance features two NVIDIA Tesla M2050 GPUs, delivering peak performance of more than one trillion double-precision FLOPS.
Yowza! That's some pretty heavy technological mumbo-jumbo (I think I might start a series of articles called just that). What it means is that any GPU-intensive program could be coded to utilize a distributed, cloud-based GPU alternative.
Amazon Cluster GPU and Online Video
So say you've got, oh I don't know, a massive online video editing SaaS (software as a service) idea you've been toying around with, but the insane server farm you would require in order to power it is extremely cost prohibitive. BAM! Cloud-based GPUs to the rescue.
Now, what if you've got a massive video streaming service that needs to do all sorts of video manipulation and then stream the resulting video to a PC in order to simply be displayed on a sort of dumb terminal (like a video kiosk or a network-attached computer with low computer power). BAM! Cloud-based GPUs to the rescue.
If software developers can find a way to offload the heavy lifting the GPU in your PC is doing to an external cloud-based GPU, that means that those of us with lower-power computers, netbooks, mobile devices even, could benefit via awesomely cool video and not blow out our devices. Sure, it's very theoretical, but it's possible.
Adaptive video streams? BAM!
Elemental Technologies is a leading provider of massively parallel video processing solutions for broadcast and online video customers. "Online media companies are challenged by the ever-increasing need to provide adaptive video streams to a growing array of viewing devices beyond the PC platform," said Sam Blackman, CEO and co-founder of Elemental Technologies. "Harnessing Amazon EC2 allows Elemental customers to realize the full benefits of our soon-to-be released Accelerated Cloud Transcoding family of services. Our video processing software running on Amazon Cluster GPU Instances will help us keep up with demand in the expanding multi-screen video universe.”
There's also this thing called general purpose GPU which means that the power of the GPU can be harnessed and turned to performing other tasks not directly video related. A quick quote from Wikipedia will sum this up:
Recently NVidia began releasing cards supporting an API extension to the C programming language CUDA ("Compute Unified Device Architecture"), which allows specified functions from a normal C program to run on the GPU's stream processors. This makes C programs capable of taking advantage of a GPU's ability to operate on large matrices in parallel, while still making use of the CPU when appropriate. CUDA is also the first API to allow CPU-based applications to access directly the resources of a GPU for more general purpose computing without the limitations of using a graphics API.
I know, I know, it's all very Star Trekkie, hypothetical, futuristic, hard-to-wrap-your-heads-around stuff. But in a nutshell, this could be the dawn of the distributed GPU. There might never be a time when any display device cannot show you the best image available based on processing power restrictions, the limited factor would then be the Internet connection and the ability to put the pieces together.
What is currently GPU accelerated?
- Video games
- Adobe products (with the CS4 release, Adobe has implemented full GPU acceleration to massively improve the performance of almost every operation) Whoa hello, Adobe Premiere SaaS anyone?
- The Commodore Amiga (haha! Look it up if you don't know)
- PacketShader (it's a software router = faster data streaming, up to 40Gbps in some tests)
- DVD video upscaling to HD (ArcSoft has a software that does it)
- Video encoding/decoding
- Web browsers (both IE9 and FireFox 4 have announced support. Chrome as well I think)
- HTML5 video (BAM!)
- Video editing
- Scientific, economic and flight information displays
- Flash (as in the Adobe product, not the DC Comics Superhero)
For further reading I might suggest doing a quick Google search on GPU accelerated online video and you'll find a pile of things. Me? I'm off to read some old Flash comics. Bam!