经验分享谈谈昇腾 Ascend310 AI Core 资源利用率

Posted 极智视界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经验分享谈谈昇腾 Ascend310 AI Core 资源利用率相关的知识,希望对你有一定的参考价值。

欢迎关注我的公众号 [极智视界],获取我的更多学习笔记

  大家好,我是极智视界,本文主要谈谈昇腾 Ascend310 AI Core 资源利用率,概念类似于上篇《【经验分享】谈谈 GPU 利用率》中提到的 Nvidia GPU 利用率。

  在昇腾 Ascend310 上使用 npu-smi info watch -i 1 -c 0 命令可以查看卡 1 的 device 0 的信息,涉及到利用率的内部硬件是 AI Core、AI CPU、 控制 CPU、 Memory。

  一张推理卡内可能有多个 AI Core、多个 AI CPU,其中 AI Core、AI CPU、控制 CPU 的布局如下图:

  这里要讲的 AI Core 主要包含 CUBE 矩阵运算单元Vector 矢量运算单元Scalar 标量运算单元,其中不同类型指令可以流水线并行执行,拿 CUBE 和 Vector 来说,示意如下:

  下面说明指令 cycle 问题:

  使用 profiling 中的 sample-based 采集 AI Core 资源利用率信息,可以得到 AI Core Metrics,每列数据的含义如上表所示,下表为测试 resnet50 网络,在输入为 [32, 3, 224, 224] 时得到的比率信息:

  上表中,五种类型指令的 Ratio 之和不满足小于等于 1 的条件,这是因为不同类型的指令可以流水线并行,这样同一个 cycle 内可以有多条指令 (也就是相当于超标量处理器的 n 倍宽度的流水线),示意如下:

  从上图可知,若抛开流水线并行而造成相加和大于 1 的情况,猜测 AI Core 资源利用率的一种可能定义为: AI Core 利用率 = Cube 利用率 + Vector 利用率 + Scalar 利用率 = Mac Ratio + Vec Ratio + Scalar Ratio

  另一种假设则是根据流水线的定义为:假设 AI Core 利用率采样频率为 f Hz,P(con) 为判别函数(con 满足则为1,否则为 0),iswork(a,t) 表示在 t 时刻 a 部件是否工作 (若工作,则值为1,否则为0),这样定义后可以得到利用率表达:

  而通俗来说,第二种关于 AI Core 资源利用率的定义就是在采样时间内,AI Core 使用时间 和 采样时间 的比例。


  以上分享了关于昇腾 Ascend310 AI Core 资源利用率的讨论,希望我的分享能对你的学习有一点帮助。


 【公众号传送】

《【经验分享】谈谈昇腾 Ascend310 AI Core 资源利用率》


扫描下方二维码即可关注我的微信公众号【极智视界】,获取更多AI经验分享,让我们用极致+极客的心态来迎接AI !

以上是关于经验分享谈谈昇腾 Ascend310 AI Core 资源利用率的主要内容,如果未能解决你的问题,请参考以下文章

昇腾Ascend 随记 —— 昇腾 AI 的基本架构

2023 · CANN训练营第一季昇腾AI入门Pytorch

极智AI | 谈谈昇腾 CANN AIPP

极智AI | 谈谈昇腾CANN量化

极智AI | 谈谈昇腾 auto tune

极智AI | 三谈昇腾 auto tune