弥合AI大规模落地的巨大缺口!阿里、腾讯、百度等联合推出互联网服务AI基准(5)
人工智能相关组件对服务性能的权重。 人工智能组件显著改变了关键路径。在评估中,在 AI 相关和非 AI 相关组件上花费的时间平均为 34.29 和 49.07 毫秒,第 90 百分位延迟为 74.8 和 135.7 毫秒,第 99 百分位延迟为 152.2 和 466.5 毫秒。这表明,一个工业规模的人工智能应用基准套装是现代互联网服务必不可少的。 AI 的局限性。 在线推理模块需要对训练后的模型进行加载,并进行前向计算得到结果。然而,神经网络模型的深度或大小可能在很大程度上影响推理时间。当模型的大小从 184mb 增加到 253mb,TensorFlow 服务的延迟急剧增加,平均延迟从 30.78 毫秒增加到 125.71 毫秒,第 99 百分位延迟从 149.12 毫秒增加到 5335.12 毫秒。因此,互联网服务架构师必须在服务质量和神经网络模型的深度或大小之间进行权衡。 微结构行为的差异:
5.2 离线训练评估 在本小节中,主要分析了 GPU 的执行效率,并评估了 Titan XP 上端到端 AI 应用程序基准的离线分析器中使用的十个组件基准。 作者通过函数级运行时间分解和执行暂停分析全面分析了 GPU 的运行效率。图 4 显示了每个组件基准的 SM 效率,从 29%(学习排序)到 95%(推荐)不等。 图 4:SM 效率 为了研究影响性能的因素,作者首先进行运行时间分解分析,将基准分解为热点内核或函数,然后根据不同的暂停百分比来计算 GPU 的执行效率。 5.2.1 运行时间分解 作者利用 nvprof 对运行时间进行跟踪,找出占运行时间 80% 以上的热点函数。作者将占用大量运行时间的函数挑选出来,并根据它们的计算逻辑将它们分为几类内核。通过统计,将十个组件基准中最耗时的函数分为六类内核:卷积、通用矩阵乘法(gemm)、批规一化、relu 激活函数、元素操作和梯度计算。每个内核都包含一组解决类似问题的函数。例如,gemm 内核包括单精度或双精度浮点通用矩阵乘法等。图 5 显示了上述六个内核的运行时间分解,即每个内核中所有相关函数的平均值。 图5:10个组件基准的运行时间分解 此外,对于每个内核,作者总结了在十个组件基准中占用大量运行时间的典型函数,如表 7 所示。 表7:每个内核的热点函数 从图 5 中我们发现,学习排序花费了太多时间进行卷积,相应的函数调用是 maxwell_scudnn_128x32_stridedB_splitK_interior_nn,SM 效率为 18.5%,这就是学习排序基准的 SM 效率最低的原因。作者认为,这六个内核及其相应的函数不仅是 CUDA 库优化的优化方向,也是微结构优化的优化方向。 5.2.2 GPU 执行效率分析 (编辑:ASP站长网) |