作者:邵乐峰,ASPENCORE 中国区首席分析师,文章来源:Xilinx赛灵思官微
AI 观察室是 Xilinx 在 2020 年打造的全新 AI 专栏,旨在分享产业洞见、解读前沿技术与热门应用。欢迎所有致力于 AI 研究与应用的有识之士投稿至: China_PR@xilinx.com
本期导读
MLPerf 组织最近发布了最新一轮机器学习性能测试结果,首次直接参加此次测试的“新力量” 赛灵思(Xilinx), 在最新 MLPerf 推断基准测试中取得了“图像分类”最高的性能/峰值(Perf divided by peak TOPS)成绩。TOPS(每秒万亿次运算) 是一个衡量性能效率的指标,意味着在给定 X 个硬件峰值计算量的情况下,赛灵思提供了最高的吞吐量性能。机器学习(ML)是支撑当今人工智能(AI)技术发展的核心算法,性能效率关乎各种 AI 应用的实现和落地。然而,玩家们你方唱罢我登场的机器学习性能之争,纸上公开的数据是否可信,效率高低谁来评判、如何评判?
带着这些问题,Aspencore 首席分析师邵乐峰先生连线赛灵思人工智能高级总监姚颂及人工智能高级经理罗霖先生,希望通过更深度地了解赛灵思此次参加测试的过程及结果,探索衡量机器学习芯片性能的基准及自适应计算平台的前景。
1. 机器学习性能谁来评判?
当今 AI 芯片的评测标准,主流的有国际上的 MLPerf,国内有人工智能产业发展联盟的 AIIA DNN benchmark(人工智能端侧芯片基准测试评估方案)。
MLPerf 是用于测试机器学习(ML)硬件、软件以及服务的训练和推断性能的一套公开、标准化基准,该行业基准测试组织自 2018 年 5 月成立以来,得到了亚马逊、百度、Facebook、谷歌、哈佛大学、英特尔、微软和斯坦福大学等支持,旨在提供一个共同认可的过程,来衡量不同类型的加速器和系统如何快速有效地执行训练过的神经网络。
作为 AI 芯片领域一个重要的基准测试,MLPerf 主要包括训练和推断两方面的性能测试,并正在迅速成为业界衡量 ML 性能的事实标准。尽管目前看仍偏重于训练端,但赛灵思软件和人工智能高级经理罗霖认为未来推断侧性能测试的比例将会不断增加,尤其是 MLPerf 今年在测试中增加了新模式和手机/笔记本电脑这两种新类别。今年的 MLPerf Inference 基准测试(v0.7)的第二个版本,吸引了全球 1,200 多位同行进行评审。
2. 从参测过程看 MLPerf 测试有何基准
此次赛灵思与 Mipsology 合作,参加了严格的“封闭”基准测试。该测试向厂商提供预训练网络和预训练权重,是一个真正的“Close Deviation”同类测评。罗霖解释说,同类测评就像是跳水比赛中和自选动作对应的标准动作,是实打实的基于同样预训练权重模型的对比。
测试系统使用赛灵思 Alveo U250 加速器卡,该卡以 Mipsology 优化的领域专用架构(DSA)为基础。基准测试测量了基于 Alveo 的定制 DSA 在离线模式下以 5,011 图像/秒的速度执行基于 ResNet-50 基准的图像分类任务的效率。ResNet-50 以图像/秒为单位测量图像分类性能。结果,赛灵思实现了最高的性能/峰值(TOPS,每秒万亿次运算)。这是一个衡量性能效率的指标,因此也就意味着,在给定 X 个硬件峰值计算量的情况下,赛灵思提供了最高的吞吐量性能。
此外,值得一提的是,MLPerf 的结果还显示,赛灵思与其在数据手册中公布的性能相比,实现了 100% 的可用 TOPS。而市场上的大多数厂商只能提供其峰值 TOPS 的一小部分,效率最高通常不超过 40%。这一令人印象深刻的结果表明,并非所有数据手册,或者说纸面上的原始峰值 TOPS,都能准确代表实际性能。
从测试看, 还有一个重要的因素值得关注, ML 应用涉及的不仅仅是 AI 处理。它们通常需要 ML 预处理功能和后处理功能,这两者会竞争系统带宽,导致系统级瓶颈。而赛灵思自适应平台的强大之处就在于,它可以通过加速关键型非 AI 功能同时构建应用级数据流流水线,来避免系统瓶颈,从而加速整体应用。同时,赛灵思在 TensorFlow 和 Pytorch 框架的支持上也做了很多工作,使 Tensorflow 和 Pytorch 模型的硬件加速变得更容易。
3. Xilinx 首次直接参测意味着什么?
赛灵思首次直接参与 MLPerf 测试,意味着以 FPGA 为基础的 AI 解决方案已经日趋成熟,在推断应用中达到了业界领先的水平,日渐成为 AI 应用的主流玩家。在本次数据中心类别的封闭分区(Closed Division)参赛厂商中,除了 Nvidia 和 Intel 之外,赛灵思是唯一提交结果的芯片公司。
罗霖表示:"AI 推断是一个快速增长的市场,例如自动驾驶和基于人工智能的视频监控,需要计算机视觉任务,如图像分类和目标检测。这些复杂的计算工作负载需要不同级别的吞吐量、延迟和功率才能高效运行,这就是赛灵思和自适应计算产品的亮点所在。"
由于时间的原因,赛灵思在本次 MLPerf 测试中只提交了 3 项测试结果,除了上文提到的使用 U250 加速卡进行“图像分类”外,还使用 Alveo U280 加速卡进行“目标检测”,以及使用 Versal ACAP 平台进行“图像分类”。罗霖说,U250 参加的测试是在封闭分区所有参赛者采用一样的神经网络模型,一样的预训练权重,一样的预处理和后处理,就像体操比赛里面“标准动作”。相比之下,在开放分区(Open Division)类别中厂商允许使用自定义的方法对模型进行优化,包括重新训练,属于“百花齐放”类型。
但实际上,MLPerf Inference 0.7 版的 8 项测试内容赛灵思平台其实都能支持,在公司内部运行的一些非图像类模型,例如语音识别、自然语言处理等测试中,都有不错的表现。相信今后公司会参加更多类别的测试。
法国初创公司 Mipsology 是赛灵思此次测试的合作伙伴,在利用 FPGA 实现神经网络加速方面颇有建树。罗霖表示,FPGA 是一个开放的、灵活的计算加速平台,各种各样和 Mipsology 一样有能力的合作伙伴,都可以基于赛灵思相关硬件和工具链产品,开发出极具市场竞争力的产品。
4. TOPS 是衡量机器学习性能的唯一指标?
姚颂表示:"机器学习(ML)应用程序不仅仅是 AI 处理,还需要 ML 前后的处理函数,因为这些函数会竞争系统带宽并导致系统级瓶颈。因此,最优秀的 AI 应用实现方案未必是速度最快的,它需要的是在效率最高的同时保持灵活性,必须是量身定制的,能够按需交付性能,不多不少。"
众所周知,神经网络中的前一个计算结果通常都作为后一个计算的输入,AI 推断效率发挥不出来的主要原因是要花很多时间去内存中读取数据。
姚颂列举了两种常见的提升效率模式的做法:
一是通过将计算结果快速存储下来,避免对内存的反复读取和写入;
另一种是对神经网络进行分割处理,只调用与特定区块处理相关的数据,以流水线的方式掩盖掉内存读取的延时。
而具体到赛灵思的做法,罗霖更强调“端到端的优化”对高计算效率的影响。也就是说,首先要关注底层神经网络处理单元微架构的设计,包括计算乘加、数据存储/搬运、流水线调度等等;其次是中间层的工具链,例如在编译的时候是否对模型进行了优化,是否将与模型相关的计算和对存储的操作有效映射到微架构上;最后,再对上层应用进行优化。这一系列操作并非简单的硬件堆砌就能达到,而是要在性能、成本、功耗等多因素之间找到微妙的平衡,不能像孩子们玩的跷跷板,一边的升起,往往意味着另一边的下坠。
罗霖进一步解释说,一些解决方案非常适合 AI 推断,但并不适合整体应用处理。GPU 和 ASIC 往往能提供在纸面上看上去很高的 TOPS,但是 AI 推断性能通常需要与系统 I/O、预处理性能和后处理性能相匹配。如果非 AI 组件不能高效地在单芯片上实现,就需要多芯片解决方案。多芯片方案需要在器件之间传递数据,会降低系统性能并提高功耗。因此,一个能够高效实现整体应用的单器件在实际 AI 推断部署中拥有显著优势。
5. 自适应计算平台有哪些典型应用?
赛灵思 Versal ACAP 自适应计算平台构建于能在制造后依然可以动态重配置的硬件上,包括 FPGA 等经过长期检验的技术,以及赛灵思 AI 引擎等最近的创新。其强大之处在于,不仅可以加速关键的人工智能和非人工智能功能,而且还可以构建应用程序级流媒体管道,以避免系统瓶颈,从而实现整个应用程序的加速。
为了能够更好地理解上述理论,罗霖和姚颂为我们列举了一些典型的应用场景:
自动驾驶
自动驾驶对超低延时是相当看重的,通常要求每一帧的延时不能超过 33 毫秒,这意味着真正能留给感知和识别的时间只有不到 10 毫秒,FPGA 可以做到几毫秒之内的延时,相比之下,GPU 就很难做到。
智能视频分析
“数据路径越复杂对 FPGA 越有利”,罗霖说,在智能视频分析中,不光有 CNN 推断,还包括检测、解码、图像预处理和后处理等许多工作,FPGA 器件能够做很多优化的、定制化的硬件加速。如果换成 GPU,尽管在处理 YOLOV3 模型时效果不错,但添加上其他任务后,就会明显感到“力不从心”,类似现象在语音类、推荐类应用中也很常见。
ResNet-50 Vs YOLOv3
YOLOv3 是用于各类目标检测与识别的神经网络模型,准确率高。支持者认为,ResNet-50 使用的 224×224 基准图像像素现在“几乎无人使用”,而 YOLOv3 使用 608×608,甚至 1440×1440 像素,属于高清处理,这对自动驾驶、机器人、银行安全及零售分析领域的客户来说十分重要。
姚颂不否认 YOLOv3 是在准确率和计算性能上取得不错平衡的模型,但他不认为这样就可以取代 ResNet-50 标准,例如在医疗影像、工业图像检测等领域就使用了包括 SSB 在内的其它模型。更重要的是,ResNet-50 的整体架构非常高效,很多互联网企业的神经网络都基于 ResNet-50 模块搭建。所以,“我们不应该只把眼光聚焦在 YOLOv3 模型上,一颗 AI 芯片,至少应该把 CNN 推断或者类似的神经网络架构都支持起来,否则人家会认为你只支持 YOLOv3 模型。”他说。