如何衡量AI/HPC算力的“FLOPS”?

架构师技术联盟

共 3903字,需浏览 8分钟

 ·

2022-01-01 23:36




什么是FLOPS


FLOPS,是“每秒所执行的浮点运算次数”(floating-point operations per second) 的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。

在这里所谓的“浮点运算”,实际上含括了所有涉及小数的运算。这类运算在某类应用软件中常常出现,而它们也较整数运算花时间。现今大部分的处理器中,都有一个专门用来处理浮点运算的“浮点单元”(FPU)。也因此 FLOPS 所量测的,实际上就是 FPU 的执行速度。对于处理器处理浮点运算来说,而最常用来测量 FLOPS 的基准程序 (benchmark) 之一,就是 Linpack。

例如:算能公司的“基于SOPHON第三代智算芯片 BM1684”芯片。该款芯片FP32 精度算力也达到 2.2 TFlops,INT8算力可高达17.6Tops,在Winograd卷积加速下,INT8算力更提升至35.2 Tops,是一颗低功耗、高性能的SoC芯片。


BM1684还内置了张量计算模块TPU,该TPU模块包含64个NPU运算单元,每个NPU包括16个EU单元,总共有1024个EU运算单元。


1TFlops=1024GFlowps,即1T=1024G。各种FLOPS的含义:


  • 1) 一个MFLOPS(megaFLOPS)等于每秒1百万(=10^6)次的浮点运算;
  • 2) 一个GFLOPS(gigaFLOPS)等于每秒10亿(=10^9)次的浮点运算;
  • 3) 一个TFLOPS(teraFLOPS)等于每秒1万亿(=10^12)次的浮点运算;
  • 4) 一个PFLOPS(petaFLOPS)等于每秒1千亿(=10^15)次的浮点运算。


关于 Linpack

Linpack是国际上使用最广泛的测试高性能计算机系统浮点性能的基准测试。通过对高性能计算机采用高斯消元法求解一元 N次稠密线性代数方程组的测试,评价高性能计算机的浮点计算性能。Linpack的结果按每秒浮点运算次数(flops)表示。

很多人把用 Linpack基准测试出的最高性能指标作为衡量机器性能的标准之一。这个数字可以作为对系统峰值性能的一个修正。通过测试求解不同问题规模的实际得分,我们可以得到达到最佳性能的问题规模,而这些数字与理论峰值性能一起列在 TOP500列表中。


Linpack 测试包括三类,Linpack100、Linpack1000和HPL。Linpack100求解规模为100阶的稠密线性代数方程组,它只允许采用编译 优化选项进行优化,不得更改代码,甚至代码中的注释也不得修改。Linpack1000要求求解1000阶的线性代数方程组,达到指定的精度要求,可以在 不改变计算量的前提下做算法和代码上做优化。HPL即High Performance Linpack,也叫高度并行计算基准测试,它对数组大小N没有限制,求解问题的规模可以改变,除基本算法(计算量)不可改变外,可以采用其它任何优化方 法。前两种测试运行规模较小,已不是很适合现代计算机的发展。

HPL是针对现代并行计算机提出的测试方式。用户在不修改任意测试程序的基础上,可 以调节问题规模大小(矩阵大小)、使用CPU数目、使用各种优化方法等等来执行该测试程序,以获取最佳的性能。HPL采用高斯消元法求解线性方程组。求解 问题规模为N时,浮点运算次数为(2/3 * N^3-2*N^2)。因此,只要给出问题规模N,测得系统计算时间T,峰值=计算量(2/3 * N^3-2*N^2)/计算时间T,测试结果以浮点运算每秒(Flops)给出。HPL测试结果是TOP500排名的重要依据。

计算机计算峰值简介:衡量计算机性能的一个重要指标就是计算峰值或者浮点计算峰值,它是指计算机每秒钟能完成的浮点计算最大次数。包括理论浮点峰值和实测浮点峰值。理论浮点峰值是该计算机理论上能达到的每秒钟能完成浮点 计算最大次数,它主要是由 CPU的主频决定的。计算公式如下: 、理论浮点峰值=CPU主频×CPU每个时钟周期执行浮点运算次数×CPU数量。


AI算力评估为什么不用 Linpack

传统的高性能计算机评测方法和体系与当前人工智能需求的性能并不完全一致。例如,LINPACK是一个目前被广泛采用的高性能计算机双精度浮点运算性能基准评测程序,国际超算Top 500榜单依据LINPACK值来进行排名,而典型的人工智能 应用并不需要双精度浮点数运算。大部分人工智能训练任务以单精度浮点数或半精度浮点数为主,推理以Int8为主。

对大规模人工智能算力来说,制定一个简单有效的指标和测试方法并不是一件容易的事情。首先,大部分单个人工智能训练任务(例如训练一个推荐系统或者图像分类的神经网络模型)达不到全机上百张加速器卡规模的计算需求。很多人工智能应用,即使使用全机规模,其训练时间和准确率也可能没有改进。其次,如果要测试规模变化的人工智能集群计算机,测试程序必须能够规模可变。首先必须明确,什么样的主流人工智能应用是规模可以任意调整的。最后,准确率的判定和计算是大规模人工智能算力评测与传统高性能计算基准评测之间的一个显著区别。是否需要使残差小于给定标准,是否要将准确度计入分数统计,同样是需要明确的问题。

目前,各大企业、高校和相关组织在人工智能性能基准测试领域已经有了很多探索,相继开发了各类基准评测程序,比如谷歌等公司主导的MLPerf,小米公司的MobileAI bench,百度公司的DeepBench,中国人工智能产业发展联盟的AIIA DNN Benchmark,以及在双精度的LINPACK基础上改成混合精度的HPL-AI等。但是这些基准测试方案都不能很好地解决上述问题。根据MLPerf公开发表的数据,MLPerf程序在百张TPU加速卡以上规模测试下扩展性就会出现下滑,在千张TPU加速卡级别到达评测体系的扩展性瓶颈,该评测程序很难评价不同系统在该规模下人工智能算力的差异。


MLPerf是一套衡量机器学习系统性能的权威标准,于2018年由谷歌、哈佛、斯坦福、百度等机构联合发起成立,每年定期公布榜单成绩,它将在标准目标下训练或推理机器学习模型的时间,作为一套系统性能的测量标准。MLPerf训练任务包括图像分类(ResNet50)、目标物体检测(SSD)、目标物体检测(Mask R-CNN)、智能推荐(DLRM)、自然语言处理(BERT)以及强化机器学习(Minigo)等。最新的1.0版本增加了两项新的测试项目:语音识别(RNN-T)和医学影像分割(U-Net3D)。

在Resnet50训练中,硬件及设备平台的选取至关重要。其中磁盘读取性能、CPU运算性能、内存到显存的传输性能以及GPU运算性能对训练速度的影响都比较大:磁盘读取性能直接决定训练数据供给的速度;CPU的性能、CPU到GPU的传输带宽以及GPU的性能共同决定了数据前处理的速度;而训练中的前向推理和反向传播由GPU的性能及GPU之间的数据传输带宽决定。如同工厂流水线上的几名工人,任何一名工人的处理速度跟不上就会导致堆积,成为性能瓶颈,影响最终结果。因此这几个重要部分不能有明显的短板。

此时就会用Resnet50模型进行图片分拣,得出每秒处理图片数量作为一个性能指标。


经典芯片的算力


以下列出几个有代表性硬件的每秒浮点运算次数

GFLOPS

  • Intel Xeon 3.6 GHz: <1.8 GFLOPS

  • Intel Pentium 4 HT 3.6Ghz: 7 GFLOPS

  • Intel Core 2 Duo E4300 14 GFLOPS

  • Intel Core 2 Duo E8400 24 GFLOPS

  • AMD Phenom 9950: 29.05 GFLOPS

  • Intel Core 2 Quad Q8200: 37 GFLOPS

  • Intel Core 2 QX9770: 39.63 GFLOPS

  • AMD Phenom II x4 955: 42.13 GFlopS

  • Intel Core i7-965: 69.23 GFLOPS

  • Intel Core i7-980 XE : 107.6 GFLOPS

  • Intel Core i5-2500K @4.5GHz: 123.35 GFLOPS (w/AVX instruction set)

  • IBM POWER7: 264.96GFLOPS[2]

  • nVIDIA Geforce 8800 Ultra(G80-450 GPU):393.6 GFLOPS

  • nVIDIA Geforce GTX 280(G200-300 GPU):720 GFLOPS

  • AMD Radeon HD 3870(RV670 GPU):497 GFLOPS

  • AMD Radeon HD 4870(RV770 GPU):1008 GFlops

TFLOPS

  • nVIDIA Geforce GTX 580(GF110-375 GPU):2.37 TFLOPS

  • AMD Radeon HD 6990(R900 GPU):4.98 TFLOPS

  • nVIDA Geforce GTX 1070: 6.5 TFLOPS

  • nVIDA Geforce GTX 1080: 9 TFLOPS

  • nVIDA Geforce GTX 1080Ti: 10.8 TFLOPS

  • nIVIDIA Titan Xp : 12.1 TFLOPS

  • ASCI White:12.3TFLOPS

  • AMD Vega Frontier Edition : 13.1 TFLOPS

  • Earth Simulator: 35.61 TFLOPS

  • Blue Gene/L: 135.5 TFLOPS

  • 中国曙光Dawning 5000A: 230 TFLOPS

PFLOPS

  • IBM Roadrunner:1.026 PFLOPS

  • Jaguar:1.75 PFLOPS

  • 天河一号:2.566 PFLOPS

  • Folding@home运算平台:4.769 PFLOPS

  • BOINC运算平台:6.282 PFLOPS (持续增加中)

  • IBM Mira: 8.16 PFLOPS

  • 京:10.51 PFLOPS

  • IBM Sequoia:16.32 PFLOPS

  • Cray Titan:17.59 PFLOPS

  • 天河二号:33.86PFLOPS

  • 神威·太湖之光:125PFLOPS


参考“2020年HPC市场总结和预测报告(附下载)”,2020年HPC市场总结和预测报告。美国在3大超算系统(Aurora、Frontier和EI Capitan)近两年投入预算均超过18亿美元。


 

Aurora:英特尔推迟推出7纳米的Ponte Vecchio GPU,计划在Aurora与英特尔Xeon CUP集成,算力>1EF。


Focus on Frontier (CORAL-2):美国第一个Exascale System (由于Aurora延期),第二代AI系统;


日本Fugaku超算系统在2020年6月TOP500榜单中位居榜首。基于Fujitsu A64 ARMv8.2处理器,无GPU加速,Linpack (HPL) 测试基准达 415.5 petaflops。


中国三个超算原型机(NUDT、Sugon和Sunway)在开发中,其中一个或多个原型可能被选择为充分生产。



欧洲EuroHPC项目于2018年启动,欧盟32个参与国开发欧盟范围内高性能计算系统,选择芬兰卡贾尼,西班牙巴塞罗那和意大利博洛尼亚,投资6.5亿欧元实施150,200Pflops系统,投资1.8亿欧元建设中规模HPC系统(~4Pflops)



此外,在2022-2023将从采购3个大型系统,至少有一个采用欧盟技术(特别是使用EPI处理器);大约在2027年部署首个混合高性能计算/量子基础设施(Post Exascale System)。


更多内容参考2021 HPC China大会因特尔方案资料(下)和2021 HPC China大会因特尔方案资料(上)

2020年HPC市场总结和预测报告




转载申明:转载本号文章请注明作者来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。


推荐阅读

更多架构相关技术知识总结请参考“架构师全店铺技术资料打包”相关电子书(37本技术资料打包汇总详情可通过“阅读原文”获取)。

全店内容持续更新,现下单“全店铺技术资料打包(全)”,后续可享全店内容更新“免费”赠阅,价格仅收198元(原总价350元)。



温馨提示:

扫描二维码关注公众号,点击阅读原文链接获取架构师技术全店资料打包汇总(全)电子书资料详情


浏览 300
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报