本篇文章内容多来源于 arstechnica 的某次访谈,兴趣所致撰写,编辑部同事不必推荐本文。


 

1+3+4 的设计太普遍了。

天玑 1100 的四颗大核心最高主频都是 2.6Ghz,即便如此都要分个 1+3 这样的超大核设计来。骁龙系列的 845 是最后一代 4+4 的大小核设计,但最高主频 2.8Ghz 其实是单核睿频,四颗核心最高只能到 2.4Ghz 左右。这么做也许是为了让单核性能在跑分账面上输给 Apple A 系列输得不要太离谱进一步提升。后续的 855、865,都采用了专门设置超大核心的设计,甚至连中端的 765G 也开始试水跟风,整成了 1+1+6,兄弟型号 768G 更是进一步提升了超大核的主频。

三核心的架构确认下来,CPU 核心簇的命名也从之前的 Gold、Silver 转变成了Prime、Gold、Silver。值得注意的是:Apple 在移动端似乎没有使用这种超大核心的习惯,在大小核设计上都是使用两颗大核;而在 android 阵营「超大核心」需求出现 2~3 年后,arm 才专门整了一个 X1 架构使得这颗芯片从设计架构层面成为真正的超大核,而非此前的同架构超大核。

此刻感谢 arstechnica 带来对阵 Google 芯片部分的深度访谈,这是一年一刻我最快乐的时候,当然今年可能有两个快乐时光:一个是深度访谈 Google Tensor,一个是深度解构 Android 12 底层。

原文地址:https://arstechnica.com/gadgets/2021/10/the-google-silicon-team-gives-us-a-tour-of-the-pixel-6s-tensor-soc/

从这篇访谈文章中,我们或许能够一窥为何 Google Tensor 如此不合群地采用 2+2+4 架构。

一切为了持久战

Carmack continued, "You might use the two X1s dialed down in frequency so they're ultra-efficient, but they're still at a workload that's pretty heavy. A workload that you normally would have done with dual A76s, maxed out, is now barely tapping the gas with dual X1s."

出我意料的是,Google 在 Tensor 的设计上相当注重能效。塞两颗 X1 而非一颗的原因,不是想获得更高的多核峰值性能,而是想借助低频 X1 的高能效比获得持续性能。(至于为什么是持续性能,后面将会讲到。)按照 arm 的说法,在同样的散热环境下,5nm 的 A78 会比 7nm 的 A76 提供多达 20% 的持续性能,但 Google 宁愿中核心在散热上更保守一些,采用 5nm 的 A76 核心,发热更少更省电,无论是相比之前的 7nm 的 A76,还是相比 5nm 的 A78。而这些中核心簇省下来的「散热配额」, 毫无意外地肯定是分给了超大核心,两颗 X1。

现代的 SoC 都有「干完活立刻闲下来/睡觉」的机制,所以面对短时重负载任务的时候,SoC 更倾向于「赶紧把活干完睡觉」。等到了有长时的中负载任务的时候,双 X1 的场子就找回来了:以高能效比的方式游刃有余地一直跑着(barely tapping the gas with dual X1s),比如打开相机取景、机器学习运算、录制等。放在以前,这种负载可能就要把两颗 A76 累出老命(指的可能是之前 765G 上的 A76,这也是为啥 Pixel 5 和 5a 在录制 4K 的时候会过热),现在 Pixel 6 就随便录制也不会感觉明显过热。

但其实这种说法依旧不能说服我:A77、A78 相比 A76 在细节上都有不少改进,可以理解为更加高效的核心结构,想要节省出「散热配额」无论是降频还是其他手段,A78、A77 都可以比 A76 做得更加优秀。这里一直无法解开的疑问就是:为什么中核心是 A76?

以我个人对 Google 的了解,给出两种猜测:

  • 核心面积不够,塞不下 A78,只能塞 A76。
  • 第二种猜测我觉得更为靠谱一些:A76 是 Google 的老朋友了,调教起来可以直接利用之前的经验。Pixel 4a 所搭载的 730G,Pixel 4a 5G、Pixel 5、Pixel 5a 所用的 765G,这广泛利用的两款 SoC 都是搭载了两颗 A76 核心

另外针对大家都在用的 1+3+4 ,Google 的态度就比较鲜明:光想要好看的单核跑分的话,堆一个超大核的确没啥毛病,但 Google 想要的是日用反应快(responsiveness)、综合能效高的高性能(the most efficient way to get high-performance)。虽然可能每一代芯片的设计都会不一样,但对于 X1 来说,Google 坚信现在这样的 2+2+4 的排布是最合适的。果然脑回路有点不太一样,对于有着多年芯片调教经验的 Google 来说,虽然只是刚刚入门芯片设计,但是对于那些高频和高性能之间的关系、每瓦性能等等都并不陌生。

简单说,和整个公版架构、高通等都在为了营销盲目追求更高的账面单核性能的时候,Google 找三星为 Pixel 6 系列自定义了更适合设备实际使用需求的一代 SoC:Google Tensor。

PS:原文文章里提到说 A76 是去年(last year)的大核心,但我个人认为肯定不是啦,A76 是 18 年发布的,19 年用得比较多,也就是 855 那一代。

「让视频拍摄也能用上我们的图像算法」

这份访谈里面也提到了 Google 对 Tensor 芯片的机器学习芯片性能考量。传统的诸如 华为 或者 Pixel 4 时代的 Google 也考虑使用专门的芯片对机器学习进行加速。Pixel 2 的 PVC 图像加速芯片只用在第三方应用里(这么说我从来就没用过),Google 这次索性就直接「软硬结合」了,也是因为这样,在 Pixel 6 上门跑的机器学习代码根本无法在旧设备上好好施展。

所以 Tensor 到底加速了个什么玩意儿?

HDR+ 算法

从前的 Pixel 有特别牛逼(但不为大陆用户所了解)的 HDR+ 算法,半秒钟就能把 10 帧画面堆叠起来,但是在视频方面就很可怜:性能不够、硬件落后。还记得连续用了好几代的 IMX363 吗?因为芯片性能不够于是也没办法使用算法来改善。这次的 Pixel 6 系列干脆直接都改了得了:传感器改 GN1,HDR+ 视频版本算法 HDR Net 也一起横空出世,同时专门为了这个算法在硬件(ISP,图像信号处理器)上定制了特定的加速器。

就这样,Google Pixel 标志性的成像风格也被带到视频拍摄中去了。

(你也可以这样理解,双 X1 架构主要面对的就是 Pixel 6 的视频拍摄场景,一颗负载太高发热过大不划算,两颗一起低频算,同时拉低了中核心规格来让电让「散热配额」。)

配合这样的算法和图像性能、机器学习性能,Google Tensor 搞了不少活,以「面部去模糊」(Face Unblur)功能来说,当拍照的时候相机取景器检测人脸因为运动而变得模糊的时候,会让 Pixel 6 调动另一颗摄像头一齐拍两张照片,主摄像头还是老一样拍,因为进光量足够而有更少的噪点,超广角镜头就进行更快曝光抓准人脸,然后进行经典的对齐合并(align and merge),这样用户就得到了一张人脸清晰、成像不错的照片。这个技术抓拍熊孩子肯定没啥问题,不知道能不能放到狗狗猫猫呢。

另一个机器学习性能提升的层面是语音识别,据说是 Google 有史以来最先进的语音识别模型(而且本地离线运行),现在会根据上下文内容结合语音暂停,来自动加入逗号或者句号,还能自动通过历史记录或者通讯录内容正确拼写人名。Tensor 芯片甚至只用到了一半的功耗就达成了任务,相比之前更加高效。

也正是因为 Tensor 系列在运行此类任务时的高效,Google 也敢放入更多的花里胡哨人工智能类的功能(Tensor-powered features ),比如实时翻译(live translations),而此前这类功能往往因为耗能太多/不够高效/容易发热而无法落地。如今在 Pixel 6 上,在任何有麦克风按钮的地方,都用到了这套由 Tensor 驱动的离线本地语音模型,连唤起语音助手的热词检测都更准确了。

买吗?

以上都是 Google 芯片部门访谈的时候所提供的细节,实际使用的时候到底热不热、够不够好用、优化和打磨是否到位,这些让每一位用户感受到的综合产品体验,其实更关乎产品,而非这些有点点儿硬核的技术细节。从我个人对 Google 的了解来看,也许技术层面并不弱势(毕竟领先业界几年开始整计算摄影),但在综合产品力方面并非顶流。本篇所聊到的仅仅是一块芯片,并不代表 Pixel 6 系列因此就值得购买。

拓展阅读: