公司
解决方案
开发者
支持
Search
CN
CN
Ampere Computing Logo
解决方案
解决方案主页
平台系统
解决方案
性能总览
White Papers Coming Soon!
工作负载简介概览
Tuning Guides Overview
如何购买
Ampere 系统
Ampere Altra
Azure
Equinix
甲骨文
腾讯云
谷歌云
Ampere AI 下载工作原理常见问题
开发者
开发者中心部署云应用使能开源社区把数据用起来构建云应用设计云应用
Search
Cloud Computing Solutions

Android 云游戏简介

Ampere 和 NVIDEA 安卓云游戏解决方案 SDK

Print
Download
Ampere 云游戏解决方案
Nvidia Android 游戏SDK
Ampere Altra Max 处理器
主要收益
渲染、编码和流式传输架构
基准测试配置信息
平台性能和实例密度
基准测试结论
脚注
Ampere 云游戏解决方案

随着云游戏越来越受欢迎,以及XR 应用场景的元宇宙的落地,对集中式资源的需求越来越高,以满足渲染、编码和从云传输到不同设备(如手机和可穿戴设备)的当下需求。通过 5G 连接这些设备,以低延迟和高带宽的结合可以为包括云游戏和元宇宙在内的许多用例提供更好的体验。

Ampere Altra(80 核)和 Ampere Altra Max(128 核)AArch64 处理器是为云原生应用构建的完整片上系统 (SOC) 解决方案,包括数字流式应用、游戏和 XR。 除了包含许多高性能内核外,Ampere 的创新架构还提供可预测的高性能、线性扩展和高能效。更重要的是高 IO 带宽提供了与 GPU、NIC 和视频编码器等多个 PCIe 设备的直接连接,这对于云服务提供商 (CSP) 所需的流式传输应用的高密度至关重要。

Ampere 平台不断发展的 ODM 生态系统为 CSP 客户提供各种单路 (1P) 和双路 (2P) 平台。一些平台的设计可提供高密度的外围设备,如 GPU。这些平台为单宽或双宽、全长或半长、全高或半高插槽和辅助电源提供充裕的空间,可适应多个电源(每卡高达 300W),并实现 CPU/GPU 的多种可选配置。

Nvidia Android 游戏SDK
  • Android 版本:支持Android 9 ,其他版本也可以通过驱动程序进行构建

  • 组件:GPU驱动程序、SurfaceFlinger、输入、音频

  • API:帧捕获、编码和流式传输

  • 安卓流媒体客户端

  • Docker 容器管理脚本

Ampere Altra Max 处理器
  • 128个 64-bit内核,最大主频3.0 GHZ
  • 单核 64 KiB i-Cache, 64 KiB d-Cache
  • 单核 1MiB L2 Cache
  • 16MB SLC (System Level Cache)
  • 一致性网格互联架构

内存

  • 8x72 bit DDR4-3200 channels
  • 支持ECC & RAS
  • 最大可配 16x DIMMS (2 DPC) 和 4TB 内存容量

外部连接

  • 单颗CPU提供128路 PCIe Gen4
  • 支持双路一致性互联
  • 4x16路 CCIX协议通道128 lanes of PCIe Gen4

系统

  • Armv8.2 指令集,SBSA Level 4认证
  • 高级电源管理模块

性能

  • SPECrate®2017Integer Estimated: 350
主要收益

Ampere Altra 系列处理器

  • 专为可扩展的云原生应用程序而设计
  • 为流式应用提供最高密度的云实例
  • 可预测的性能确保稳定的 SLA
  • 原生支持 32 位和 64 位应用程序
  • 绿色:行业领先的能效降低了云服务的碳足迹

Nvidia 游戏 SDK

  • GPU 和 CPU 资源的均衡管理
  • 基于 Docker 容器的解决方案 - 与 Kubernetes 等编排工具无缝集成
  • 特殊的构建属性确保均衡的 GPU 利用率
  • 示例 SDK 源代码
渲染、编码和流式传输架构

Nvidia 游戏软件栈可以实现非常高效且均衡的渲染、编码和流式传输管道。在 GPU 渲染和合成帧之后,只将帧缓冲区的文件描述符而不是帧数据被复制到共享内存中,供运行在宿主机或者Android 容器中运行编码模块使用,继而实现高性能帧捕获、编码和流式传输。模块在宿主机中运行,而不是在 Android 容器中运行,发挥最高效率。帧捕获模块读取共享帧缓冲区属性并将其传递给基于 CUDA 的视频编码驱动程序,该驱动程序可以直接读取帧并将其编码为视频流。经编码的视频流可以从 GPU 复制到 CPU 内存,然后进行流式传输。处理用户输入和音频也使用了类似的方法。

nvidia-rendering.png

Fig 1: Rendering, encoding, and streaming pipeline

基准测试配置信息

使用 Mt Collins(双路 Ampere Altra 服务器)和 Mt Snow(具有以下配置的单路 Ampere Altra Max 服务器)执行了基准测试:

Mt Collins:

  • 2x Altra with total 160 cores @3.0GHz
  • 512GB DRAM
  • 1TB NVME
  • 4x NVIDIA T4 (2 on each socket)

Mt Snow:

  • 1x Altra Max with 128 cores @3.0GHz
  • 512GB DRAM
  • 1TB NVME
  • 4x NVIDIA T4 (4 on one socket)

在 2P 系统 Mt Collins 上,实例捆绑到特定的 GPU 和 CPU(内核),与其他插槽的CPU内核隔离开。

图 1 中基于渲染、编码和流式传输的工作流框架,Android 实例的数据从 CPU 流向 GPU 再返回到 CPU。高密度 Android 游戏实例采用了良好的隔离策略。 GPU 资源分配后,GPU 之间没有数据共享,并一直持续到释放。分配给 Android 实例的 CPU 内核和 GPU 都隶属于同一个NUMA节点,从而最大限度地减少了跨路数据流量。 这种隔离原则有个例外,即 GPU 分配的资源和与功能相关的上下文对 GPU 驱动的每个实例依然保持全局属性,特别要注意防止系统中 GPU 上下文或资源分配相关功能的过载。

在 Mt Collins 上,每个 GPU 渲染 30 个 Android 容器实例并对最终图像进行编码,总共 120 个实例。每个 CPU 插槽的 80 个内核与在连接到同一插槽的两个 GPU 上运行的 60 个实例隔离。在 Mt Snow 上,Android 实例被划分为每个 GPU 30 个实例,同时共享所有 128 个内核。

游戏帧以 1280x720@30fps 渲染、编码后,它们通过基于 UDP 的 RSTP 进行流式传输。如果客户端连接或断开,数据包将通过 NIC 传输。远程客户端连接并不会实质性地改变结果。

平台性能和实例密度

这里显示的 CPU 和 GPU 性能数据是在所有 40-120 个容器在稳定状态下运行游戏时收集的,没有连接任何客户端,即编码后所有帧都会被丢弃。


Game Ran1P AltraMax2P Altra
Platformer3D0.48 cores/instance0.53 cores/instance
BombSquad0.18 cores/instance0.24 cores/instance

通过这些设置,基准测试结果显示 CPU 利用率非常低。当运行 120 个基于 Java 的 Plaformer3D 实例时,CPU 利用率在 1P Altra Max 上约为 45%,在 2P Altra 上约为 40%。 对于基于 NDK 的 BombSquad,1P Altra Max 的 CPU 利用率约为 17%,2P Altra 的 CPU 利用率约为 18%,上表显示 Platformer3D 游戏在 1P Altra Max 上消耗 0.48 个内核,在 2P Altra 上消耗 0.53 个内核,而 BombSquad 在1P Altra Max 上消耗 0.18 个内核,2P Altra 上的 0.24 个内核。在这两种情况下,Altra Max 的 CPU 效率都略高于 Altra。 请注意,每个实例所需的 CPU 内核取决于游戏内容。例如,在运行 Platformer3D 的 Altra Max 上,每核 CPU 为 0.48,而在 BombSquad 上为 0.18。

如上所述,GPU 上下文和资源分配相关函数也是决定系统级性能的关键因素,包括启动和退出游戏、启动和停止容器或启动和退出视频编码操作等阶段。实例密度也取决于 GPU 资源争用。Nvidia T4 使用 15G 的 GPU 内存,以每个实例 500MB 的速率在实例之间共享。同样,这取决于游戏本身,但经验值是 500MB 适用于中档的Android 游戏。基于这些考虑,需要将给定的机器上实例密度控制在刚提到的 GPU 上下文和资源分配总容量的限制之下。通常,对于中端游戏,NVIDIA T4 每个 GPU 运行约 30 个实例,因此在这些测试中,将游戏实例密度限制为 配备4个 NVIDIA T4 GPU 的服务器时最多120个实例。 当然,后续对其他 GPU 设备的测试可能会产生更大的密度。

CPU Utilization (%) - AltraMax 1P
CPU Utilization (%) - Altra 2P
基准测试结论

对于云端的 Android 应用程序,实例密度就是一切。 Ampere 是第一个支持每台服务器 120 个或更多 3D 云游戏实例的平台。 Ampere 处理器原生支持 32 位和 64 位 Android 应用程序,无需二进制转换即可实现最大实例密度! Ampere Altra 和 Altra Max 处理器在运行 Platformer 3D 和 Bombsquad 等 3D 游戏时非常高效,为增值服务留出了充足的 CPU 空间,足以完成任何云游戏或云手机解决方案。

脚注

此处包含的所有数据和信息仅供参考,Ampere 保留更改它的权利,恕不另行通知。本文档可能包含技术错误、遗漏和印刷错误,Ampere 没有义务更新或更正此信息。 Ampere 不作任何形式的陈述或保证,包括但不限于对不侵权、适销性或适用于特定目的的明示或暗示保证,并且不承担任何形式的责任。所有信息均“按原样”提供。本文件不是 Ampere 的要约或具有约束力的承诺。使用此处设想的产品需要随后的谈判和最终协议的执行,或者受 Ampere 的商品销售条款和条件的约束。

与 Ampere 测试中使用的不同的系统配置、组件、软件版本和测试环境可能会导致与 Ampere 获得的测量结果不同。

©2022 Ampere Computing 版权所有。Ampere、Ampere Computing、Altra 和“A”标志都是 Ampere Computing 的注册商标或商标。 Arm 是 Arm Limited(或其子公司)的注册商标。本出版物中使用的所有其他产品名称仅用于识别目的,可能是其各自公司的商标。

Ampere Computing® / 4655 Great America Parkway, Suite 601 / Santa Clara, CA 95054 / amperecomputing.com

Ampere Computing

4655 Great America Parkway

Suite 601 Santa Clara, CA 95054

Tel: +86-021-64338766

info[at]amperecomputing.com

关于我们
image
image
© 2022 Ampere Computing LLC. All rights reserved. Ampere, Altra and the A and Ampere logos are registered trademarks or trademarks of Ampere Computing.