[asterisk-dev] OpenCL for improved performance transcoding and conferencing

Kevin P. Fleming kpfleming at digium.com
Fri Sep 24 07:23:51 CDT 2010


On 09/24/2010 05:02 AM, Chris Coleman wrote:

> Steve, thanks for the input.
> 
> You encouraged me to delve deeper.
> 
> So, I did, and have some good news.
> 
> There is a company in the UK that makes and sells EXACTLY the kind of 
> thing I'm talking about.
> 
> It is a general purpose GPU, on a PCIe card, with a module for asterisk, 
> made to accelerate and offload computation for transcoding and 
> conferencing !!
> 
> The general-purpose GPU it uses is the IBM CELL processor, same as in 
> the Xbox 360 and Playstation 3.

The CELL processor isn't a GPU; it's a highly-parallel compute engine.

> They talk about power savings, and allowing something like 460 channels 
> of transcoding, from for example gsm to g.729, without bringing the CPU 
> to its knees transcoding the audio, because the GPU is SO MUCH better 
> suited to this math work of transcoding.

They are also out of business.

> Here is the source I'm quoting:
> 
> http://www.youtube.com/watch?v=0dnFD_vaJ6s
> 
> Would like to have the opinion of the group.
> 
> Maybe someone feels up to the challenge of implementing some test code....

Modern CPUs can transcode massive amounts of audio using off-the-shelf
code, and at much lower cost than special-purpose processors can do it.
Over two years ago, we ran a test in the Digium lab of our stock G.729
encoder/decoder module on an 8-core Xeon, and were able to top 800
channels before the machine ran out of CPU time. I would expect that
today's Core i7 CPUs could do even better, since the Xeon we tested with
was based on Intel's more complex microarchitecture (which they've since
abandoned).

For applications where moderate channel capacities are needed, the
$/channel cost of a general purpose CPU is going to win. The only places
where a special-purpose chip might be better, in my opinion, is in very
low power situations or large (or extreme) channel capacities, or when
video encoding/decoding is involved.

As Steve already pointed out, the data vectors involved with VoIP
transcoding are just too small to be able to leverage the parallelism
inherent in these processors effectively.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kfleming at digium.com
Check us out at www.digium.com & www.asterisk.org



More information about the asterisk-dev mailing list