Contents:
Related pages:
Supported Deployment Scenarios
GPU acceleration is supported on SBC SWe I-SBC and T-SBC instances on OpenStack (Newton and above). T-SBC is a component in a Distributed SBC architecture that provides transcoding service.
GPU devices are attached to SBC cloud instances through PCIe pass-through – a single GPU device can be used by only one instance at a time. The process of enabling PCIe pass-through in OpenStack is detailed later in this document. For performance considerations, NUMA locality of devices should be ensured.
NVIDIA GRID is not supported.
Supported GPU Devices
NVIDIA Tesla V100(PCIe)
Supported Codecs
The following codecs are supported:
- Codecs supported on both GPU and CPU:
AMR-NB
,AMR-WB
,EVRC
,EVRCB
,G729
,G722
,EVS
,OPUS
- CPU only codecs :
G723
,G726
,G7221
,ILBC
,SILK_8
,SILK_16
,G7112G711
,T38,G711
For more information on "GPU + CPU codecs", see the section Dynamic Codec Allocation.
You can provision CPU codecs in the codec profile and associate it with the GPU traffic profile; however, you must provision at least one GPU codec in the sweCodecMixProfile
.
G.722 Silence Suppression is not supported with GPU transcoding.
The following procedures assume that the supported GPU devices have been properly installed on the server.
Dynamic Codec Allocation
The SBC dynamically manages GPU and CPU transcoding resources so they respond to various codec combinations without impacting service. The SBC leverages both GPU and CPU transcoding resources to support an incoming codec request. If GPU resources are available, the SBC utilizes these GPU resources to support GPU-supported codecs. If GPU resources are not available, the SBC utilizes CPU resources (if available) to support GPU-supported codecs. The SBC utilizes CPU resources (if available) to support non-GPU supported codecs. For information about GPU- and CPU-supported codecs, refer to Supported Codecs.
The percentage value for G7112G711
is used for estimating transcode and bandwidth cost.
The percentage value for G711
is not used for estimating transcode cost, but is used for bandwidth calculation of PXPAD scenarios.
The percentage value for G711
cannot be greater than the percentage value of non-G711 codecs.
The sum of all codec percentages is
100
.
DSP-based Tone detection is supported only on GPU-ISBC profile.
With dynamic GPU resource management, the sweTrafficProfiles
does not enforce any hard coded per-codec limit. You must still configure the codec percentage in sweCodecMixProfile
since this configuration acts as an input for the functional partitioning of VCPUs of the instance.
This feature does not affect the codec channel capacities in a non-GPU accelerated SWe (CPU-based SWe).
This feature supports the standard LSWU upgrade operation of the supported SBC releases.
The SBC NRM congestion monitoring mechanism monitors all UXPAD processes for congestion.
A sub-optimal resource utilization exists during the transient transcoding call mix scenarios.
Best Practice
Ribbon recommends monitoring of the status of codec channel capacities for codecs provisioned on GPU (on a per GPU device basis), as well as on CPU.
GPU Transcode Status
Shows codec channel capacities on a per GPU device basis.
The gpuTranscodeStatus
represents only available GPU resources. If the gpuTranscodeStatus
displays higher numbers than the dspStatus
, the system is CPU-limited.
Command Syntax
show table system gpuTranscodeStatus
Command Parameters
CPU Transcode Status
The cpuTranscodeStatus
captures the information on spilled over channels due to the exhaustion of GPU resources. GPU codecs appear on the CPU when the GPU resources are exhausted and cannot accommodate GPU-supported codec channels, so the codec channels spill onto the CPU.
Command Syntax
show table system cpuTranscodeStatus
Command Parameters
To display the status using the EMA, refer to:
Instantiating GPU T-SBC on OpenStack Cloud
The T-SBC is instantiated using the help of a specific heat template. The GPU T-SBC requires a special flavor that has appropriate directives to utilize GPU devices of the compute node available for PCIe pass-through.
T-SBC Heat Template
The T-SBC instance should be launched using the heatRgNoDhcp-TSBC-template.yaml template. This template shares all fields of an M-SBC template, and additionally has the following fields:
Host Changes on OpenStack for Enabling GPU Devices
This section describes the changes needed on the Controller node and the Compute node hosting GPU cards in order to enable instances to use GPU devices. While this section focuses purely on the GPU aspect, Ribbon recommends that you refer to broader OpenStack performance tuning recommendations covered in the following links:
Guideline for Creating Flavors for GPU T-SBC Instances
Open the dashboard and create a flavor with the following properties. Check with your Ribbon account team to determine the appropriate instance size for your traffic needs.
This is a sample benchmark. Ribbon does not mandate the use of the processors shown here.
After creating the flavor, update its metadata with the following key values.
Configuring the SBC for Invoking T-SBC
Refer to the following pages for basic configuration steps for the S-SBC and M-SBC:
- S-SBC Cluster Configuration using SBC Configuration Manager
- M-SBC Cluster Configuration using SBC Configuration Manager
- Instantiating SBC SWe on OpenStack using Heat Templates
For enabling T-SBC, some additional configurations are required in S-SBC and M-SBC which are described in subsequent sections.
Configuring and Activating T-SBC Cluster
Steps for configuration of T-SBC is similar to M-SBC with the following exception: The IP interface group creation procedure should create private interface groups instead of public. There are no public interface groups for T-SBC.
Additional Configuration for S-SBC
A DSP cluster needs to be configured in the S-SBC configuration to refer to the T-SBC cluster that is to be used for transcoding. The following steps describe the procedure for creation of this cluster:
Additional Configuration for M-SBC
Configure the private IP interface group for relaying media packets to T-SBC using steps from the "Configure Private LIF Groups in M-SBC" section of Invoking MRF as a Transcoder for D-SBC.
Licensing
All pre-existing licensing related to transcoding apply to GPU codecs as well. There is no separate license for GPU functionality.