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

Chris Coleman chris at espacenetworks.com
Tue Sep 21 23:48:36 CDT 2010


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....

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.

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 ??




More information about the asterisk-dev mailing list