Canonical Anbox Cloud
Workload Brief
Canonical Anbox Cloud lets you stream mobile apps securely, at any scale, to any device letting you focus on your apps
The Ampere® Altra® and Ampere® Altra® Max processors are complete system-on-chip (SOC) solutions built for Arm native applications. Ampere Altra supports up to 80 AArch64 cores and Ampere Altra Max supports up to 128 cores. In addition to incorporating a large number of high-performance cores, the innovative architecture delivers predictable high performance, linear scaling, and high energy efficiency.
Anbox Cloud supports cloud phone and cloud gaming use cases and can be deployed as a service on public cloud or on bare-metal Ampere platforms. It is Linux container based and uses the popular Ubuntu Linux operating systems and Canonical services such as MAAS and Juju for deployment and orchestration. Anbox Cloud is a very scalable solution, providing deployment on a single node or in multi-node clusters.
In this solution brief, we focus on cloud gaming workload running 3D games on Canonical Anbox Cloud software stack on Ampere Altra platform – Gigabyte G242-P33 which is a 2U single socket Altra Q80-30 – populated with a single Nvidia A16 GPU. We will measure numbers of streaming instances, FPS and CPU utilization for this workload.
Ampere Altra processors are designed to deliver exceptional performance for Arm native applications like Anbox Cloud. This is accomplished through an innovative architectural design, operating at consistent frequencies, and using single-threaded cores that make applications more resistant to noisy neighbor issues. This allows workloads to run in a predictable manner with minimal variance under increasing loads. The processors are also designed to deliver exceptional energy efficiency. This translates to industry leading performance/watt capabilities and a lower carbon footprint.
Anbox Cloud comes with additional components to build a control plane which simplifies and abstracts the use of the underlying container platform. The Anbox Management Service (AMS) provides an abstraction layer on top of LXD which adds resource management, container orchestration, application lifecycle management and various other things which are needed to run Android at scale and high density on a single machine. To facilitate Anbox Cloud handling scale out across multiple regions, the Anbox Stream Agent connects a single region powered by AMS and LXD via a NATS message queue to a centralized management service called Anbox Stream Gateway. The Anbox Stream Gateway allows the creation of user specific streaming sessions and routes users to the nearest region.
Cloud gaming: Designed from the ground up with high core density, provide high instance density for cloud gaming.
Runs existing native applications: Without the need for time-consuming recompilation or low performance emulators.
Consistency & predictability: Single-threaded cores running at fixed maximum frequencies ensure linear scaling.
Energy efficiency: With energy-efficient Arm cores, Ampere Altra can consume lower power while maintaining competitive levels of performance.
Data center class platform: Broad platform ecosystem with high GPU density.
Best performance per watt: Outstanding TCO (Total Cost of Ownership) – best performance per dollar for a solution of equivalent capacity.**
Memory
Connectivity
Technology & Functionality
Performance
Anbox Cloud enables us to run automated tests for Android applications at scale. A benchmark for streaming requires more automation than just starting containers. Therefore, Anbox Cloud provides a dedicated benchmark tool for this purpose. The tool automates the following tasks:
Create a streaming session
Receive the video/audio stream
Collect various statistics
Optional: Dump the received stream to a local file
The benchmark tool is provided through the anbox-cloud-tests snap. Use the following command to install it:
snap install anbox-cloud-tests
To run the benchmark, we must provide an authentication token for the Anbox Stream Gateway. The results are printed out as text. Alternatively, we can change the output format to JSON with --format=json and save the results to a file with the --report-path=/path/to/report.json option.
The following command runs the benchmark against an existing Anbox Cloud deployment:
anbox-cloud-tests.benchmark \ --screen-width=1280 \ --screen-height=720 \ --screen-fps=30 \ --stream-dump-path=/path/to/stream/dump/output \ --application=my-application \ --url=<https:// URL of the Anbox Stream Gateway> \ --auth-token=<valid auth token for the Anbox Stream Gateway> \
Results in Figure 1 from Altra Max 1P server with 4x Nvidia A16 GPU running Canonical Anbox Cloud. Instances of 3D Android games are rendered and encoded at 720p and 1080p at 30fps and 60fps. We can achieve high instance density of 128 instances and consistent 30fps and 60fps as shown in figure 1, with roughly 45-79 percent of the Altra Max CPU usages as shown in figure 2 and figure 3.
All data and information contained herein is for informational purposes only and Ampere reserves the right to change it without notice. This document may contain technical inaccuracies, omissions and typographical errors, and Ampere is under no obligation to update or correct this information. Ampere makes no representations or warranties of any kind, including but not limited to express or implied guarantees of noninfringement, merchantability, or fitness for a particular purpose, and assumes no liability of any kind. All information is provided “AS IS.” This document is not an offer or a binding commitment by Ampere. Use of the products contemplated herein requires the subsequent negotiation and execution of a definitive agreement or is subject to Ampere’s Terms and Conditions for the Sale of Goods.
System configurations, components, software versions, and testing environments that differ from those used in Ampere’s tests may result in different measurements than those obtained by Ampere.
©2022 Ampere Computing. All Rights Reserved. Ampere, Ampere Computing, Altra and the ‘A’ logo are all registered trademarks or trademarks of Ampere Computing. Arm is a registered trademark of Arm Limited (or its subsidiaries). All other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Ampere Computing® / 4655 Great America Parkway, Suite 601 / Santa Clara, CA 95054 / amperecomputing.com