使用基于 Ampere 模型库的 Ampere 内部测试软件进行基准测试。该软件完全用 Python 编写,与计算延迟和吞吐量的 MLCommons Inference(又名 MLPerf)方法一致。它以标准和通用的方式利用框架的 API,同时在实际应用程序中可复制使用。
针对下面列出的每个配置进行延迟基准测试,都执行一个系统进程。在热身运行之后,每个进程在循环中运行批处理大小等于 1 的工作负载至少 60 秒。然后根据收集的每次通过网络的网络推理时间计算最终延迟值。
Intel Xeon 8380 “Ice Lake” - 线程数:1、4、16、32、64、80
AMD Epyc 7763 “Milan” - 线程数:1、4、16、32、64、128
Ampere Altra Max M128-80 - 线程数:1、4、16、32、64、128
当涉及到多进程吞吐量基准时,已经涵盖了不同批次大小和每个进程中线程数的各种情况。最终吞吐量值是根据在 60 秒多进程运行期间观察到的平均(第 50 个百分位)延迟估计的。所有系统都针对每个 n 个并行进程的以下批量大小的运行工作负载进行基准测试:[1、4、16、32、64、128、256]。每个进程的线程数与总进程数分别为:
英特尔至强 8380 “Ice Lake” - 1x80、2x40、4x20、16x5、32x2、64x1、80x1
AMD Epyc 7763 “Milan” - 线程数:1x128、2x64、4x32、16x8、32x4、64x2、128x1
Ampere Altra Max M128-80 - 线程数:1x128、2x64、4x32、16x8、32x4、64x2、128x1
所有平台的基准测试都是使用相同的脚本、相同的数据集、相同的模型来运行的。所有平台都运行相同的工作负载,应用相同的预处理和后处理并进行统一的推理调用。在 fp16 Altra 数据的情况下,值是使用相同的脚本获得的,而 AI 模型与 fp32 对应物的不同之处仅在于权重的精度——模型量化过程仅涉及转换为较低的浮点精度。
在所有经过测试的系统中,TensorFlow 库被用于其最知名的变体,可用于测试平台:
英特尔 CPU - TF 2.7 DNNL,可作为 Docker Hub映像:intel/intel-optimized-tensorflow:2.7.0 · AMD CPU - TF 2.7 Zen-DNN,可在 ZenDNN - AMD 为 TF_v2.7_ZenDNN_v3.2_Python_v3.8.zip
AWS Graviton 2nd gen – TF 2.7(原生 aarch64 构建),可用 [此处](https://github.com/KumaTea/tensorflow-aarch64/releases/download/v2.7/tensorflow-2.7.0-cp38-cp38 -linux_aarch64.whl)
Ampere Altra Max – TF 2.7 Ampere 优化版,可在 Ampere® AI 上作为 Tensorflow 的 AIO
所有基准测试均使用 Python 3.8 在以下Linux 的环境中运行:
英特尔至强 8380 “Ice Lake” - Ubuntu 20.04,内核:5.11
AMD Epyc 7763 “Milan” - Cent OS 8,内核:4.18.0-305.3.1.el8.x86_64
Ampere Altra Max M128-80 – Fedora 35,内核:5.16.9-200.THP_NO_FIE.fc35.aarch64