因为最后一款替代品骁龙765G的骚操作,在大家的心目中,谷歌Pixel系列被视为下一代Pixel 6系列就不一样了,包括谷歌自研的SoC——Google Tensor,与时俱进的相机硬件,相对大方的价格
重回旗舰市场的计算摄影巨头终于愿意用现代CMOS了!机器立即跑去告诉对方,直到国外用户拿到真机,Anandtech才公布了对Google Tensor的测试结果和分析.
自学还是魔改。
意味着谷歌Tensor是探索新工作负载的起点,现有芯片解决方案无法实现既定目标凭借多年的机器学习研究经验,谷歌将Tensor打造成了一款以机器学习为差异化的SoC,据说能让Pixel实现很多独特的新功能
关于谷歌张量的第一个争议是它是自研还是魔改这是你对自我研究的定义谷歌和三星看似紧密的合作模糊了传统自研和半定制的界限
在谷歌内部,谷歌Tensor的代号是GS101,可能是谷歌SoC或者谷歌Silicon的意思至于之前爆料的Whitechapel,没有证据表明是真的芯片
Google Tensor基本遵循三星Exynos的命名规则,其ID为0x09845000,拆解后可以看到丝印为S5P9845作为参考,三星Exynos 2100的ID为S5E9840,Exynos 1080为S5E9815
几年前,有消息称三星开始提供半定制芯片服务当时有三星,思科,谷歌合作的消息ETNews在2020年8月的文章中提到,三星将根据客户需求提供定制化的技术和功能,甚至从芯片设计阶段就开始提供
三星不再是单纯的芯片制造商,而是全面参与芯片设计,可以和ASIC设计服务相提并论但这是一个非常特殊的情况毕竟三星不仅有TSMC那样的芯片代工业务,还有自己的自研SoC
谷歌Tensor和三星Exynos高度同源除了CPU,GPU,NPU等高级结构外,芯片中的很多基本结构都是同源的虽然在纸面上,三星,联发科,海思甚至高通都使用arm的Cortex CPU和Mali GPU公共架构,但它们的底层架构还是有很大的不同
谷歌Tensor采用的是三星Exynos的框架,不仅时钟和电源管理架构相同,而且它们的存储控制器,外接接口PHY IP等高级块,甚至更大的ISP,媒体编解码等IP功能块都非常相似有趣的是,Github上已经有了GS101的公开信息,可以和1:1中的Exynos进行对比
但是,虽然使用了Exynos的基本模块和框架,但SoC的定义确实是由谷歌控制的在IP块之间的结构和连接设计上,谷歌Tensor和三星Exynos有所不同
例如,在Exynos上,CPU通过总线连接,而谷歌Tensor的CPU集群集成在一个更大的CCI从外部看,可能是不同的总线设计,也可能是完全不同的IP另外,和内存控制器的连接方式一样,它们也是不同的
技术性能分析
单看CPU就知道谷歌Tensor的特别之处,2x1x2xa76 4xA55这种2 2 4的结构已经出现在三星Exynos 9820和Exynos 990上但在如今的安卓旗舰SoC中,1 3 4才是绝对的主流而且只有谷歌敢堆2 X1
理论上有两个X1超级核心,其CPU多核性能会比单个X1产品更强另一方面,谷歌Tensor的X1为2.8GHz,略低于骁龙888的2.84GHz和Exynos 2100的2.91Hhz另外,和骁龙888一样,谷歌也给了1MB的L2缓存,比Exynos 2100的512KB残血X1更猛
在大核心方面,谷歌选择了古老的A76架构,这是一个非常有争议的问题毕竟这是不合理的,因为A77和A78的性能和能效比更高即使是Anandtech也没有得到谷歌的明确解释
他们猜测可能是几年前设计芯片的时候,三星没有更新的ip供谷歌选择也可能是超大核换成X1的时候,连大核都来不及换但是谷歌不应该故意选择A76,因为下面的测试显示A76真的跟不上时代
小核这边,4个1.8GHz的A55s,谷歌选择了128KB的L2缓存,而不是三星Exynos本身使用的64KB,这让这款CPU更像骁龙888可是,奇怪的是,谷歌将集群的L3缓存频率绑定到A55,这将导致延迟和功耗问题此外,这与Exynos 2100的L3频率不同
Google Tensor 的 GPU 是 Mali— G78 MP20,规模仅次于麒麟 9000 的 G78 MP24大家最开始以为 Google 会用低点的频率来提升能效比但结果 Google 竟然把着色器频率推到 845MHz,把 tiler 和 L2 频率推到 996MHz,简直癫狂另外,它也是第一个用上 G78 分离频率特性的产品
作为参考,Exynos 2100 的 G78 MP14 也只是854MHz,后者的峰值功耗已经很高了结果 Google 增加 42% 的核心,却依然维持高频因此它的峰值性能很让人期待,但峰值功耗也会很猛而内存控制器似乎和 Exynos 2100 相同,支持 4x16bit 的 LPDDR5,理论带宽 51.2 GB/s
它也用了 8MB 的系统缓存,但还不清楚是否用了和三星 Exynos 2100 一样的 IP,因为它们的架构和行为方式都不太一样Google 大量使用 SLC 来提升 SoC 性能这个 SLC 允许自分区,将 SRAM 专门分给 SoC 上特定的 IP 块,使它们在不同用例下,能对全部或部分缓存进行独占访问
ISP 与 TPU
大家说 SoC 集成的 ISP 时,经常把它们描述为单个 IP但实际上,ISP 是不同的专业 IP 块的组合,每个 IP 块处理成像管线中的不同任务而 Google Tensor 非常有趣,因为它将三星用在 Exynos 芯片上的一些片段整合到了一起,同时还将自己开发的定制模块整合到了流水线中 —— 正如 Google 在展示 SoC 时所说的那样
成像系统部分和 Exynos 是一样的,如相位检测处理单元,反差对焦处理单元,图像缩放器,畸变校正处理块和纹理遮挡函数处理块等比 Exynos 少的部分,可能是三星的一些图像后处理模块
谷歌在 ISP 中加入自己的 3AA 模块 ,以及一对自己的时域降噪 IP 模块这些很可能就是谷歌所说的那些有助于加速图像处理的模块,这些是 Pixel 系列计算摄影的一部分,毋容置疑地地代表了图像处理流水线中非常重要的部分
当年的 Edge TPU 宣称在 2W 功耗下可以提供 4TOPS 的算力,但 Google 并未公布 Tensor 的 TPU 性能指标,但是在一些测试中可以看到它的最大功率是 5W 左右因此如果它们确实是有关联的,考虑到这几年的制程和 IP 上的进步,Google Tensor 的 TPU 性能应该有明显提升了
这个 TPU 是谷歌芯片团队的骄傲,它正在使用最新的机器学习处理架构,这个架构针对 Google 内部运行机器学习的方式进行过优化,并且表示它可以允许开发新的,独特的用例,这是 Google 做定制 SoC 的主要目标和出发点之一在后面的测试中,这个 TPU 的性能指标确实也是令人印象深刻的因为 TPU 的信息不多,我们只能基于它的驱动程序做简单猜测,它可能包含四核心的 Cortex—A32 CPU
其他模块
在媒体编码器方面,Google Tensor 使用了三星的多功能编解码器,还有一个看起来像是用于 AV1 解码的自研 IP 块这有点奇怪,因为三星的宣传中,Exynos 2100 是有 AV1 解码功能的,而且这个功能貌似也在内核驱动程序里面但在 Galaxy S21 系列中,这个 AV1 解码功能从未在 Android 的层面实现过
谷歌加入的这个专用的 AV1 解码器被他们称做BigOcean,它能让 Android 系统具备 AV1 硬解能力但非常奇怪的是,它真的就只负责 AV1,其他格式编解码还是由三星的 MFC 负责
Google Tensor 的音频子系统也不同,Google 用自己设计的 IP 块代替了三星的低功耗音频解码子系统,它们可以在无需全部唤醒 SoC 的情况下进行低功耗的音频播放我们认为这部分也是当协处理器用的,这也是 Google Tensor 和 Exynos 不同的地方
Google 还用了一种称为 Emerald Hill 的硬件内存压缩器,对内存页面进行 LZ77 压缩加速,反过来也可以用来加速交换中的 ZRAM 的卸载过程现在还不确定 Pixel 系列是否已经启用这个模块,但能确认在/sys/block/zram0/comp_algorithm目录中有lz77eh作为课外资料,三星早在 5 年前,就在 SoC 里集成了类似的硬件压缩 IP 模块但出于某些原因,这些模块从未被启用过,也许是能效比并没有他们预想中的高
图源 PBKreviews
另外,Google 还用三星的 Exynos 基带,做出了第一台非高通的毫米波手机Pixel 6 系列用的是三星的 Exynos 5123 基带三星在 2019 年就提到自己的毫米波射频和天线模块,说 2020 年会出现在量产机上Pixel 6 系列的峰值速度可以达到 3200Mbps,但很多测试中,它的网速只有高通产品的一半左右
虽然是同一个基带,但它不是像 Exynos 2100 那样集成在 SoC 里,而是外挂的可能是因为 Google Tensor 的 GPU 和 CPU 规模太大了,而且 TPU 的规模也是未知数毕竟就算是把基带外挂出去,Google Tensor 的规模也是相当大了,即便是和对比 Exynos 2100 的情况下
总的来看,Google 确实设计和定义了 Tensor ,同时有很多 Google 特有的设计,是整体的芯片上的差异化但从更底层的角度看,Tensor 和 Exynos 有很多共通之处,用了很多三星特有的基础模块,因此叫它半定制或许会更合适
实际性能表现:不尽如人意
测试中,Google Tensor 的 DRAM 延迟较高,还不如 Exynos 2100,和骁龙 888 比就更差了Google 改过了内存控制器,它会根据负载和内核的内存失速百分比来控制 MC 和 DRAM 速度,这部分是和三星不同的,其实际利用率也不如三星的内存控制器高现在不知道是 CPU 的问题,还是整个 SoC 内部的问题,但这确切地影响了下面的测试
它的 L3 延迟也相当高,比 Exynos 2100 和骁龙 888 高得多Google 没有给 DSU 和 CPU L3 缓存设定特定的频率,而是把它和 A55 小核的频率关联奇怪的是,即便 X1 或 A76 满载,A55 和 L3 却在低频摸鱼同样情况下 Exynos 2100 和骁龙 888 都是会提高 L3 频率的
在系统缓存测试中,能看到 11—13MB 的延迟情况 ,在正常的内存访问中,Tensor 也是比 Exynos 要慢的,可能和被改过的个别缓存管线有关。美国同样是该游戏最大的市场,贡献了4500万次下载,占28%。。
因为 L3 和 A55 的频率捆绑,且频率高,所以 Google Tensor 的 A55 小核是几个 SoC 里 L3 延迟最低的,彷如没有异步时钟桥一般。下载量方面,《RoyalMatch》累计获得超过1600万次下载。英国和德国位列第2和第3,分别占7%和7%。
CPU 部分,Google Tensor 更像是骁龙 888,而不是 Exynos 2100虽然 Google Tensor 的 L2 缓存是 Exynos 2100 的 2 倍,但频率低了 3.7%
Tensor 的弱点是内存延迟,导致 SPEC 测试中很多子项目都比 骁龙 888 和 Exynos 2100 慢,但能耗却更高SPEC 总分上,Tensor 的表现比 Exynos 2100 略差,对比骁龙 888 的落后幅度达到 12.2% ,由于跑完测试的时间更长,最终耗电还多了 13.8% 折算回来,相对骁龙 888 的差距应该是 1.4% 左右
它也有和 Exynos 2100 一样的降频问题,只是相对没有那么严重如果冷却得当,性能会高 5%—9% 左右
可怜的 A76 大核,骁龙 888 的 A78 比它强 46%,还更省电,实际 IPC 差距在 34%,这倒符合两个构架之间的差距如果真是为了省电,完全可以做个低频的 A78,但结果 Google 放了两颗频率又高,又耗电,性能还不行的 A76,只能推断 Google 是没得选,而不是有意而为之
越接近右下角,能效比越低,越接近左上角,能效比越高
A55 小核这边也不行,性能只是比同频的骁龙 888 的 A55 高 11%,但却几乎是 2 倍的功耗,俨然就是继承了 Exynos 高功耗 A55 的血统,能效比甚至比自己的 A76 大核还拉胯看看联发科天玑 1200 的 A55,再看看 A14 的能效核心,这真是个残酷的世界
Google Tensor 因为拉胯的 A76 性能表现,就算有 2 颗 X2 都无力回天,拖低了整体分数X1 本身也比对手稍慢一些,大部分时间的能效比都和 Exynos 2100 的 X1 一致但 A76 实在落后时代太多了,而 A55 又继承三星低能效的传统,一言难尽就是了
GPU 这边规模大,频率高,但 3DMark Wild Life 测试的峰值性能只比 Exynos 2100 高 21%在 GFX Bench 的 Aztec 场景测试中,领先 Exynos 2100 14%,小幅领先骁龙 888虽然采用了分频设计,但貌似瓶颈在 GPU 的其他地方
Tensor 的 GPU 峰值功率高达 9—10W,手机一跑就降频,拖低了整体功耗,所以才会有 7.28 W 的平均功耗Pixel 6 系列没有热管,散热配置和机身结构更像是 iPhone,而不是猛堆散热的安卓旗舰它跑起来时,左侧的 SoC 45 度,但右侧只有 30—33 度,散热确实是弱
让人不解的是,今年这批 SoC 都设定了高得不切实际的 GPU 频率,一跑就降频可能是为了应对突发的 GPU 负载或者是其他什么原因但无论怎么样,实际能效比是受累了
TPU:极强的推理性能
这是 Google Tensor 挽回颜面的地方MLPerf 测试中,Pixel 是在 NNAPI 跑的,其他厂商是各自的库,高通是 SNPE,三星是 EDEN,联发科是 Neuron,而苹果没有 coreML 加速,所以吃亏
在图像分类,目标检测和图像分割工作负载中,Tensor 成绩低于高通,但强于三星而在语言处理,Google Tensor 提供了骁龙 888 3 倍的性能,推理部分强得很Google 在宣传里,确实也提到过实时转录,翻译等使用场景是其差异化所在
还没发布的 GeekBench ML 测试,用是 TensorFlow 模型,代表的是 GPU 的机器学习性能这时候 Google Tensor 就弱于 Exynos 2100如果用 NNAPI 模型,此时是 CPU+GPU+NPU 的混合工作,Google Tensor 就可以大幅领先骁龙 888
除了绝对性能,跑 AI 测试时,Pixel 6 Pro 的整机功耗和 Exynos 2100 的 Galaxy S21 Ultra 接近单独进行推理任务时,Exynos 2100 的爆发功率达到 14W,骁龙 888 也有 12W但因为 Google Tensor 的 AI 性能更高,所以最终能效比要更高一些
不过 Google 还没有计划推出相关的 SDK 让开发者去更好地利用这颗强大的 TPU 但再看看三星,它的 NPU 发布都 2 年了,现在都没有 SDK 现在 TPU 的强大性能,主要集中体现在官方 App 里,像是给摄像头加入更多的机器学习功能,以及各种翻译功能
总结
Google 表示,他们搞自研 SoC 的主要原因是现有的 SoC 在机器学习上的性能和能效比太低而 Tensor 的机器学习性能和能效,被用来支撑新的用例和体验,例如我们在 Pixel 6 系列上看到的很多机器学习特性像是实时转录,实时翻译和图像处理等算法,所有这些都是运行在 Tensor 的 TPU 上的
虽然 Google 可能不想承认或者谈论,但 Google Tensor 确实就是和三星合作的产物,大部分都源自 Exynos,并继承了三星在能效比方面的弱点CPU 被古老的 A76 拖后腿,规模庞大的 GPU 被散热拖后腿,但 TPU 确实表现很好,特别是自然语言处理方面,远远抛离所有竞品
但总的来说,我们认为 Google 已经通过 Tensor 实现了最初的目标我们不知道 Google 下一代的 SoC 会走什么样的路线,但我们很有兴趣等等看
。郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。