Contents:
Related pages:
GPU acceleration is supported on SBC SWe cloud-based 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.
NVIDIA Tesla V100(PCIe)
The following codecs are supported:
For more information on "GPU + CPU codecs", see the section Support for CPU+GPU Hybrid Transcoding Instances.
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.
The term "Hybrid Transcoding" implies leveraging both CPU and GPU resources efficiently to accommodate a given codec combination for transcoding capability. With Hybrid Transcoding, a suitable VM instance (SBC SWe on KVM/Openstack) utilizes all the CPU and GPU resources allocated to it for provisioning a given transcode call mix scenario.
Prior to Hybrid Transcoding, the SBC supported either a pure CPU transcoding solution, or a pure GPU transcoding solution. However, in the pure GPU solution, many CPUs are left unused. For example, when a 32
vCPU, GPU-ISBC instance is used to provision just AMRWB-G711u
calls, only 13
vCPUs are used, although such an instance can handle 7680
sessions for AMRWB-G711u
transcoding. With Hybrid Transcoding, the remaining 19
vCPUs (32-13
vCPUs) are used for provisioning additional AMRWB-G711
sessions.
Hybrid Transcoding enables a GPU-SBC to support GPU codecs as well as non-GPU-supported codec in the same instance. For example, AMRWB-G711 and G726-G711 codecs are supported in the same instance.
Hybrid Transcoding is supported in Custom GPU and Standard GPU traffic profiles.
For Hybrid Transcoding, the percentage
value of the codec G7112G711
in sweCodecMixProfile
indicates the proportion of total number of sessions designated for pure G711
transcoding (G711-G711
). This is applicable for Hybrid Transcoding, as well as pure CPU transcoding solutions.
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.
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.
To display the status of codec channel capacities for codecs provisioned on GPU, on a per GPU device basis, execute the following existing command:
> show table system gpuTranscodeStatus
Similarly, to display the status of codec channel capacities for codecs provisioned on CPU, execute the following existing command:
> show table system cpuTranscodeStatus
To display the status using the EMA, refer to:
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.
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:
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:
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.
Refer to the following pages for basic configuration steps for the S-SBC and M-SBC:
For enabling T-SBC, some additional configurations are required in S-SBC and M-SBC which are described in subsequent sections.
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.
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:
The GPU transcoding solution currently does not support more than one non-G711 transcodable codec per leg on a trunk group. Therefore when configuring Packet Service Profiles, do not configure multiple non-G711 codecs on a single leg (This Leg/Other Leg parameters) when specifying the Codecs Allowed For Transcoding within Packet To Packet Control. Refer to Packet Service Profile - CLI or Packet To Packet Control - Codecs Allowed For Transcoding (EMA).
Following issues exist in 8.x/9.x releases:
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 Invoke MRF as a Transcoder for D-SBC.
All pre-existing licensing related to transcoding apply to GPU codecs as well. There is no separate license for GPU functionality.