(1)一文懂“AI训练芯片” 测试方法与测试指标

1、前言

1.1 缘起

    随着人工智能应用的崛起,其在不同的硬件芯片平台上的性能也逐渐变成了比较不同硬件和芯片的重要参考。然而,最初由各个芯片厂商自行公布的跑分结果往往很难直接比较,因为其中包括了许多不同的参数,例如模型版本(例如同一个ResNet50可以延伸出许多不同的版本,不同厂商可能会选取对自己芯片最有利的版本来做跑分),模型数字精度(浮点数还是整数)等等,这时候就需要一个统一的测试方法与指标了,规范网络、超参、数据集、服务器、代码等。

1.2 MLPerf

    MLPerf就出现了,该跑分(benchmark)平台是一个由第三方机构(MLCommons)维护的平台,不同的机构则可以上传这些标准模型在自己的硬件芯片上的跑分结果,并且由MLCommons收集并验证后统一公布在网站上。这样一来,不同硬件芯片平台在做AI模型跑分的时候,就可以有一个统一的模型,也可以直接相互比较。

1.3 涵盖范围

    涵盖了图像分类(ResNet)、医学影像分割(U-Net3D)、目标物体检测(SSD)、目标物体检测(Mask R-CNN)、语音识别(RNN-T)、自然语言理解(BERT)、智能推荐(DLRM)以及强化机器学习(Minigo)8类AI应用场景。

1.4 分布式极限性能

    除了单机(单芯片)性能之外,AI模型的训练任务还关心分布式训练的极限性能。随着人工智能模型越来越复杂(例如GPT-3这样的超大型模型出现并成为主流),越来越多的人工智能模型需要能使用分布式计算才能完成训练,单机训练要么速度太慢(例如需要几个月才能完成),或者甚至根本无法装下模型。在分布式训练中,理想情况下训练速度与分布式机器的数量呈线性关系,但是现实中随着分布式机器数量上升,机器之间互相通信的开销越来越大,最终其训练速度会在机器数量增加到一定数量时达到饱和,即再继续增加机器数量也不会显著改善训练速度。这种训练速度的饱和值我们不妨称作极限性能。

     对于某个模型,也有极限性能叫法,指利用假数据(随机数)以对比各芯片,排除CPU/网络等因素的影响。

     同时,也可以通过OP方式体现芯片的峰值算力,证明产品手册数据类型相对应的算力*TFLOPS正确性。

2、测试指标与测试方法

    可以分为两类,一类是单机多卡训练结果,该结果主要突出芯片本身的性能;另一类是多机分布式训练结果,该结果则体现了芯片以及系统对于分布式计算的支持。

2.1 测试指标

    Training是于测量系统将模型训练到目标质量指标的速度;测试指标主要分为三部分:训练跑分(minutes)、训练精度、训练能耗。

    训练时间:训练网络模型达到指定精度所需要的时间。

    训练精度(Quality Target):训练时validate推理精度,看最终精度和精度曲线与baseline是否吻合。 

    训练能耗:训练模型达到指定精度时被测系统的能耗。

    最大吞吐性能(batchsize):指包含单芯片或者多芯片的被测系统在训练过程或前向推理过程(包括预处理,后处理)中可同时处理的最大样本数量。

2.2 测试类型

    分为两种:通用/封闭测试(Closed) 和 专用/开放测试(Open),其中封闭的测试是基于平台固定的测试模型进行测试;开放的测试是用户可以自定义需要测试的模型。

2.3 测试步骤与结果

    训练过程含有以下步骤:

    a)启动训练

    b)训练数据准备与读入

    c)训练次数计数,轮次计数

    d)能耗计数

    e)即时准确率评估(验证集上validate)

    f)日志生成;

    g)训练动态指标记录;

    h)训练结果生成。

    其中步骤c)--> e)循环进行,在准确率大于条件值后,进入f)完成一次训练;每次训练完成后,返回c)。如训练次数已满足要求,则直接运行g)。

    结果准备:训练结果为达到精度指标时,模型训练所用的时间、性能结果、功耗结果。

2.4 测试方法

  • 运行监测

        训练过程应受到监测,记录必要测评数据:

        a)训练时间:不包含训练过程中使用测试集,测量当前模型准确率及准确率门限的比较时间;

        b)训练次数:对同一目标模型的训练过程,重复训练的次数计数;

        c)单次训练时间:记录单次训练过程的总体训练时间(不含每 epoch 后模型准确率计算时间)

        d)单次训练能耗:记录单次训练过程的总体训练能耗(不含每 epoch 后模型准确率计算耗能)

        e)模型一致性:单次训练后,所得模型应与标准模型结构对比,满足一致性要求。

  • 结果要求

        训练结果应含有训练代码,训练日志,元数据和训练结果数据。

  • 训练代码

        在所使用框架下模型构造,训练,优化等全过程的代码实现。

  • 训练日志

        日志为文本 , 并按每个epoch输 出 。每个epoch对应的格式为 :

        “[yyyy:MM:dd HH:mm:ss] – [trial_number] – [epoch_number] – [accuracy]”。其中:

        a)第一项为日志输出时的时间戳;

        b)第二项为训练次数(正整数);

        c)第三项为 epoch 数(正整数);

        d)第四项为当前测试集上的准确率。

  • 训练结果数据

    训练结果数据如下:

        a)平均训练时间:平均训练时间=∑每次训练时间/次数;

        b)平均训练能耗:平均训练能耗=∑每次训练总能耗/次数;

        c)实际准确率:模型训练过程中,在验证集上的准确率;

3、测试标准

     主要规定了计算机视觉、NLP等方向的数据集和Target Quality。各网络精度定义查看下一篇推理芯片测试方法与指标:https://blog.csdn.net/huangblog/article/details/119647214

  

4、展望未来

     人工智能领域的芯片性能通常对于半导体工艺较为敏感,需要最好的工艺才能实现最强的单芯片性能。但是,如前所述,大规模分布式计算的极限性能(以及分布式计算规模较大时的性能)不仅仅取决于单芯片性能,还取决于整个系统设计。因此,即使已知无法使用最先进的工艺实现最强的单芯片性能,大规模分布式计算领域仍然是值得长期投入的领域,因为结合优化的系统设计,有可能可以弥补单芯片性能的短板。

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值