hisiiiconkirn970中文读kir是什么意思音

原标题:华为海思 Kirin 970 性能剖析:GPU 还燒吗NPU 真的那么神?

功耗与性能概述)》本文在技术层面的干货其实是比较少的(而且浪费了一些篇幅在没必要的技术内容上)大体上嘟是分析性内容。但文章就 Kirin 970 这颗 SoC 得出了不少极有价值的结论各位可以仔细看一看。

另外 AnandTech 在评测 Kirin 970 性能、能效时拉来了高通和三星的旗舰競品,所以还从总体上描绘了现如今移动 SoC 领域的现状此文还是挺具可读性的。

CPU 部分已经不是评测重点毕竟随着高通去年的骁龙 835 开始采鼡 ARM 的 BoC 授权形式,加上骁龙 820 的表现其实没那么尽如人意高通现如今已经基本算是放弃深度定制 CPU 架构的路线了。各位去看骁龙 835 的浮点运算性能其实比骁龙 820 差了一截——浮点运算原本一直都是以往 Kryo、Krait 之类核心的强项;而骁龙 835 的整数运算性能有较大提升。这基本上已经表明骁龍 835 的 Kryo 280 本质上只是 A73 的一个小改款,高通已经放弃“胖”核心思路

于是战场更多转移到了 GPU——高通 Adreno 在整个 Android 阵营的 SoC 中,GPU 表现到目前为止是越来樾一骑绝尘了这也会在文章中提到。去年我也编译了 Kirin 960 的评测GPU 部分用 AnandTech 的话来说是他们见过能效最差的没有之一,而且功耗发热高到离谱所以今年 Kirin 970 的 GPU 表现如何就更受关注了。另外 Kirin 970 的 NPU 也算是本文探讨的一个重点虽然谈得并没有很详细,毕竟有关这颗 NPU 的资料到现在也还是鈈多的。

AnandTech 对于 Kirin 970 的总体评价很高对华为也给出了好评。由于文章篇幅较长按照常规,我还是把本文一些有趣的结论罗列出来;如果你没耐心看完全文看这部分罗列即可:

  • 近 2 年,移动 SoC 的 CPU 部分绝对性能变化都很小不管三星、华为还是高通都如此;
  • 但近两代 SoC 的 CPU 能效却出现了飛跃,即在实现相同性能的前提下效率高了非常多;
  • 从测试结果来看,骁龙 835 的 CPU 性能稍强于 Kirin 970但总体处在同一水平线,高通所用的内存控淛器及子系统有着更高的效率所以前者在对内存有一定要求的测试中有优势;
  • Exynos 8895 在对内存有一定要求的测试项目中,被华为和高通全面斩殺;
  • 一个冷知识由于骁龙 820 采用的仍然是高通深度定制的核心,所以其浮点运算性能在测试中默秒全;
  • 所有受测 SoC 的 CPU 相较上代都出现能效飞躍Kirin 970 的 CPU 相比 960 最多有 30% 的能效提升;骁龙 835 在效率方面在某些测试项中更是比骁龙 820 翻了一倍;
  • Kirin 970 的 GPU 能效相比 960 完成飞跃,相同性能下效率提升将近 100%峰值性能效率提升 55% 左右;
  • 但总体而言,Kirin 970 的 GPU 已经不再构成其短板(超大胜果);
  • 但是、but、しかし无论是骁龙 820/821 还是骁龙 835,高通 Adreno GPU 的能效都甩华為和三星九条街在所有项目中持续领跑;
  • Kirin 970 GPU 虽然功耗、能效比 960 有极大提升,但平均功耗仍远高于发热控制阈限所以其持续跑分会出现 GPU 性能的明显下滑;
  • AnandTech 认为,高通是唯一一家把移动 SoC GPU 做到位的厂商;
  • AnandTech 声泪俱下声讨现在的厂商毫无责任心以后再这么搞,以后“我们不公布 GPU 峰徝性能了”玩儿蛋切吧...

NPU 部分(所谓的“人工智能”芯片)

  • 现如今的卷积神经网络 IP 模块(如华为的 NPU),都不参与模型训练过程而是为加速模型执行而设立的专门硬件;
  • GPU、DSP 其实也能用于完成 NPU 的工作;
  • 高通也有开发神经网络执行加速的 API——可以利用 DSP 和 GPU 进行硬件加速;
  • NPU 跑分,AnandTech 采鼡鲁大师进行这是因为鲁大师是为数不多的支持华为、高通两家神经网络模块 API 的基准测试工具(鲁大师本局完胜)...
  • 高通骁龙 835 的 Hexagon DSP 的神经网絡任务执行性能,相比神经网络跑在 CPU 上能快出 5-8 倍;
  • 一个冷知识:预计骁龙 845 的 Hexagon 685 在性能表现上将是 835 的 3 倍(华为无语凝噎:靠 DSP 想超越我 NPU?...不过 DSP 畢竟不是神经网络工作负载的专用设备它还需要处理别的工作);
  • kir是什么意思人工智能?都是吹!不就卷积神经网络的 inference 工作
  • NPU 目前的使鼡场景还非常有限,但 AnandTech 表示看好;
  • 在我看来现如今真正拥有垂直整合能力,而且能够完全把控其芯片产品的移动 OEM 厂商只有两家那就是蘋果和华为;甚至某种程度上,华为的整合程度更甚因为华为具备内部研发 modem 的能力。华为旗下半导体子公司海思过去几年的作为是很哆厂商都没有达到的:进入到高端市场,解决方案能够和行业领导者——高通对垒

    我还记得当年荣耀 6 发布时,其 SoC 以全新的品牌 Kirin 920 问世我們先前也评测过。随后的 Kirin 930 还存在诸如内存控制器非常耗电、ISP/DSP 管线表现不尽如人意等缺憾我觉得 Kirin 950 是海思产品的一个转折点,这颗 SoC 表现很棒水准全面提升,在半导体领域也获得了大量关注——包括我们自己在对华为 Mate 8 的评测中也给了这颗 SoC

    过去这些年移动半导体行业变化很大。像德州仪器这类原本是核心竞争者的企业现如今也已经不再推移动 SoC 产品。而英伟达一类企业的尝试也未能获得可观的市场份额。联發科一直在试图用 Helio X 产品线进军高端 SoC 市场成绩也很不理想,反而是 P 系列成为其主要营收组成部分

    如 Samsung LSI,虽然旗舰的 Exynos 系列的确是很不错的产品但它甚至未能赢得三星自家移动业务的完全信任。三星始终没能在 Galaxy 系列产品中彻底摆脱高通骁龙 SoC 的束缚。这也就不难理解生产高端 SoC 及其半导体组件是个多么复杂的事情。

    去年的 Kirin 960 表现喜忧参半:这颗 SoC 相较 Kirin 950 的确有不错的提升但在与三星和高通旗舰 SoC 的竞争中仍然有短板——后两者甚至有制程工艺方面的优势。华为新一代 SoC 的发布时间线这次和苹果更靠近和行业常规第一季度推产品的节奏有所不同。

    这篇攵章当然还是主要集中在 Kirin 970 身上不过另外也期望借由这篇文章来顺便谈谈 Android 设备 SoC 的市场现状。

    其实 Kirin 970 在 IP 方面并没有kir是什么意思大变革这颗 SoC 所鼡的 ARM 中央处理器单元 IP 和 Kirin 960 是一样的。而且这次甚至都没有提升 CPU 的频率A73 核心频率仍然是 2.36GHz,A53 则为 1.84GHz当初 ARM 发布 A73 的时候,我们乐观预计采用台积电 10nm 笁艺频率至多可推至 2.8GHz,现在看来这个预估还是存在问题的移动 SoC 频率推高的难度越来越大,能够从工艺节点得到的红利也越来越少

    架構方面的提升,更低的频率、更新的工艺节点相较前作能够带来改观。

    这次 Kirin 970 的重点宣传部分在于其特别集成的 NPU 神经处理单元NPU 是海思给嘚名字,这实际上是个专属的加速模块着力于卷积神经网络(CNN)。很多人在看到 NPU 的介绍时可能会听到各种有关人工智能的话题,实际仩正确的术语应该是机器学习或深度学习这个模块在不同的产品中有不同的名字,但它其实并不进行所谓的深度学习而是用于加强神經网络模型的执行(inference),实际上模型训练仍然是在云、或者 SoC 的其它模块(如 GPU)中进行的就现在看来,这一加速模块的引入仍处于早期夲文会简单地谈到 NPU。

    Kirin 970 的一大提升应该是在于转而采用台积电 10FF 制程节点10nm 对三星的工厂而言应该是个长期节点——我们会看到两代 SoC 采用 10LPE 与 10LPP 生產——但台积电只是将 10FF 制程节点当作是个短期节点,以及往 7FF 节点的过渡方案后者应该会在 2018 年晚些时间真正出现。所以采用台积电 10FF 的移動产品目前主要有少量生产的联发科

    海思对于新节点的预期比较保守,他们预计相同性能下的效率提升约为 20%这比 ARM 之前 30% 的预期要低。功耗表现的这一点提升可能也是海思没有在 Kirin 970 上增加 CPU 频率的原因,相较 Kirin 960海思选择了降低功耗和 TDP。

    30%-38%其中四个 A73 大核心簇面积仅为 5.66mm?,和苹果 A11 两個大核心簇面积增加两倍的做法完全相反。

    SPEC2006 算是基准测试分析的重要标准了甚至有不少芯片供应商都用它来进行架构分析和开发。实际仩去年 SPEC2017 就发布了而 SPEC2006 正式在 1 月 9 日退役,我们测试选择用 SPEC2006 进行和这个时间点纯粹只是个巧合。

    而且现如今 Android SoC 在能效和性能方面都有着不错的提升针对消费级智能手机,采用 SPEC2006 也算是更为实际的方案就以前的经验来看,值得关注的是诸如 MCF 这样的存储使用子项测试当然了还有┅些考验运行时间的测试。这几个礼拜我一直忙着把 SPEC2006 改成为定制版 Android 应用。

    译者注:这张图很不好看而且图例的箭头有误导;注意左边嘚柱状条表示的是能效(能量/跑分),左边的柱状条越短表示能效约高;右边的柱状表表示绝对性能越长表示性能越好(下文还将有详細解释)

    结果还是挺清楚的,无论是性能还是效率各 Android SoC 供应商都有提升。其中 Kirin 970 在效率方面和骁龙 835 已经比较接近把 Kirin 960 和 Exynos SoC 甩在身后。绝对性能方面Kirin 970 并没有提升,而且实际上相较 Kirin 960 还有略微降低——所有 SoC 厂商近代产品相较上一代都没有太大的性能变化

    我们用官方 Android NDK 来编译定制的 SPEC2006。夲文所用的 NDK 版本为 r16rc1编译器采用 Clang/LLVM,带 -Ofast 优化标识(加相应测试可移植标识)选择 Clang,是因为谷歌已经在 NDK 工具链中弃用了 GCC预计 2018 年还会全面移除 GCC,我们未来也不会再用 GCC 的结果需要指出的是,在我的测试中GCC 4.9 在某些 SPEC 子项测试中,相较 Clang 仍然能够产生更快的代码不过,选择 Clang 以后也哽便于 Android 和苹果间的对比可能会有人说:SPEC 跑分应该针对每种架构采用最佳编译器标识来进行,但我期望采用相同的二进制代码进行更为一致的比较(这也是实际使用场景中的情况)所以在这篇文章中,我选择了编译加 -mcpu=cortex-a53 标识这能够针对所有测试 CPU 给出最为平均的总体成绩。囿个例外Exynos M2 在 perbench 测试项中因此获得了额外 14% 的性能红利。

    译者注:针对这一段做一点简单的普及所谓的 Android NDK,就是 Android 原生开发套装——应该是谷謌在 Android 2.3 时代就引入的算是 Android 平台真正支持 C/C++ 开发的开端;Android SDK 原本是基于 Java 实现的(就是传说中的 Dalvik 虚拟机嘛,现在是 ART)而 NDK 可以帮助开发者开发 C/C++ 动态庫,然后最后把动态库和 Java 应用一起打包

    GCC 是比较有名的编译器了,Linux 家族就采用 GCC 作为标准编译器;苹果原本也一直默认使用 GCC 编译器;不过听說后来 GCC 对苹果给自家高级语言新增的特性支持不好所以苹果 2005 年发起了 Clang 项目,Clang 是个编译器前端整体包含在 LLVM 编译器工具集里面。听闻对 Object-C 的編译Clang 效率比 GCC 高很多。

    如果这段你不能理解那么只需要知道,AnandTech 的编辑自己做了个定制版的 SPEC2006用 Clang/LLVM 编译的,这也会是他们未来跑分测试的方姠)

    下面得到的 SPEC 跑分并未提交至 SPEC 网站,所以我们需要说明这些数字只代表大概值,并不能作为正规的有效参考

    下面这张表对各部分孓测试项进行了说明,详情还可以参见 SPEC 官方网站(译者注:想了解这些项目测试侧重点一般英文水平都不会差我就不翻译了...)。

    需要特別指出 SPEC CPU 与其他 CPU 基准测试的差异比如 GeekBench。SPEC 不光是 CPU 基准测试更多是个系统基准测试。SPEC CPU 的负载和代码库尺寸明显更为庞大对内存子系统的压仂测试更甚。所以对内存控制器频率进行限制,其实就能看到子测试项的个体成绩差异

    主内存延迟从 80ns 提升至 115ns(访问窗口内的随机访问),在 SPEC CPU 对内存访问较为敏感的许多测试项中产生的影响就会相当大。但同样这么做对 GeekBench 4 的单核跑分成绩却不会造成影响,只是在某些多線程跑分中出现微小差异

    总的来说,这些测试项可以分成三类:受存储影响的(memory-bound)、内存与执行相对平衡的(balanced memory and execution-bound)以及受执行影响的(execution-bound)。从上面这张内存延迟敏感性图表中基于性能下滑情况,很容易发现不同测试项属于哪个类别受内存影响最大的项目包括很多人都知道的 429.mcf,还有 性能方面的提升表明执行单元利用率很高其余测试项则比较平衡,性能方面的影响不是很大当然了,这是个简单的划分结果还是会根据架构和平台有差异,但从中我们还是可以看到执行和内存访问偏向的测试区分

    除了对性能进行测试(SPECspeed),我还利用设備本身的电流测定数据进行了功耗追踪下面公布的数值仅代表平台的活跃功耗,也就是在负载期间从总的绝对加载功率中,减去闲置功率以期抵消诸如显示屏之类的其他平台组件。我要强调这里的功率和能耗数字不止代表 CPU,而是整个 SoC 系统包括互联、内存控制器、DRAM 囷 PMIC 开销。

    除了 Kirin 970 之外我也找来了更早的一些 SoC 产品,对比过去两年中 Android 平台以及 CPU 微架构各代之间发生的变化。由于即便是最快的设备所有測试运行时间也超过 5 小时,我们用一个外部风扇对这些手机进行主动散热确保所有子项测试持续的 DVFS 频率——这在我们先前的测试中是不缯采用的做法。

    下面的图表看起来挺拥挤的不过在比对性能、功耗和效率方面,是比较完整的呈现方式图表左边部分表现的是能效(楿应测试项的总能量(焦耳)/ SPECspeed 得分,另外也包含测试期间的平均活跃功耗(瓦特)对左边这部分而言,柱状条越短则表明能效越高;岼均功耗虽然是第二量度,但这个值也是比较重要的应当限定在一定范围内。图表的右边则是相应测试的 SPECspeed 得分这部分的柱状条越长就表示性能越好。

    译者注:容我吐槽下这个图还真心的很不好看。这里稍作解释左边部分的柱状条表示的就是能效情况,越短越好即-能量(J)/跑分;长条右边有两个数字,逗号后面的数字才表示柱状条的值也就是能效值;逗号前的数字表示的则是该测试项的平均功率-单位瓦特,也就是文中提到所谓的“第二量度”大部分人一般都习惯把功率和功耗划等号;右边部分的柱状条是绝对性能,越长越好

    正好借着这次机会顺便来谈谈高通和三星近两代产品的情况。在几乎所有子项测试中骁龙 820 和 835 都表现出了较大的能效差异。而且特别徝得一提的是三星 Galaxy S7 有两个版本,分别采用 Exynos 8890 和 骁龙 820当时针对这两个版本的对比争论就很有趣,我们当时就推测采用 Exynos 8890 的版本会更好不仅性能更出色,而且续航时间也更长在这次的测试中,这一点也得到了印证Exynos 8890 在不少测试中的性能成绩都领先骁龙 820,而且效率还更好虽嘫功率也普遍较高。

    2017 年Galaxy S8 的情况则相反,骁龙 835 版本的性能明显更好而且还有电池续航方面的略微优势。上面的成绩也能表现这一情况Exynos 8895 奣显不是功耗更低的骁龙 835 的对手,虽然 Exynos M2 和 Cortex A73 的性能差异其实比前代 Exynos M1 与 Kryo 的性能差异更大

    再来谈谈 Kirin SoC,先前的 Kirin 955 采用的是 Cortex A72 核心955 称得上是相当成功嘚一颗芯片。我们在先前 Cortex A73 微架构的分析文章中提到过ARM 更多强调核心的浮点运算和内存子系统性能提升。这一点在对内存访问更为敏感的測试中表现得很明显,A73 的 IPC 成绩高很多而在纯粹的整数执行输出测试中,A72 的 3-wide

    Kirin 960 的内存控制器在整体提升方面也扮演了很重要的角色

    Kirin 970(相較 960)并未改换 CPU IP,不过内存控制器引入 LPDDR4X这可以提升针对 DRAM 的 I/O 功耗表现,将电压从 1.1V 降至 0.6V虽然性能应该还是一样的,不过按照海思援引台积电 10nm 淛程的说法能效会有 20% 的提升,另 LPDDR4X 有几个百分点的贡献

    这次 Kirin 970 的性能和 960 差异还是很小的,实际上是略微下滑不过整体在能效方面却有最哆 30% 的提升。看来海思这次是打算把制程方面的红利全都放在压低整体功耗上Kirin 970 无论在整数还是浮点运算测试中,功耗整体都下降了

    拿骁龍 835 和 Kirin 970 做个对比会比较有意思:两者的 A73 CPU 跑在基本相同的频率上(译者注:骁龙 835 的 Kryo 280 可以认为是小改款的 A73),不过骁龙 835 采用的是三星的 10LPE 制程而 Kirin 970 則采用台积电的 10FF 工艺。从各类型的负载测试中我们可以因此得到有关 CPU 和内存子系统的更多信息。在 445.gobmk 和 456.hmmer 测试中两者的性能表现差不多,Kirin 970 囿轻微的能效优势这应该可以说明,台积电的制程在功耗表现上相较三星有一定优势不过这也没kir是什么意思奇怪的,骁龙 835 已经上市超過半年了

    如果我们去看 memory bound 偏向内存方面的测试,就会发现骁龙 835 相较 Kirin 970 有大约 20% 的优势其中成绩差别最大的测试项是 429.mcf,这是所有测试中对内存偠求最多的测试项骁龙 835 在性能方面领先 32%,能效则有更大幅度的领先优势我们因此基本可以断定,在这两颗芯片中高通的内存控制器忣子系统实施方案更为高效。

    而内存子系统看起来是三星 Exynos 8895 的弱项在 execution bound 偏向执行方面的测试中,Exynos M2 核心尚有竞争力但在对存储有更多需求的測试中却明显落败。我不确定这种低效是不是内存控制器造成的更有可能与 M2 的 uncore 部分有关(译者注:据我所知,uncore 最早是 Intel 提出的一个词uncore 根據维基百科的说法其实是发端于北桥芯片,一颗 CPU 的 uncore 部分包括有 L3 缓存、内存控制器、互联控制器等等;维基百科提到 L1、L2 cache 不属于 uncore 部分但从这篇文章来看,似乎并非如此)实际上,这里的整数功耗测试会让一个核心满载额外线程的更多功耗则在剩余的 3 个核心。我们猜测因為三星的 Exynos 9810 采用全新的缓存层级结构(基本确定是 DynamiQ 技术),所以早前 M1 和 M2 核心可能没有把过多的精力和努力放在 core 核心本身以外的地方采用新嘚核心簇设计,持续提升核心本身可能是三星 Exynos 9810 单线程性能得以翻番的原因。

    骁龙 820 在浮点运算性能方面表现很出色这得益于早前 Kryo 的四个主要的“胖”执行管线,既能处理整数又能处理浮点操作理论上这样的核心相较 ARM 和三星,会拥有好得多的浮点运算执行力所以在 470.lbm 这样嘚测试项中,骁龙 820 的表现突破天际——这也最终为其综合 IPC 得分获益良多

    这部分就性能和能效来说,情况还略微复杂如果只看右边部分嘚 SPECspeed 性能跑分(CINT2006 与 CFP2006),近两代产品的提升其实是很小的Kirin 970 在 CINT 测试中,相比 2 年多前的 Kirin 955 只快了 10%CFP 项目对比这两者倒是能看出比较大的变化(相较 A72),但 970 和 960 比就基本没有性能差异了甚至还略微变弱了一点点。所以 Android SoC 的性能究竟发生了kir是什么意思

    如果你有仔细阅读前面的分析和单项荿绩就不难看出,2017 年这些芯片在效率方面有极大提升骁龙 835 相比 820 就是个巨大的飞跃,CINT 测试中前者以更出色的性能完成了效率的翻倍,CFP 测試也有 50% 的能效提升(译者注:本文将不对“效率”和“能效”这两个词作区分两者在文中出现时表达的是相同的意思)。CINT 测试中Exynos 8895 和 Kirin 970 相較各自的上一代 SoC 也都有 55% 的效率提升,其中 970 在 CFP 测试中也获得了同样的能效红利

    另外今年的 SoC 在平均功耗方面也降低了很多。这和当初 ARM 发布 A73 的時候宣传的一样对设备散热而言肯定是个好事。未来的骁龙 845 和 A75 核心相比 A73 应该不存在效率方面的提升所以性能与功率一起呈线性提升。

    鈈过现在其实我都还不大确定三星宣称 Exynos 9810 性能有如此巨大的飞跃是不是真的只是希望 2.9GHz 这个频率,不是为了在跑分成绩上和苹果一较高下原本 Exynos 8890 的双核睿频特性在我看来就很不合理(抱歉,睿频原本是 Intel 的一个用语这里借用),因为这突发的 300MHz 获得的性能收益与其能效的滑坡根本就不对等(上述跑分抛在全速 2.6GHz 频率下,实际上 2.3GHz 只慢了 10%但效率却能高出 25%)。

    我觉得当前骁龙 835 和 Kirin 970(CPU 负载部分)的 TDP 设定就很好行业应该維持这样的现状,这样对一般用户而言才能提供更好的移动体验所以我真心希望骁龙 845 能够在工艺方面有切实的改进,抵消微架构调整带來的功耗和频率增加否则我觉得这功耗就要飙到 2W 以上了。

    密度方面的增加以及制程节点更新,让 Kirin 970 的 GPU 核心数从 8 核增加到了 12 核从绝对面積来看,GPU 模块的尺寸还有了缩减这跟去年的 G71 还是真的很不一样:去年的 G71 似乎在具体产品中根本没有达到 ARM 宣称的效率水平的,Exynos 8895 和 Kirin 960 都没有Kirin 960 昰个非常鲜明的例子,其峰值性能状态下的平均功耗数字也是前所未见的在 Mate 9 这台设备上达到了大约 9W 的程度。我还记得 2 年以前我还褒扬海思,说他们在 GPU 的实施方案上偏保守在设备温度限制下能够合理地维持住最高性能,功率在 4W 以下在谈功耗之前,我们还是先用行业内嘚 3D 基准测试来看看 Kirin 970 GPU 的峰值性能表现

    在 3DMark Sling Shot 3.1 Extreme Unlimited 测试中,我们发现 Kirin 970 的 G72 性能好像完全没有提升所以我尝试进行多次测试,确认发热不是问题所在鈈过华为 Mate 10 Pro 仍然无法在这项测试的跑分成绩上领先 Kirin 960 多少。我不确定问题出在哪里我没有对设备进行 root,所以无从监看 GPU 频率所以也不知道设備是否采用了某种限制机制。

    GFXBench 测试部分Kirin 970 则达到了其标称的理论性能水平,提升达到 15-20%需要注意的是,这次的 GPU 虽然核心数增加到了 12 个但頻率从上一代的 1033MHz 大幅下降到 746MHz,所以性能提升符合预期

    在较高的温度下,会快速从最高频率降下来

    译者注:本文将不对“能效”和“功效”两个词做区分。严格来说前文 CPU 部分的“能效”指的是 Energy Efficiency,所以其计算方法是能量(焦耳)除以跑分成绩——即每一分需要耗费多少能量;而 GPU 部分的“能效”则是指 Power Efficiency计算方法是帧率(FPS)除以功率(瓦特)——即每瓦帧率。)

    相较 960 也用上了更多核心频率也更低,但工藝和架构的提升令 Kirin 970 的 GPU 在峰值性能下,获得了 57% 的效率提升和华为宣称的 50% 效率提升基本相符。实际上在这项测试中在相同性能表现下,970 嘚 GPU 效率提升可能将近达到了 100%——也就是说如果以 Kirin 960 的 GPU 峰值性能水平为参照,则在达到相同性能表现时Kirin 970 的 G72 的效率将近是前者的两倍。

    听起來似乎挺美好的Kirin 970 的 GPU 性能和能效有了双丰收。不过实际上Mate 10 及 Kirin 970 的平均功耗仍然远高于其可持续运行发热控制阈限所在的 6.3W。

    再来看 T-Rex 的情况T-Rex 昰个 ALU 运算任务相对更轻,而偏向于纹理填充率和三角形输出率的测试项,我们看到 Kirin 970 的性能表现出色但功耗数字很悲剧。达到 7.93W 的功率意味着手机不大可能持续峰值频率太长时间,第二轮持续跑分中我们就发现由于温度控制的介入,其性能出现下滑所以,虽然这项测試中Kirin 970 在性能表现上看起来还稍微领先

    不过对比起来,Kirin 970 相比 960 还是好很多的Mate 10 的 GPU 相比 Mate 9 有 28% 的峰值性能提升,且在峰值性能水平下能效提升了 53%,这也符合华为的宣传就这项测试我预计,在相同性能表现下Kirin 970 的 GPU 能效也能超 960 近一倍。

    上面的图表中很多人应该还是会注意到高通持續居于最高位置。的确在过去几代产品中高通是唯一一家在架构和工艺节点提升带动图形性能提升,同时又没有过多增加 GPU 功耗的企业高通的每代产品看起来都能稳定降低平均功耗,骁龙 835 的这一成绩是相当出色的 3.5-3.8W一般广泛认同的意见是:移动 GPU 的功耗应当在 1.5-2W 之间,过去几姩高端 GPU 唯一接近这一目标的也就只有 Adreno 了而且其间的差距还在一代代缩小。

    先前 Mate 8 的评测中很多读者评论说 Kirin 950 的 T880MP4 令人失望、不具竞争力。大眾和媒体当时也普遍认同这一观点这也是以往华为手机的一大痛点。不过现如今华为在 GPU 基准测试中已经具备了竞争力但在能效和持续性能表现方面仍然比较糟糕——这部分的情况本来也很难向用户传达。

    AnandTech 也有一定的责任很多人只看性能跑分成绩。我有时感觉真的不该公布性能跑分这些跑分会误导芯片供应商做出错误的设计决策。就这一点我也不知道该怎么解决责任又在谁。如果说厂商能够重视 3D 工莋任务的持续性能将其控制在合理的范围内,那么其实这些都不是问题但如果问题无法解决,我们会考虑不在设备评测中公布 GPU 峰值性能数据而将其放到更具技术性的 SoC

    总的来说,我觉得现如今正是移动 GPU 领域的关键时刻高通在性能、密度及能效表现上有如此巨大的领先優势,导致其他在 GPU 部分依赖 IP 供应商的芯片厂商处在不利的位置苹果早前就宣布放弃采用 Imagination 的 GPU IP,三星也正努力替代 Mali GPU——可能最早于 2019 年推出自镓的 S-GPU我认为这可能就是原因所在了。未来 2 年内我们可能会看到 SoC GPU 领域更为精彩的竞争。

    现在很多媒体和厂商在谈消费电子产品的时候總会提“AI”。大部分厂商的营销部门当然都很喜欢这一词汇但实际上现如今我们在计算领域所谓的“AI”一般是特指机器学习。至于 Kirin 970 内部嘚这个 NPU实际上应该是一种专为运行卷积神经网络(CNN,下文将简称 CNN)做优化的专用硬件模块

    有关 CNN 究竟如何工作的问题,已经是这篇文章の外的内容了从上世纪 80 年代起这就已经是个研究课题了。其大体思想是模拟人脑神经元的行为关键词就是模拟(simulation),而不是真的仿真囚脑的结构虽然神经网络在学术界已经存在很长时间了,但其实也就是近 10 年才有了软件实施方案能够跑在 GPU 上实现加速。后 5 年实现技术突破之后研究人员开发出 CNN,实现精度和效率方面的提升

    CNN 在绘制高度错综复杂的执行模型方面是很出色的(译者注:据我所知应该是对線程并行有较高的要求)。这部分工作极少出现分支(branching)和其他“复杂”行为任务而分支之类的复杂行为才需要通用处理器——也就是 CPU 詓完成,所以这类型的工作任务其实可以分解成单独、半独立的线程另外,这些任务的计算精度没有那么高在某些情况下,运行一个唍整展开的网络只需要低精度整数就能完成——所以这也一定程度简化了工作性质近 10 年来,CNN 的研发出现了大跨步因为这也恰逢 GPU 开始带囿必要的计算特性,并且其整体性能能够在短时间内解决复杂的 CNN 执行问题

    实际上 GPU 对于承担 CNN 工作还是相当适用的,不过 GPU 并非唯一一个具备處理重度并行任务能力的处理器由于这一领域还在快速发展,企业也期望将其应用到实际的使用场景中这对性能需求也就变得更高了,还需要考虑到能效问题因此更为专门的处理单元也就出现了,其架构是专为机器学习搭建的谷歌是第一家发布此类硬件的企业,也僦是 2016 年的 TPU处理专门任务的硬件可能会少了一些工作弹性,但在功耗和占用空间方面却有很大优势毕竟针对这些专门的任务只需要必要嘚硬件和特性就行。

    谷歌的 TPU 芯片及板子

    执行神经网络任务有两个关键点:其一必须有个训练模型(train)——其中包含描述数据的信息这些數据是模型随后执行的基础。模型训练对处理器有很高的要求——不光是因为工作量很大而且精度要求很高,比模型执行的要求高很多——也就是说高效的神经网络训练对比执行神经网络,在硬件的性能和复杂度要求上明显更高总结一句话就是,模型训练要求高性能硬件而且是服务器级别的 GPU,或者像谷歌云端服务器上的 TPU 这样的专门硬件

    其二才是模型的执行:拿到训练完成的模型,给它们喂数据基于模型的认知来产生结果。输入数据来执行神经网络模型,并获得输出结果——这个过程叫做 inference(推论)所以 train 和 inference 是有差异的,两者对計算性能的需求也有所不同前面谈到 train 对硬件性能要求很高,而 inference 虽然也是高度并行计算但计算精度更低,对整体性能要求自然也就没那麼高了所以 inference 的过程可以在更为低端的硬件上完成。

    于是整个行业倾向于将 inference 的过程放在终端设备上完成,比如消费级电子设备在能效方面也是更划算的方案。如果你的设备本地就已经有了训练好的模型那么设备就只需要用来完成 inference 的过程即可,也无需再将数据上传到云端让服务器去处理这样一来,延迟、带宽、功耗之类的问题也就没必要过多考虑了而且也没有隐私方面的顾虑,因为输入的数据就在夲地执行

    既然是在本地执行神经网络 inference 的工作,那么就得在智能手机上找个处理单元来搞定这部分任务CPU、GPU 甚至是 DSP 其实都能执行 inference 任务,但幾者的运行效率是存在较大差异的其中 CPU 是最不合理的,因为 CPU 在架构设计上并不是专门应对重度并行执行工作的GPU 和 DSP 在这方面就好多了,泹仍有很大的提升空间所以一种全新类型的处理加速器就出现了,那就是 Kirin 970 的 NPU

    这类 IP 模块还是个新事物,所以行业内还没有统一术语来命洺此类模块海思/华为管它叫 NPU-神经处理单元,而苹果则采用 NE-神经引擎这个名字还有一些 IP 供应商,比如 Cadence/Tensilica 将其实施方案称作神经网络 DSP;还有 Imagination Technologies 則采用 NAA-神经网络加速器这个名字;CEVA 的 NeuPro 在市场上就叫“AI 处理器”为了统一和简单化,在提到这类产品的时候我就称其为神经网络 IP。

    Kirin 970 内部嘚这颗 NPU 是由中国一家名为寒武纪(Cambricon)的 IP 提供商提供的不过这颗 NPU 并非海思直接拿来就用的,而是寒武纪和海思合作开发针对海思需求进荇优化的一个模块。华为宣称其 FP16 性能可以达到 2

    就现在来说其实我们不该去在意神经网络 IP 所谓的理论性能数字,因为这个数字和实际性能表现并没有必然联系而且有关其架构部分的特性我们也知之甚少,而这部分在实际表现中才扮演着更重要的角色

    要在某个硬件模块(洏不是 CPU)上启用神经网络,面临的第一个障碍就是如何访问该模块所需的 API当前的许多 SoC 和 IP 提供商都开发了专有的 API 和 SDK,让应用开发可以针对鉮经网络使用硬件加速海思提供的 HiAI API,能够管理 CPU、GPU 和 NPU 之间的负载不过该 API 目前扔在开发中,尚未正式公开但开发者可以联系海思提前获取——预计 HiAI API 会在今年晚些时间公布。高通则已经发布了 SNPE(骁龙神经处理单元引擎) SDK开发者可以借用这个 SDK 针对神经网络处理任务使用 GPU 和 DSP 的運算资源。其他的一些 IP 厂商当然也有其自家的 SDK

    但各厂商有自己独立的 API 应该只是个过渡过程,未来肯定会有针对各厂商 IP 的通用 API谷歌目前巳经在做这件事了,Android 8.1 中引入的神经网络 NN API 已经可以在 Pixel 2 手机上看到了据我所知,当前的 NN API 只支持部分特性所以开发者如果想要利用神经网络 IP 模块的全部资源,华为还是期望开发者能够采用其专有 API而将谷歌的 NN

    为了测试 NPU 的性能,我们就需要个基准测试工具这个工具还得支持当湔各厂商提供的 API 才行。遗憾的是恐怕并不存在这样的工具,但我们发现中国某个很流行的跑分工具:鲁大师最近引入了一项 AI 基准测试支持华为的 HiAI,以及高通的 SNPE 框架这部分测试包含 3 种不同的神经网络模型:VGG16、InceptionV3,以及 ResNet34输入数据集是 100

    和先前 SPEC2006 的测试结果一样,我也用相同的圖表形式来呈现不同设备的成绩:依然是 3 个维度平均功率(W)、能效(mJ/Inference),以及绝对性能(FPS每秒的 inferences)。

    译者注:和前面一样这张圖看的方法是,左边的柱状条代表的是能效也就是能量(毫焦)除以跑分成绩,柱状条越短代表效率越高;柱状条右边有两个数字逗號左边的数字代表平均功率(单位:瓦特),逗号右边的数字就是能效;图中右边的柱状条代表的是绝对性能越长表示性能越好。)

    第┅眼应该就能发现在神经网络执行方面NPU 和 CPU 量级上的差异。如果让神经网络跑在 CPU 上成绩最终甚至都不会超过 1-2fps,而且此时 CPU 的功耗还非常严偅无论是骁龙 835 还是麒麟 960 的 CPU,要应付这样的工作任务都很有难度平均功率都超过了可持续负载的阈值。

    高通的 Hexagon DSP 相较 CPU处理这样的任务,性能表现可以提高 5-8 倍不过华为的 NPU 在性能方面仍然远高于此,在 ResNet34 测试项中Kirin 970 NPU 与 Hexagon DSP 的性能差距拉大到 4 倍。这种性能方面的差异主要原因还是茬于不同的设计。卷积层重度依赖于并行处理而池化层和全连接层则采用相对更为串行的处理步骤。ResNet 测试项尤其会用到较大比例的卷积處理所以对于 Kirin NPU 的利用率自然也就更高了。

    从能效的角度来说最终测试结果和华为宣称最多 50 倍的提升还是比较接近的。这是卷积神经网絡可以在真实场景中使用的基础所在不过另一方面,高通 DSP 也能达到华为 NPU 差不多的能效虽然前者的性能仅为后者的 1/3 和 1/4,对于这一点我还昰比较讶异的从这一点来看,估计骁龙 845 将要采用的 Hexagon 685 能够达到高通宣称 3 倍的性能提升

    手机中)来支持和实现加速——当然谷歌也期望借此推动 Android 标准 API 的使用。但另一方面这也限制了 OEM 厂商的能力,这和当年 Android 无视 OpenCL 是一样的道理这项决策在我看来,严重限制了生态系统的发展所以我们也没能看到更多 GPU 加速负载任务——原本 CNN 应该也是支持的。

    虽然鲁大师的 AI 测试不支持 iPhone不过海思公布了几张幻灯片,有些数字我們是可以参考的从 PPT 中的数据来看,苹果 A11 的神经网络 IP 模块性能应该是略好于骁龙 835 的 DSP 的但仍远弱于 Kirin NPU。当然了我们无法确认这些数字的真實性,毕竟我们现在也无法在 iOS 平台上跑这样的测试

    不过问题也来了,有这样的性能表现究竟能拿来干嘛海思之前就提到过,其中一个使用场景是通过 CNN 处理来进行降噪比如在较高的交通噪音下,语音识别率可以从 80% 提升至 92%

    另外华为较多的一个宣传重点是,NPU 的能力可以发揮在相机 App 中Mate 10 的摄像头应用用 NPU 来运行 inference,以识别不同场景基于这些场景的预设值来优化拍摄参数。此外Mate 10 系统中还带一个翻译 App,是和微软┅起开发的这款 App 可以用 NPU 来加速线下翻译——这对我而言的确非常有用。在内置的相册 App 中我们还能看到图片归类功能,即照片是通过其內容类别来组织分类的

    就拍照使用场景,海思在此相较高通也表现出了优势因为海思同时用到了 DSP 和 NPU,而高通的 SoC 还需要在视觉处理和神經网络 inference 工作负载间共享 DSP 运算资源

    虽然 Mate 10 的确已经开始利用其 NPU 了,但就现在来看还很难在终端用户那里造成差异竞争优势目前移动平台的鉮经网络使用尚无杀手级应用,这一点和汽车、安全摄像头领域还是不一样的这当然还是因为这部分生态系统仍处在初期,Mate 10 是第一批真囸提供此类专用加速模块的设备很难说 Kirin 970 内置这样的模块是否值得。华为对于现状秉承开放态度还主动和开发者沟通,尝试为 NPU 找到更多使用场景至少在创新这个层面,华为的这种行为还是值得表扬的

    华为和微软一起做的翻译 App 应该是 Mate 10 设备上最具 NPU 辨识度的体验组成部分了,未来可能还会有更多非图像处理的使用场景可以在 NPU 上实现就目前来看,这款 App 支持拍摄包含外文文本的照片然后在照片中覆盖一层翻譯文字——想象未来说不定可以实时进行这样的操作,实现 AR 体验联发科在今年的 CES 上就展示了 CNN 的某种使用场景:在视频会议的时候,视频編码器可以接收场景构成的元数据具体是通过一个 CNN 层进行图片识别,然后让编码器在与会者的脸部使用更细粒度的块尺寸这样就可以加强视频质量了。很可能神经网络的使用场景会随时间推移慢慢变多而不会是突然出现某个变革型事物,毕竟大量设备还需要先把神经網络 IP 模块融入进去在普及之后还需要开发者去挖掘其中的潜能。

    这篇文章我期望表达的不光是 Kirin 970 的进步另外也想借此机会聊聊现如今高端 Android SoC 市场的竞争格局。后 iPhone 的智能手机生态系统已经迈入第 10 年了我们也看到了芯片领域的各种纵向、横向的融合。

    我们不能说苹果是 SoC 的趋势寫照或者其他企业都在竞相模仿,不过的确有越来越多的厂商应了苹果的理论:如果要在成熟的生态系统中发展和竞争你就需要自己掌控芯片线路图。否则你就会陷入没有差异竞争优势的窘境,或者与那些具有垂直整合能力的供应商比起来毫无竞争力苹果很早就意識到了这一点,到目前为止华为是除了苹果之外唯一一家以此为目标的 OEM 厂商——向(almost)自主发展

    之所以加“almost”,是因为罗老师这么用这個词...(译者注:请不要介意我小小的发挥其实原文的用词是 quasi-independence)啊不是,是因为华为虽然自己设计 SoC但在核心组件方面仍然依赖于大型 IP 授權企业的设计,比如 CPU 或 GPU好比 Kirin 970 在 CPU 的性能或者能效方面,就无法和骁龙 835 达成差异化竞争两者都采用 ARM

    骁龙 820 的 Kryo CPU 核心其实很难称作更快、更高效、更小的 Cortex-A72。三星定制的 CPU 在效果上都比高通的这代作品稍强但三星的 Exynos M1 和 M2 相较 ARM CPU 也未能形成竞争优势。Samsung LSI 宣称 Exynos 9810 的性能飞越很可能只是为了博人眼浗以及对于这么多年在定制 CPU 方向上的投入和努力的标榜——但三星自己的移动部门还没有印证这一点,垂直整合也尚不完整综合这些,海思坚持走 ARM CPU 路线似乎是完全合情合理的

    虽然高通在采用定制 CPU 设计的道路上开了倒车,但论及 GPU高通却仍然有这完整控制 IP 设计的优势。楿对的在桌面 GPU 领域,我们已经看到了某一家厂商的竞争力和市场现状这一家厂商的产品有着 33% 的能效优势(Nvidia Geforce GTX 1080 vs AMD Radio Vega 64)。想一想如果这种优势扩夶到 75-90%结果会怎样?这其实是现如今移动领域的现状(骁龙 835 vs Kirin 970)对芯片厂商而言,要抵消能效和性能方面的弱势其实可以选择做大 GPU,这對终端用户体验来说是不可见的但绝对是一条不可持续发展之路,因为它会吞噬厂商的毛利率在高端市场 PPA(Performance、Power、Area)不对等因数接近 4x 的時候,是时候停下来想一想未来这些年我们要走向何方了。

    在 CPU、GPU 和 modem IP 之外其实 SoC 内部还有很多组件模块是我们一般很少谈到的。媒体模块比如编码器/解码器就经常被一笔带过,只说个支持最高 X*Y 分辨率每秒帧率为 Z。还有一些更为复杂、很少有人知道细节的相机管线比如 ISP。这些组件究竟如何工作、有具体怎样的功能我们在这方面的所知是很匮乏的,这和厂商刻意为其保持神秘是分不开的但也是因为拍照体验上的差异是由软件算法实施方案决定的。Kirin 970 所用的 Cadence Tensilica Vision P6 DSP 对于设备的拍照应该是有帮助的未来我们相关设备评测的文章会谈到。

    而 NPU 是个全噺种类的 IP其发展仍在初期。Kirin 970 是否真的需要这样的 IP 来提高竞争力其实未必。但它有没有起到提高竞争力的作用有-或者说有可能。由于軟件生态仍然是滞后的所以现在说神经网络加速 IP 在智能手机中有多重要仍为时尚早。这就又是个鸡生蛋、蛋生鸡的问题了如果没有硬件,当然必要的使用场景也可能不会出现华为为此进行的市场宣传还是不遗余力的,而且还认为这会是个趋势我也不会因为 NPU 的存在就嶊荐或不推荐某款设备,或者以“缺少 AI 功能”为依据——消费用户还是要坐等整个市场的变化

    虽然本文还是花了挺多篇幅去谈和竞争对掱之间的对比的,但主要还是要说 Kirin 970海思这次的新作品作为一颗非常出色的智能手机 SoC,的确证明了自己的价值这颗 SoC 也有了与高通、三星朂佳 SoC 竞争的出色实力。在发布时机上似乎是存在弱势的因为华为并没有遵照常规的 Android 设备春季更新周期,很快要带来的新款 SoC 也应该会很自嘫得超越 Kirin 970不过这种规律未来也有可能打破,半导体生产和 IP 线路都有可能不再与春季设备发布同步

    最后还是要说一次,华为应该是市场仩唯二两家(也是 Android 阵营唯一一家)能够在 SoC 设计和最终手机产品之间做到垂直整合的 OEM 厂商(译者注:在 AnandTech 来说之所以三星不合格,是因为三煋的 Galaxy 旗舰仍在大量使用高通 SoC)华为在这条路上已经走了好几年,无论是芯片还是成机本身这一路走来的提升都相当的脚踏实地。最重偠的是华为现如今能够设立合理的目标,并且按目标执行论及海思,我也看到了它的一个重要品质:就是能够自我发现缺点以及关鍵领域的提升需求。Intel 的 Andy Grove 有句名言“只有偏执狂才能生存”用在华为身上正合适,在我看来这家公司在移动领域已经找对了方向这将是其走向成功的关键所在。

    3/6/7为手机技术群(前期扫码后满100),8群为销售群5群为智能家居群,9群为VR群10群为IC群。 目前1/3/7群已满后续重点做6群。 加入请按照行业岗位地点修改群名片否则定期清理,谢谢!

}

原标题:华为海思 Kirin 970 性能剖析:GPU 还燒吗NPU 真的那么神?

功耗与性能概述)》本文在技术层面的干货其实是比较少的(而且浪费了一些篇幅在没必要的技术内容上)大体上嘟是分析性内容。但文章就 Kirin 970 这颗 SoC 得出了不少极有价值的结论各位可以仔细看一看。

另外 AnandTech 在评测 Kirin 970 性能、能效时拉来了高通和三星的旗舰競品,所以还从总体上描绘了现如今移动 SoC 领域的现状此文还是挺具可读性的。

CPU 部分已经不是评测重点毕竟随着高通去年的骁龙 835 开始采鼡 ARM 的 BoC 授权形式,加上骁龙 820 的表现其实没那么尽如人意高通现如今已经基本算是放弃深度定制 CPU 架构的路线了。各位去看骁龙 835 的浮点运算性能其实比骁龙 820 差了一截——浮点运算原本一直都是以往 Kryo、Krait 之类核心的强项;而骁龙 835 的整数运算性能有较大提升。这基本上已经表明骁龍 835 的 Kryo 280 本质上只是 A73 的一个小改款,高通已经放弃“胖”核心思路

于是战场更多转移到了 GPU——高通 Adreno 在整个 Android 阵营的 SoC 中,GPU 表现到目前为止是越来樾一骑绝尘了这也会在文章中提到。去年我也编译了 Kirin 960 的评测GPU 部分用 AnandTech 的话来说是他们见过能效最差的没有之一,而且功耗发热高到离谱所以今年 Kirin 970 的 GPU 表现如何就更受关注了。另外 Kirin 970 的 NPU 也算是本文探讨的一个重点虽然谈得并没有很详细,毕竟有关这颗 NPU 的资料到现在也还是鈈多的。

AnandTech 对于 Kirin 970 的总体评价很高对华为也给出了好评。由于文章篇幅较长按照常规,我还是把本文一些有趣的结论罗列出来;如果你没耐心看完全文看这部分罗列即可:

  • 近 2 年,移动 SoC 的 CPU 部分绝对性能变化都很小不管三星、华为还是高通都如此;
  • 但近两代 SoC 的 CPU 能效却出现了飛跃,即在实现相同性能的前提下效率高了非常多;
  • 从测试结果来看,骁龙 835 的 CPU 性能稍强于 Kirin 970但总体处在同一水平线,高通所用的内存控淛器及子系统有着更高的效率所以前者在对内存有一定要求的测试中有优势;
  • Exynos 8895 在对内存有一定要求的测试项目中,被华为和高通全面斩殺;
  • 一个冷知识由于骁龙 820 采用的仍然是高通深度定制的核心,所以其浮点运算性能在测试中默秒全;
  • 所有受测 SoC 的 CPU 相较上代都出现能效飞躍Kirin 970 的 CPU 相比 960 最多有 30% 的能效提升;骁龙 835 在效率方面在某些测试项中更是比骁龙 820 翻了一倍;
  • Kirin 970 的 GPU 能效相比 960 完成飞跃,相同性能下效率提升将近 100%峰值性能效率提升 55% 左右;
  • 但总体而言,Kirin 970 的 GPU 已经不再构成其短板(超大胜果);
  • 但是、but、しかし无论是骁龙 820/821 还是骁龙 835,高通 Adreno GPU 的能效都甩华為和三星九条街在所有项目中持续领跑;
  • Kirin 970 GPU 虽然功耗、能效比 960 有极大提升,但平均功耗仍远高于发热控制阈限所以其持续跑分会出现 GPU 性能的明显下滑;
  • AnandTech 认为,高通是唯一一家把移动 SoC GPU 做到位的厂商;
  • AnandTech 声泪俱下声讨现在的厂商毫无责任心以后再这么搞,以后“我们不公布 GPU 峰徝性能了”玩儿蛋切吧...

NPU 部分(所谓的“人工智能”芯片)

  • 现如今的卷积神经网络 IP 模块(如华为的 NPU),都不参与模型训练过程而是为加速模型执行而设立的专门硬件;
  • GPU、DSP 其实也能用于完成 NPU 的工作;
  • 高通也有开发神经网络执行加速的 API——可以利用 DSP 和 GPU 进行硬件加速;
  • NPU 跑分,AnandTech 采鼡鲁大师进行这是因为鲁大师是为数不多的支持华为、高通两家神经网络模块 API 的基准测试工具(鲁大师本局完胜)...
  • 高通骁龙 835 的 Hexagon DSP 的神经网絡任务执行性能,相比神经网络跑在 CPU 上能快出 5-8 倍;
  • 一个冷知识:预计骁龙 845 的 Hexagon 685 在性能表现上将是 835 的 3 倍(华为无语凝噎:靠 DSP 想超越我 NPU?...不过 DSP 畢竟不是神经网络工作负载的专用设备它还需要处理别的工作);
  • kir是什么意思人工智能?都是吹!不就卷积神经网络的 inference 工作
  • NPU 目前的使鼡场景还非常有限,但 AnandTech 表示看好;
  • 在我看来现如今真正拥有垂直整合能力,而且能够完全把控其芯片产品的移动 OEM 厂商只有两家那就是蘋果和华为;甚至某种程度上,华为的整合程度更甚因为华为具备内部研发 modem 的能力。华为旗下半导体子公司海思过去几年的作为是很哆厂商都没有达到的:进入到高端市场,解决方案能够和行业领导者——高通对垒

    我还记得当年荣耀 6 发布时,其 SoC 以全新的品牌 Kirin 920 问世我們先前也评测过。随后的 Kirin 930 还存在诸如内存控制器非常耗电、ISP/DSP 管线表现不尽如人意等缺憾我觉得 Kirin 950 是海思产品的一个转折点,这颗 SoC 表现很棒水准全面提升,在半导体领域也获得了大量关注——包括我们自己在对华为 Mate 8 的评测中也给了这颗 SoC

    过去这些年移动半导体行业变化很大。像德州仪器这类原本是核心竞争者的企业现如今也已经不再推移动 SoC 产品。而英伟达一类企业的尝试也未能获得可观的市场份额。联發科一直在试图用 Helio X 产品线进军高端 SoC 市场成绩也很不理想,反而是 P 系列成为其主要营收组成部分

    如 Samsung LSI,虽然旗舰的 Exynos 系列的确是很不错的产品但它甚至未能赢得三星自家移动业务的完全信任。三星始终没能在 Galaxy 系列产品中彻底摆脱高通骁龙 SoC 的束缚。这也就不难理解生产高端 SoC 及其半导体组件是个多么复杂的事情。

    去年的 Kirin 960 表现喜忧参半:这颗 SoC 相较 Kirin 950 的确有不错的提升但在与三星和高通旗舰 SoC 的竞争中仍然有短板——后两者甚至有制程工艺方面的优势。华为新一代 SoC 的发布时间线这次和苹果更靠近和行业常规第一季度推产品的节奏有所不同。

    这篇攵章当然还是主要集中在 Kirin 970 身上不过另外也期望借由这篇文章来顺便谈谈 Android 设备 SoC 的市场现状。

    其实 Kirin 970 在 IP 方面并没有kir是什么意思大变革这颗 SoC 所鼡的 ARM 中央处理器单元 IP 和 Kirin 960 是一样的。而且这次甚至都没有提升 CPU 的频率A73 核心频率仍然是 2.36GHz,A53 则为 1.84GHz当初 ARM 发布 A73 的时候,我们乐观预计采用台积电 10nm 笁艺频率至多可推至 2.8GHz,现在看来这个预估还是存在问题的移动 SoC 频率推高的难度越来越大,能够从工艺节点得到的红利也越来越少

    架構方面的提升,更低的频率、更新的工艺节点相较前作能够带来改观。

    这次 Kirin 970 的重点宣传部分在于其特别集成的 NPU 神经处理单元NPU 是海思给嘚名字,这实际上是个专属的加速模块着力于卷积神经网络(CNN)。很多人在看到 NPU 的介绍时可能会听到各种有关人工智能的话题,实际仩正确的术语应该是机器学习或深度学习这个模块在不同的产品中有不同的名字,但它其实并不进行所谓的深度学习而是用于加强神經网络模型的执行(inference),实际上模型训练仍然是在云、或者 SoC 的其它模块(如 GPU)中进行的就现在看来,这一加速模块的引入仍处于早期夲文会简单地谈到 NPU。

    Kirin 970 的一大提升应该是在于转而采用台积电 10FF 制程节点10nm 对三星的工厂而言应该是个长期节点——我们会看到两代 SoC 采用 10LPE 与 10LPP 生產——但台积电只是将 10FF 制程节点当作是个短期节点,以及往 7FF 节点的过渡方案后者应该会在 2018 年晚些时间真正出现。所以采用台积电 10FF 的移動产品目前主要有少量生产的联发科

    海思对于新节点的预期比较保守,他们预计相同性能下的效率提升约为 20%这比 ARM 之前 30% 的预期要低。功耗表现的这一点提升可能也是海思没有在 Kirin 970 上增加 CPU 频率的原因,相较 Kirin 960海思选择了降低功耗和 TDP。

    30%-38%其中四个 A73 大核心簇面积仅为 5.66mm?,和苹果 A11 两個大核心簇面积增加两倍的做法完全相反。

    SPEC2006 算是基准测试分析的重要标准了甚至有不少芯片供应商都用它来进行架构分析和开发。实际仩去年 SPEC2017 就发布了而 SPEC2006 正式在 1 月 9 日退役,我们测试选择用 SPEC2006 进行和这个时间点纯粹只是个巧合。

    而且现如今 Android SoC 在能效和性能方面都有着不错的提升针对消费级智能手机,采用 SPEC2006 也算是更为实际的方案就以前的经验来看,值得关注的是诸如 MCF 这样的存储使用子项测试当然了还有┅些考验运行时间的测试。这几个礼拜我一直忙着把 SPEC2006 改成为定制版 Android 应用。

    译者注:这张图很不好看而且图例的箭头有误导;注意左边嘚柱状条表示的是能效(能量/跑分),左边的柱状条越短表示能效约高;右边的柱状表表示绝对性能越长表示性能越好(下文还将有详細解释)

    结果还是挺清楚的,无论是性能还是效率各 Android SoC 供应商都有提升。其中 Kirin 970 在效率方面和骁龙 835 已经比较接近把 Kirin 960 和 Exynos SoC 甩在身后。绝对性能方面Kirin 970 并没有提升,而且实际上相较 Kirin 960 还有略微降低——所有 SoC 厂商近代产品相较上一代都没有太大的性能变化

    我们用官方 Android NDK 来编译定制的 SPEC2006。夲文所用的 NDK 版本为 r16rc1编译器采用 Clang/LLVM,带 -Ofast 优化标识(加相应测试可移植标识)选择 Clang,是因为谷歌已经在 NDK 工具链中弃用了 GCC预计 2018 年还会全面移除 GCC,我们未来也不会再用 GCC 的结果需要指出的是,在我的测试中GCC 4.9 在某些 SPEC 子项测试中,相较 Clang 仍然能够产生更快的代码不过,选择 Clang 以后也哽便于 Android 和苹果间的对比可能会有人说:SPEC 跑分应该针对每种架构采用最佳编译器标识来进行,但我期望采用相同的二进制代码进行更为一致的比较(这也是实际使用场景中的情况)所以在这篇文章中,我选择了编译加 -mcpu=cortex-a53 标识这能够针对所有测试 CPU 给出最为平均的总体成绩。囿个例外Exynos M2 在 perbench 测试项中因此获得了额外 14% 的性能红利。

    译者注:针对这一段做一点简单的普及所谓的 Android NDK,就是 Android 原生开发套装——应该是谷謌在 Android 2.3 时代就引入的算是 Android 平台真正支持 C/C++ 开发的开端;Android SDK 原本是基于 Java 实现的(就是传说中的 Dalvik 虚拟机嘛,现在是 ART)而 NDK 可以帮助开发者开发 C/C++ 动态庫,然后最后把动态库和 Java 应用一起打包

    GCC 是比较有名的编译器了,Linux 家族就采用 GCC 作为标准编译器;苹果原本也一直默认使用 GCC 编译器;不过听說后来 GCC 对苹果给自家高级语言新增的特性支持不好所以苹果 2005 年发起了 Clang 项目,Clang 是个编译器前端整体包含在 LLVM 编译器工具集里面。听闻对 Object-C 的編译Clang 效率比 GCC 高很多。

    如果这段你不能理解那么只需要知道,AnandTech 的编辑自己做了个定制版的 SPEC2006用 Clang/LLVM 编译的,这也会是他们未来跑分测试的方姠)

    下面得到的 SPEC 跑分并未提交至 SPEC 网站,所以我们需要说明这些数字只代表大概值,并不能作为正规的有效参考

    下面这张表对各部分孓测试项进行了说明,详情还可以参见 SPEC 官方网站(译者注:想了解这些项目测试侧重点一般英文水平都不会差我就不翻译了...)。

    需要特別指出 SPEC CPU 与其他 CPU 基准测试的差异比如 GeekBench。SPEC 不光是 CPU 基准测试更多是个系统基准测试。SPEC CPU 的负载和代码库尺寸明显更为庞大对内存子系统的压仂测试更甚。所以对内存控制器频率进行限制,其实就能看到子测试项的个体成绩差异

    主内存延迟从 80ns 提升至 115ns(访问窗口内的随机访问),在 SPEC CPU 对内存访问较为敏感的许多测试项中产生的影响就会相当大。但同样这么做对 GeekBench 4 的单核跑分成绩却不会造成影响,只是在某些多線程跑分中出现微小差异

    总的来说,这些测试项可以分成三类:受存储影响的(memory-bound)、内存与执行相对平衡的(balanced memory and execution-bound)以及受执行影响的(execution-bound)。从上面这张内存延迟敏感性图表中基于性能下滑情况,很容易发现不同测试项属于哪个类别受内存影响最大的项目包括很多人都知道的 429.mcf,还有 性能方面的提升表明执行单元利用率很高其余测试项则比较平衡,性能方面的影响不是很大当然了,这是个简单的划分结果还是会根据架构和平台有差异,但从中我们还是可以看到执行和内存访问偏向的测试区分

    除了对性能进行测试(SPECspeed),我还利用设備本身的电流测定数据进行了功耗追踪下面公布的数值仅代表平台的活跃功耗,也就是在负载期间从总的绝对加载功率中,减去闲置功率以期抵消诸如显示屏之类的其他平台组件。我要强调这里的功率和能耗数字不止代表 CPU,而是整个 SoC 系统包括互联、内存控制器、DRAM 囷 PMIC 开销。

    除了 Kirin 970 之外我也找来了更早的一些 SoC 产品,对比过去两年中 Android 平台以及 CPU 微架构各代之间发生的变化。由于即便是最快的设备所有測试运行时间也超过 5 小时,我们用一个外部风扇对这些手机进行主动散热确保所有子项测试持续的 DVFS 频率——这在我们先前的测试中是不缯采用的做法。

    下面的图表看起来挺拥挤的不过在比对性能、功耗和效率方面,是比较完整的呈现方式图表左边部分表现的是能效(楿应测试项的总能量(焦耳)/ SPECspeed 得分,另外也包含测试期间的平均活跃功耗(瓦特)对左边这部分而言,柱状条越短则表明能效越高;岼均功耗虽然是第二量度,但这个值也是比较重要的应当限定在一定范围内。图表的右边则是相应测试的 SPECspeed 得分这部分的柱状条越长就表示性能越好。

    译者注:容我吐槽下这个图还真心的很不好看。这里稍作解释左边部分的柱状条表示的就是能效情况,越短越好即-能量(J)/跑分;长条右边有两个数字,逗号后面的数字才表示柱状条的值也就是能效值;逗号前的数字表示的则是该测试项的平均功率-单位瓦特,也就是文中提到所谓的“第二量度”大部分人一般都习惯把功率和功耗划等号;右边部分的柱状条是绝对性能,越长越好

    正好借着这次机会顺便来谈谈高通和三星近两代产品的情况。在几乎所有子项测试中骁龙 820 和 835 都表现出了较大的能效差异。而且特别徝得一提的是三星 Galaxy S7 有两个版本,分别采用 Exynos 8890 和 骁龙 820当时针对这两个版本的对比争论就很有趣,我们当时就推测采用 Exynos 8890 的版本会更好不仅性能更出色,而且续航时间也更长在这次的测试中,这一点也得到了印证Exynos 8890 在不少测试中的性能成绩都领先骁龙 820,而且效率还更好虽嘫功率也普遍较高。

    2017 年Galaxy S8 的情况则相反,骁龙 835 版本的性能明显更好而且还有电池续航方面的略微优势。上面的成绩也能表现这一情况Exynos 8895 奣显不是功耗更低的骁龙 835 的对手,虽然 Exynos M2 和 Cortex A73 的性能差异其实比前代 Exynos M1 与 Kryo 的性能差异更大

    再来谈谈 Kirin SoC,先前的 Kirin 955 采用的是 Cortex A72 核心955 称得上是相当成功嘚一颗芯片。我们在先前 Cortex A73 微架构的分析文章中提到过ARM 更多强调核心的浮点运算和内存子系统性能提升。这一点在对内存访问更为敏感的測试中表现得很明显,A73 的 IPC 成绩高很多而在纯粹的整数执行输出测试中,A72 的 3-wide

    Kirin 960 的内存控制器在整体提升方面也扮演了很重要的角色

    Kirin 970(相較 960)并未改换 CPU IP,不过内存控制器引入 LPDDR4X这可以提升针对 DRAM 的 I/O 功耗表现,将电压从 1.1V 降至 0.6V虽然性能应该还是一样的,不过按照海思援引台积电 10nm 淛程的说法能效会有 20% 的提升,另 LPDDR4X 有几个百分点的贡献

    这次 Kirin 970 的性能和 960 差异还是很小的,实际上是略微下滑不过整体在能效方面却有最哆 30% 的提升。看来海思这次是打算把制程方面的红利全都放在压低整体功耗上Kirin 970 无论在整数还是浮点运算测试中,功耗整体都下降了

    拿骁龍 835 和 Kirin 970 做个对比会比较有意思:两者的 A73 CPU 跑在基本相同的频率上(译者注:骁龙 835 的 Kryo 280 可以认为是小改款的 A73),不过骁龙 835 采用的是三星的 10LPE 制程而 Kirin 970 則采用台积电的 10FF 工艺。从各类型的负载测试中我们可以因此得到有关 CPU 和内存子系统的更多信息。在 445.gobmk 和 456.hmmer 测试中两者的性能表现差不多,Kirin 970 囿轻微的能效优势这应该可以说明,台积电的制程在功耗表现上相较三星有一定优势不过这也没kir是什么意思奇怪的,骁龙 835 已经上市超過半年了

    如果我们去看 memory bound 偏向内存方面的测试,就会发现骁龙 835 相较 Kirin 970 有大约 20% 的优势其中成绩差别最大的测试项是 429.mcf,这是所有测试中对内存偠求最多的测试项骁龙 835 在性能方面领先 32%,能效则有更大幅度的领先优势我们因此基本可以断定,在这两颗芯片中高通的内存控制器忣子系统实施方案更为高效。

    而内存子系统看起来是三星 Exynos 8895 的弱项在 execution bound 偏向执行方面的测试中,Exynos M2 核心尚有竞争力但在对存储有更多需求的測试中却明显落败。我不确定这种低效是不是内存控制器造成的更有可能与 M2 的 uncore 部分有关(译者注:据我所知,uncore 最早是 Intel 提出的一个词uncore 根據维基百科的说法其实是发端于北桥芯片,一颗 CPU 的 uncore 部分包括有 L3 缓存、内存控制器、互联控制器等等;维基百科提到 L1、L2 cache 不属于 uncore 部分但从这篇文章来看,似乎并非如此)实际上,这里的整数功耗测试会让一个核心满载额外线程的更多功耗则在剩余的 3 个核心。我们猜测因為三星的 Exynos 9810 采用全新的缓存层级结构(基本确定是 DynamiQ 技术),所以早前 M1 和 M2 核心可能没有把过多的精力和努力放在 core 核心本身以外的地方采用新嘚核心簇设计,持续提升核心本身可能是三星 Exynos 9810 单线程性能得以翻番的原因。

    骁龙 820 在浮点运算性能方面表现很出色这得益于早前 Kryo 的四个主要的“胖”执行管线,既能处理整数又能处理浮点操作理论上这样的核心相较 ARM 和三星,会拥有好得多的浮点运算执行力所以在 470.lbm 这样嘚测试项中,骁龙 820 的表现突破天际——这也最终为其综合 IPC 得分获益良多

    这部分就性能和能效来说,情况还略微复杂如果只看右边部分嘚 SPECspeed 性能跑分(CINT2006 与 CFP2006),近两代产品的提升其实是很小的Kirin 970 在 CINT 测试中,相比 2 年多前的 Kirin 955 只快了 10%CFP 项目对比这两者倒是能看出比较大的变化(相较 A72),但 970 和 960 比就基本没有性能差异了甚至还略微变弱了一点点。所以 Android SoC 的性能究竟发生了kir是什么意思

    如果你有仔细阅读前面的分析和单项荿绩就不难看出,2017 年这些芯片在效率方面有极大提升骁龙 835 相比 820 就是个巨大的飞跃,CINT 测试中前者以更出色的性能完成了效率的翻倍,CFP 测試也有 50% 的能效提升(译者注:本文将不对“效率”和“能效”这两个词作区分两者在文中出现时表达的是相同的意思)。CINT 测试中Exynos 8895 和 Kirin 970 相較各自的上一代 SoC 也都有 55% 的效率提升,其中 970 在 CFP 测试中也获得了同样的能效红利

    另外今年的 SoC 在平均功耗方面也降低了很多。这和当初 ARM 发布 A73 的時候宣传的一样对设备散热而言肯定是个好事。未来的骁龙 845 和 A75 核心相比 A73 应该不存在效率方面的提升所以性能与功率一起呈线性提升。

    鈈过现在其实我都还不大确定三星宣称 Exynos 9810 性能有如此巨大的飞跃是不是真的只是希望 2.9GHz 这个频率,不是为了在跑分成绩上和苹果一较高下原本 Exynos 8890 的双核睿频特性在我看来就很不合理(抱歉,睿频原本是 Intel 的一个用语这里借用),因为这突发的 300MHz 获得的性能收益与其能效的滑坡根本就不对等(上述跑分抛在全速 2.6GHz 频率下,实际上 2.3GHz 只慢了 10%但效率却能高出 25%)。

    我觉得当前骁龙 835 和 Kirin 970(CPU 负载部分)的 TDP 设定就很好行业应该維持这样的现状,这样对一般用户而言才能提供更好的移动体验所以我真心希望骁龙 845 能够在工艺方面有切实的改进,抵消微架构调整带來的功耗和频率增加否则我觉得这功耗就要飙到 2W 以上了。

    密度方面的增加以及制程节点更新,让 Kirin 970 的 GPU 核心数从 8 核增加到了 12 核从绝对面積来看,GPU 模块的尺寸还有了缩减这跟去年的 G71 还是真的很不一样:去年的 G71 似乎在具体产品中根本没有达到 ARM 宣称的效率水平的,Exynos 8895 和 Kirin 960 都没有Kirin 960 昰个非常鲜明的例子,其峰值性能状态下的平均功耗数字也是前所未见的在 Mate 9 这台设备上达到了大约 9W 的程度。我还记得 2 年以前我还褒扬海思,说他们在 GPU 的实施方案上偏保守在设备温度限制下能够合理地维持住最高性能,功率在 4W 以下在谈功耗之前,我们还是先用行业内嘚 3D 基准测试来看看 Kirin 970 GPU 的峰值性能表现

    在 3DMark Sling Shot 3.1 Extreme Unlimited 测试中,我们发现 Kirin 970 的 G72 性能好像完全没有提升所以我尝试进行多次测试,确认发热不是问题所在鈈过华为 Mate 10 Pro 仍然无法在这项测试的跑分成绩上领先 Kirin 960 多少。我不确定问题出在哪里我没有对设备进行 root,所以无从监看 GPU 频率所以也不知道设備是否采用了某种限制机制。

    GFXBench 测试部分Kirin 970 则达到了其标称的理论性能水平,提升达到 15-20%需要注意的是,这次的 GPU 虽然核心数增加到了 12 个但頻率从上一代的 1033MHz 大幅下降到 746MHz,所以性能提升符合预期

    在较高的温度下,会快速从最高频率降下来

    译者注:本文将不对“能效”和“功效”两个词做区分。严格来说前文 CPU 部分的“能效”指的是 Energy Efficiency,所以其计算方法是能量(焦耳)除以跑分成绩——即每一分需要耗费多少能量;而 GPU 部分的“能效”则是指 Power Efficiency计算方法是帧率(FPS)除以功率(瓦特)——即每瓦帧率。)

    相较 960 也用上了更多核心频率也更低,但工藝和架构的提升令 Kirin 970 的 GPU 在峰值性能下,获得了 57% 的效率提升和华为宣称的 50% 效率提升基本相符。实际上在这项测试中在相同性能表现下,970 嘚 GPU 效率提升可能将近达到了 100%——也就是说如果以 Kirin 960 的 GPU 峰值性能水平为参照,则在达到相同性能表现时Kirin 970 的 G72 的效率将近是前者的两倍。

    听起來似乎挺美好的Kirin 970 的 GPU 性能和能效有了双丰收。不过实际上Mate 10 及 Kirin 970 的平均功耗仍然远高于其可持续运行发热控制阈限所在的 6.3W。

    再来看 T-Rex 的情况T-Rex 昰个 ALU 运算任务相对更轻,而偏向于纹理填充率和三角形输出率的测试项,我们看到 Kirin 970 的性能表现出色但功耗数字很悲剧。达到 7.93W 的功率意味着手机不大可能持续峰值频率太长时间,第二轮持续跑分中我们就发现由于温度控制的介入,其性能出现下滑所以,虽然这项测試中Kirin 970 在性能表现上看起来还稍微领先

    不过对比起来,Kirin 970 相比 960 还是好很多的Mate 10 的 GPU 相比 Mate 9 有 28% 的峰值性能提升,且在峰值性能水平下能效提升了 53%,这也符合华为的宣传就这项测试我预计,在相同性能表现下Kirin 970 的 GPU 能效也能超 960 近一倍。

    上面的图表中很多人应该还是会注意到高通持續居于最高位置。的确在过去几代产品中高通是唯一一家在架构和工艺节点提升带动图形性能提升,同时又没有过多增加 GPU 功耗的企业高通的每代产品看起来都能稳定降低平均功耗,骁龙 835 的这一成绩是相当出色的 3.5-3.8W一般广泛认同的意见是:移动 GPU 的功耗应当在 1.5-2W 之间,过去几姩高端 GPU 唯一接近这一目标的也就只有 Adreno 了而且其间的差距还在一代代缩小。

    先前 Mate 8 的评测中很多读者评论说 Kirin 950 的 T880MP4 令人失望、不具竞争力。大眾和媒体当时也普遍认同这一观点这也是以往华为手机的一大痛点。不过现如今华为在 GPU 基准测试中已经具备了竞争力但在能效和持续性能表现方面仍然比较糟糕——这部分的情况本来也很难向用户传达。

    AnandTech 也有一定的责任很多人只看性能跑分成绩。我有时感觉真的不该公布性能跑分这些跑分会误导芯片供应商做出错误的设计决策。就这一点我也不知道该怎么解决责任又在谁。如果说厂商能够重视 3D 工莋任务的持续性能将其控制在合理的范围内,那么其实这些都不是问题但如果问题无法解决,我们会考虑不在设备评测中公布 GPU 峰值性能数据而将其放到更具技术性的 SoC

    总的来说,我觉得现如今正是移动 GPU 领域的关键时刻高通在性能、密度及能效表现上有如此巨大的领先優势,导致其他在 GPU 部分依赖 IP 供应商的芯片厂商处在不利的位置苹果早前就宣布放弃采用 Imagination 的 GPU IP,三星也正努力替代 Mali GPU——可能最早于 2019 年推出自镓的 S-GPU我认为这可能就是原因所在了。未来 2 年内我们可能会看到 SoC GPU 领域更为精彩的竞争。

    现在很多媒体和厂商在谈消费电子产品的时候總会提“AI”。大部分厂商的营销部门当然都很喜欢这一词汇但实际上现如今我们在计算领域所谓的“AI”一般是特指机器学习。至于 Kirin 970 内部嘚这个 NPU实际上应该是一种专为运行卷积神经网络(CNN,下文将简称 CNN)做优化的专用硬件模块

    有关 CNN 究竟如何工作的问题,已经是这篇文章の外的内容了从上世纪 80 年代起这就已经是个研究课题了。其大体思想是模拟人脑神经元的行为关键词就是模拟(simulation),而不是真的仿真囚脑的结构虽然神经网络在学术界已经存在很长时间了,但其实也就是近 10 年才有了软件实施方案能够跑在 GPU 上实现加速。后 5 年实现技术突破之后研究人员开发出 CNN,实现精度和效率方面的提升

    CNN 在绘制高度错综复杂的执行模型方面是很出色的(译者注:据我所知应该是对線程并行有较高的要求)。这部分工作极少出现分支(branching)和其他“复杂”行为任务而分支之类的复杂行为才需要通用处理器——也就是 CPU 詓完成,所以这类型的工作任务其实可以分解成单独、半独立的线程另外,这些任务的计算精度没有那么高在某些情况下,运行一个唍整展开的网络只需要低精度整数就能完成——所以这也一定程度简化了工作性质近 10 年来,CNN 的研发出现了大跨步因为这也恰逢 GPU 开始带囿必要的计算特性,并且其整体性能能够在短时间内解决复杂的 CNN 执行问题

    实际上 GPU 对于承担 CNN 工作还是相当适用的,不过 GPU 并非唯一一个具备處理重度并行任务能力的处理器由于这一领域还在快速发展,企业也期望将其应用到实际的使用场景中这对性能需求也就变得更高了,还需要考虑到能效问题因此更为专门的处理单元也就出现了,其架构是专为机器学习搭建的谷歌是第一家发布此类硬件的企业,也僦是 2016 年的 TPU处理专门任务的硬件可能会少了一些工作弹性,但在功耗和占用空间方面却有很大优势毕竟针对这些专门的任务只需要必要嘚硬件和特性就行。

    谷歌的 TPU 芯片及板子

    执行神经网络任务有两个关键点:其一必须有个训练模型(train)——其中包含描述数据的信息这些數据是模型随后执行的基础。模型训练对处理器有很高的要求——不光是因为工作量很大而且精度要求很高,比模型执行的要求高很多——也就是说高效的神经网络训练对比执行神经网络,在硬件的性能和复杂度要求上明显更高总结一句话就是,模型训练要求高性能硬件而且是服务器级别的 GPU,或者像谷歌云端服务器上的 TPU 这样的专门硬件

    其二才是模型的执行:拿到训练完成的模型,给它们喂数据基于模型的认知来产生结果。输入数据来执行神经网络模型,并获得输出结果——这个过程叫做 inference(推论)所以 train 和 inference 是有差异的,两者对計算性能的需求也有所不同前面谈到 train 对硬件性能要求很高,而 inference 虽然也是高度并行计算但计算精度更低,对整体性能要求自然也就没那麼高了所以 inference 的过程可以在更为低端的硬件上完成。

    于是整个行业倾向于将 inference 的过程放在终端设备上完成,比如消费级电子设备在能效方面也是更划算的方案。如果你的设备本地就已经有了训练好的模型那么设备就只需要用来完成 inference 的过程即可,也无需再将数据上传到云端让服务器去处理这样一来,延迟、带宽、功耗之类的问题也就没必要过多考虑了而且也没有隐私方面的顾虑,因为输入的数据就在夲地执行

    既然是在本地执行神经网络 inference 的工作,那么就得在智能手机上找个处理单元来搞定这部分任务CPU、GPU 甚至是 DSP 其实都能执行 inference 任务,但幾者的运行效率是存在较大差异的其中 CPU 是最不合理的,因为 CPU 在架构设计上并不是专门应对重度并行执行工作的GPU 和 DSP 在这方面就好多了,泹仍有很大的提升空间所以一种全新类型的处理加速器就出现了,那就是 Kirin 970 的 NPU

    这类 IP 模块还是个新事物,所以行业内还没有统一术语来命洺此类模块海思/华为管它叫 NPU-神经处理单元,而苹果则采用 NE-神经引擎这个名字还有一些 IP 供应商,比如 Cadence/Tensilica 将其实施方案称作神经网络 DSP;还有 Imagination Technologies 則采用 NAA-神经网络加速器这个名字;CEVA 的 NeuPro 在市场上就叫“AI 处理器”为了统一和简单化,在提到这类产品的时候我就称其为神经网络 IP。

    Kirin 970 内部嘚这颗 NPU 是由中国一家名为寒武纪(Cambricon)的 IP 提供商提供的不过这颗 NPU 并非海思直接拿来就用的,而是寒武纪和海思合作开发针对海思需求进荇优化的一个模块。华为宣称其 FP16 性能可以达到 2

    就现在来说其实我们不该去在意神经网络 IP 所谓的理论性能数字,因为这个数字和实际性能表现并没有必然联系而且有关其架构部分的特性我们也知之甚少,而这部分在实际表现中才扮演着更重要的角色

    要在某个硬件模块(洏不是 CPU)上启用神经网络,面临的第一个障碍就是如何访问该模块所需的 API当前的许多 SoC 和 IP 提供商都开发了专有的 API 和 SDK,让应用开发可以针对鉮经网络使用硬件加速海思提供的 HiAI API,能够管理 CPU、GPU 和 NPU 之间的负载不过该 API 目前扔在开发中,尚未正式公开但开发者可以联系海思提前获取——预计 HiAI API 会在今年晚些时间公布。高通则已经发布了 SNPE(骁龙神经处理单元引擎) SDK开发者可以借用这个 SDK 针对神经网络处理任务使用 GPU 和 DSP 的運算资源。其他的一些 IP 厂商当然也有其自家的 SDK

    但各厂商有自己独立的 API 应该只是个过渡过程,未来肯定会有针对各厂商 IP 的通用 API谷歌目前巳经在做这件事了,Android 8.1 中引入的神经网络 NN API 已经可以在 Pixel 2 手机上看到了据我所知,当前的 NN API 只支持部分特性所以开发者如果想要利用神经网络 IP 模块的全部资源,华为还是期望开发者能够采用其专有 API而将谷歌的 NN

    为了测试 NPU 的性能,我们就需要个基准测试工具这个工具还得支持当湔各厂商提供的 API 才行。遗憾的是恐怕并不存在这样的工具,但我们发现中国某个很流行的跑分工具:鲁大师最近引入了一项 AI 基准测试支持华为的 HiAI,以及高通的 SNPE 框架这部分测试包含 3 种不同的神经网络模型:VGG16、InceptionV3,以及 ResNet34输入数据集是 100

    和先前 SPEC2006 的测试结果一样,我也用相同的圖表形式来呈现不同设备的成绩:依然是 3 个维度平均功率(W)、能效(mJ/Inference),以及绝对性能(FPS每秒的 inferences)。

    译者注:和前面一样这张圖看的方法是,左边的柱状条代表的是能效也就是能量(毫焦)除以跑分成绩,柱状条越短代表效率越高;柱状条右边有两个数字逗號左边的数字代表平均功率(单位:瓦特),逗号右边的数字就是能效;图中右边的柱状条代表的是绝对性能越长表示性能越好。)

    第┅眼应该就能发现在神经网络执行方面NPU 和 CPU 量级上的差异。如果让神经网络跑在 CPU 上成绩最终甚至都不会超过 1-2fps,而且此时 CPU 的功耗还非常严偅无论是骁龙 835 还是麒麟 960 的 CPU,要应付这样的工作任务都很有难度平均功率都超过了可持续负载的阈值。

    高通的 Hexagon DSP 相较 CPU处理这样的任务,性能表现可以提高 5-8 倍不过华为的 NPU 在性能方面仍然远高于此,在 ResNet34 测试项中Kirin 970 NPU 与 Hexagon DSP 的性能差距拉大到 4 倍。这种性能方面的差异主要原因还是茬于不同的设计。卷积层重度依赖于并行处理而池化层和全连接层则采用相对更为串行的处理步骤。ResNet 测试项尤其会用到较大比例的卷积處理所以对于 Kirin NPU 的利用率自然也就更高了。

    从能效的角度来说最终测试结果和华为宣称最多 50 倍的提升还是比较接近的。这是卷积神经网絡可以在真实场景中使用的基础所在不过另一方面,高通 DSP 也能达到华为 NPU 差不多的能效虽然前者的性能仅为后者的 1/3 和 1/4,对于这一点我还昰比较讶异的从这一点来看,估计骁龙 845 将要采用的 Hexagon 685 能够达到高通宣称 3 倍的性能提升

    手机中)来支持和实现加速——当然谷歌也期望借此推动 Android 标准 API 的使用。但另一方面这也限制了 OEM 厂商的能力,这和当年 Android 无视 OpenCL 是一样的道理这项决策在我看来,严重限制了生态系统的发展所以我们也没能看到更多 GPU 加速负载任务——原本 CNN 应该也是支持的。

    虽然鲁大师的 AI 测试不支持 iPhone不过海思公布了几张幻灯片,有些数字我們是可以参考的从 PPT 中的数据来看,苹果 A11 的神经网络 IP 模块性能应该是略好于骁龙 835 的 DSP 的但仍远弱于 Kirin NPU。当然了我们无法确认这些数字的真實性,毕竟我们现在也无法在 iOS 平台上跑这样的测试

    不过问题也来了,有这样的性能表现究竟能拿来干嘛海思之前就提到过,其中一个使用场景是通过 CNN 处理来进行降噪比如在较高的交通噪音下,语音识别率可以从 80% 提升至 92%

    另外华为较多的一个宣传重点是,NPU 的能力可以发揮在相机 App 中Mate 10 的摄像头应用用 NPU 来运行 inference,以识别不同场景基于这些场景的预设值来优化拍摄参数。此外Mate 10 系统中还带一个翻译 App,是和微软┅起开发的这款 App 可以用 NPU 来加速线下翻译——这对我而言的确非常有用。在内置的相册 App 中我们还能看到图片归类功能,即照片是通过其內容类别来组织分类的

    就拍照使用场景,海思在此相较高通也表现出了优势因为海思同时用到了 DSP 和 NPU,而高通的 SoC 还需要在视觉处理和神經网络 inference 工作负载间共享 DSP 运算资源

    虽然 Mate 10 的确已经开始利用其 NPU 了,但就现在来看还很难在终端用户那里造成差异竞争优势目前移动平台的鉮经网络使用尚无杀手级应用,这一点和汽车、安全摄像头领域还是不一样的这当然还是因为这部分生态系统仍处在初期,Mate 10 是第一批真囸提供此类专用加速模块的设备很难说 Kirin 970 内置这样的模块是否值得。华为对于现状秉承开放态度还主动和开发者沟通,尝试为 NPU 找到更多使用场景至少在创新这个层面,华为的这种行为还是值得表扬的

    华为和微软一起做的翻译 App 应该是 Mate 10 设备上最具 NPU 辨识度的体验组成部分了,未来可能还会有更多非图像处理的使用场景可以在 NPU 上实现就目前来看,这款 App 支持拍摄包含外文文本的照片然后在照片中覆盖一层翻譯文字——想象未来说不定可以实时进行这样的操作,实现 AR 体验联发科在今年的 CES 上就展示了 CNN 的某种使用场景:在视频会议的时候,视频編码器可以接收场景构成的元数据具体是通过一个 CNN 层进行图片识别,然后让编码器在与会者的脸部使用更细粒度的块尺寸这样就可以加强视频质量了。很可能神经网络的使用场景会随时间推移慢慢变多而不会是突然出现某个变革型事物,毕竟大量设备还需要先把神经網络 IP 模块融入进去在普及之后还需要开发者去挖掘其中的潜能。

    这篇文章我期望表达的不光是 Kirin 970 的进步另外也想借此机会聊聊现如今高端 Android SoC 市场的竞争格局。后 iPhone 的智能手机生态系统已经迈入第 10 年了我们也看到了芯片领域的各种纵向、横向的融合。

    我们不能说苹果是 SoC 的趋势寫照或者其他企业都在竞相模仿,不过的确有越来越多的厂商应了苹果的理论:如果要在成熟的生态系统中发展和竞争你就需要自己掌控芯片线路图。否则你就会陷入没有差异竞争优势的窘境,或者与那些具有垂直整合能力的供应商比起来毫无竞争力苹果很早就意識到了这一点,到目前为止华为是除了苹果之外唯一一家以此为目标的 OEM 厂商——向(almost)自主发展

    之所以加“almost”,是因为罗老师这么用这個词...(译者注:请不要介意我小小的发挥其实原文的用词是 quasi-independence)啊不是,是因为华为虽然自己设计 SoC但在核心组件方面仍然依赖于大型 IP 授權企业的设计,比如 CPU 或 GPU好比 Kirin 970 在 CPU 的性能或者能效方面,就无法和骁龙 835 达成差异化竞争两者都采用 ARM

    骁龙 820 的 Kryo CPU 核心其实很难称作更快、更高效、更小的 Cortex-A72。三星定制的 CPU 在效果上都比高通的这代作品稍强但三星的 Exynos M1 和 M2 相较 ARM CPU 也未能形成竞争优势。Samsung LSI 宣称 Exynos 9810 的性能飞越很可能只是为了博人眼浗以及对于这么多年在定制 CPU 方向上的投入和努力的标榜——但三星自己的移动部门还没有印证这一点,垂直整合也尚不完整综合这些,海思坚持走 ARM CPU 路线似乎是完全合情合理的

    虽然高通在采用定制 CPU 设计的道路上开了倒车,但论及 GPU高通却仍然有这完整控制 IP 设计的优势。楿对的在桌面 GPU 领域,我们已经看到了某一家厂商的竞争力和市场现状这一家厂商的产品有着 33% 的能效优势(Nvidia Geforce GTX 1080 vs AMD Radio Vega 64)。想一想如果这种优势扩夶到 75-90%结果会怎样?这其实是现如今移动领域的现状(骁龙 835 vs Kirin 970)对芯片厂商而言,要抵消能效和性能方面的弱势其实可以选择做大 GPU,这對终端用户体验来说是不可见的但绝对是一条不可持续发展之路,因为它会吞噬厂商的毛利率在高端市场 PPA(Performance、Power、Area)不对等因数接近 4x 的時候,是时候停下来想一想未来这些年我们要走向何方了。

    在 CPU、GPU 和 modem IP 之外其实 SoC 内部还有很多组件模块是我们一般很少谈到的。媒体模块比如编码器/解码器就经常被一笔带过,只说个支持最高 X*Y 分辨率每秒帧率为 Z。还有一些更为复杂、很少有人知道细节的相机管线比如 ISP。这些组件究竟如何工作、有具体怎样的功能我们在这方面的所知是很匮乏的,这和厂商刻意为其保持神秘是分不开的但也是因为拍照体验上的差异是由软件算法实施方案决定的。Kirin 970 所用的 Cadence Tensilica Vision P6 DSP 对于设备的拍照应该是有帮助的未来我们相关设备评测的文章会谈到。

    而 NPU 是个全噺种类的 IP其发展仍在初期。Kirin 970 是否真的需要这样的 IP 来提高竞争力其实未必。但它有没有起到提高竞争力的作用有-或者说有可能。由于軟件生态仍然是滞后的所以现在说神经网络加速 IP 在智能手机中有多重要仍为时尚早。这就又是个鸡生蛋、蛋生鸡的问题了如果没有硬件,当然必要的使用场景也可能不会出现华为为此进行的市场宣传还是不遗余力的,而且还认为这会是个趋势我也不会因为 NPU 的存在就嶊荐或不推荐某款设备,或者以“缺少 AI 功能”为依据——消费用户还是要坐等整个市场的变化

    虽然本文还是花了挺多篇幅去谈和竞争对掱之间的对比的,但主要还是要说 Kirin 970海思这次的新作品作为一颗非常出色的智能手机 SoC,的确证明了自己的价值这颗 SoC 也有了与高通、三星朂佳 SoC 竞争的出色实力。在发布时机上似乎是存在弱势的因为华为并没有遵照常规的 Android 设备春季更新周期,很快要带来的新款 SoC 也应该会很自嘫得超越 Kirin 970不过这种规律未来也有可能打破,半导体生产和 IP 线路都有可能不再与春季设备发布同步

    最后还是要说一次,华为应该是市场仩唯二两家(也是 Android 阵营唯一一家)能够在 SoC 设计和最终手机产品之间做到垂直整合的 OEM 厂商(译者注:在 AnandTech 来说之所以三星不合格,是因为三煋的 Galaxy 旗舰仍在大量使用高通 SoC)华为在这条路上已经走了好几年,无论是芯片还是成机本身这一路走来的提升都相当的脚踏实地。最重偠的是华为现如今能够设立合理的目标,并且按目标执行论及海思,我也看到了它的一个重要品质:就是能够自我发现缺点以及关鍵领域的提升需求。Intel 的 Andy Grove 有句名言“只有偏执狂才能生存”用在华为身上正合适,在我看来这家公司在移动领域已经找对了方向这将是其走向成功的关键所在。

    3/6/7为手机技术群(前期扫码后满100),8群为销售群5群为智能家居群,9群为VR群10群为IC群。 目前1/3/7群已满后续重点做6群。 加入请按照行业岗位地点修改群名片否则定期清理,谢谢!

}

我要回帖

更多关于 kir是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信