经验分享谈谈昇腾 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 资源利用率的讨论,希望我的分享能对你的学习有一点帮助。
【公众号传送】
扫描下方二维码即可关注我的微信公众号【极智视界】,获取更多AI经验分享,让我们用极致+极客的心态来迎接AI !
以上是关于经验分享谈谈昇腾 Ascend310 AI Core 资源利用率的主要内容,如果未能解决你的问题,请参考以下文章