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

Steve Underwood steveu at coppice.org
Wed Sep 22 05:05:34 CDT 2010


  On 09/22/2010 12:48 PM, Chris Coleman wrote:
> Hey Asterisk developrs,
>
> I love Asterisk, thanks for making it.
>
> Just got my first system up and running, I'm on PBX-in-a-Flash 1.7.5.5
> on FreePBX 2.8.0.3 on Asterisk 1.4.35.
>
> The biggest drain on CPU cycles in Asterisk, appears to be transcoding
> and conferencing.
>
> I'm connected to the internet on a deluxe DSL connection with only
> 640Kbps of upload bandwidth.
>
> To reserve as much bandwidth as possible for browsing, email, and
> attachments, I want to run VOIP codecs that consume around 16-20 Kbps
> per channel instead of 64 Kbps, with up to 4 simultaneous channels
> active (going up to sipgate and google voice)... total of 64-80Kbps
> instead of 256Kbps..
>
> My hardware platform is running 24/7 so it's a 35-40W energy-saving
> Intel Atom-based PBX server on mini-ITX, and you reach the limit of
> simultaneous transcoded calls pretty quickly.
>
> A quick search and I see that OpenCL has been ported to Linux for about
> a year now.
>
> You probably already know very well about OpenCL -- Apple's open
> standard OpenComputeLanguage that lets you use any supported
> general-purpose GPU for much faster math computing....
Sometimes faster. Often slower. It depends how well the problem fits the 
hardware.
> Dual-core Atom D510 mini-ITX motherboards with the OpenCL-compatible GPU
> Nvidia G210 (ION) are available for slight cost increase over boards
> without the ION.  For example : the Jetway NC98
>
> Theoretically the GPU is 10x more efficient in doing transcoding math,
> than the CPU... so we could get up to 10x as many transcoded and
> conferenced channels...
>
> ....resulting in lower energy consumption, and higher number of
> transcoded + conferenced channels, per PBX server, before hitting the
> limit of CPU math processing horsepower.
CUDA is far more mature than OpenCL right now. Have a lot around the 
internet at attempts to use CUDA to accelerate audio and speech codecs. 
The results aren't good. I have only seem one attempt - a poor 
performing MP3 encoder - where the developers didn't get disheartened 
and abandon work before completion.
> Does anyone else think it'd be brilliant of the * developers to update
> the transcoding and conferencing code for 2010, to use OpenCL (which
> uses any available, compatible GPU) for absolutely awesome performance ??
>
>
Awesome? Really? You have supporting evidence?

The nVidia Fermi may change things quite a bit, as it is a more general 
purpose compute engine than the earlier GPUs. I still haven't seen 
anything impressive for any computation in the ballpark of a speech 
codec, though. I bought a GTX460 card a couple of week ago to do some 
experiments, but I'm struggling to find the time to work on it.

The Toshiba SpursEngine card from Leadtek is certainly capable of 
accelerating speech codecs. The now defunct HowlerTech company was using 
them. Not too expensive. Fairly low power. The snag is they seem to be a 
dead end. Leadtek supply a 32bit Linux SDK, but say a 64 bit SDK will 
not appear. To me, that says abandonware.

Steve





More information about the asterisk-dev mailing list