从Tegra K1和Denver,看那些年我们一直误会的NVIDIA CPU

新闻资讯2024-06-11 04:49小乐

从Tegra K1和Denver,看那些年我们一直误会的NVIDIA CPU

提到NVIDIA,大概99%+的朋友第一反应都是“显卡”、“GPU”。作为全球两大GPU巨头之一、GPU领域的绝对霸主,地球人都知道它前几天刚刚发布了全新图灵架构和RTX 2080Ti/2080/2070显卡。

这其实并没有什么问题,但近年来,人们在对NVIDIA GPU 的强大能力麻木的同时,似乎忽略了一些事情。 NVIDIA 的GPU 强大吗?确实很强,而且爆发力强。无论是在PC上还是在SoC上,这是有目共睹的,每个人都知道……emmm,接下来怎么办?

直到不久前我看到了这张照片:

显然,这是对目前市面上主流SoC的一个简单总结,生动、简洁、易懂。但当我看到最后一张的时候,我瞬间意识到了之前人们忽略的一个问题:NVIDIA SoC的CPU怎么样?真的如图所示吗?

CPU不好吗?这确实令人不满意。事实上,NVIDIA对于SoC设计并不陌生。到目前为止,他们已经发布了7代Tegra系列SoC。 NVIDIA在Tegra SoC中一直使用自己的GPU架构,但前几代的CPU部分使用Arm公版CPU核心。与同时期的高通、三星、联发科处理器相比,除了“祖传”GPU外,没有什么突出的地方。使用Tegra处理器的手机和平板电脑也有很多,但效果并不理想。

然而,即使时间就此停止,我们似乎也无法发现NVIDIA SoC中的CPU有什么问题。如果非要说的话,我不知道NVIDIA 的老大黄是不是Apple Joe 的铁杆粉丝。这几代Tegra 没有集成neon 协处理器,并且Flash 播放能力较差。至于使用Arm公版CPU核心,虽然确实如此,但三星、华为、联发科和德州仪器同时也使用了公版核心。

更重要的是,NVIDIA在CPU方面的野心和实力远远超出了人们的固有印象。

2011年CES上,NVIDIA公布了丹佛项目,宣布将开发基于64位Arm v8指令集的自研架构,适用于从移动设备到服务器的各种设备。仅仅三年后,在2014年的CES上,NVIDIA推出了采用自主研发的Denver架构的Tegra K1,成为继苹果之后第二家发布基于Arm v8指令集的消费级SoC的公司。

时间回溯到四个月前,即2013 年9 月,苹果出人意料地在其A7 处理器上使用了基于Arm v8 指令集的Cyclone 架构。在接下来的一年多时间里,同期的所有其他CPU架构,包括基于Arm v7指令集和Qualcomm Krait自研架构的Cortex A15公版架构,甚至还有同样基于Arm v7指令集和Qualcomm Krait自研架构的Cortex A57 Arm v8指令集,已被Cyclone横扫。

除了丹佛。

雷锋网介绍,传统的CPU架构设计分为两种:顺序执行和乱序执行。顾名思义,顺序执行系统严格按照收到的顺序执行微指令,而乱序执行系统则允许在不改变指令运算结果的情况下调整执行顺序。

乱序执行一直被认为是顺序执行的演变,已经达到了极限。 CPU 执行的任务很复杂。在某些情况下,RAM 等外围组件会阻止指令的顺序执行。这种情况下,乱序执行可以显着提高操作的灵活性,有效提高吞吐量。

雷锋网之前介绍Arm Cortex A76和三星Exynos M3架构的文章中,不止一次提到了乱序执行。可以看到,在这些高性能的Arm内核中,乱序执行似乎成了唯一的选择。然而,切换到乱序执行需要添加乱序执行窗口,以有效识别可以重新排序的指令,并确保指令可以安全地乱序执行。这显然会增加架构的复杂度,芯片尺寸和功耗也会显着增加。

NVIDIA采取了不同的方法来提高架构性能,认为乱序执行并不是解决问题的唯一方法。不仅敢想象,Denver还真的放弃了Arm公版高性能架构中主流的乱序执行方式,转而采用低功耗处理器上常见的顺序执行方式,并为其配备了一套高效的二进制翻译和代码优化解决方案。

NVIDIA的想法很简单:顺序执行系统面临的基本问题很清楚,无非是内存停滞等硬件问题,以及指令排序不良等软件问题。那么这些问题就一定需要对架构系统进行硬性改变吗?能否在“软层面”解决?而这就是丹佛的核心理念。

这种架构很不寻常Denver 的一个不寻常之处是它的内部指令格式与ARMv7 或ARMv8 有很大不同。从具体的内部结构来看,Denver采用了VLIW(Very LongInstruction Word)格式来执行GPU(毕竟是NVIDIA)中相当常见的指令。

在架构前端,Denver 的指令解码宽度达到了前所未有的7 个发射,比Cortex A15(3 个发射)、Cortex A57(4 个发射)和Apple Cyclone(6 个发射)还要宽。 NVIDIA官方称之为“7+”架构,其中“+”指的是NVIDIA为丹佛设计的DCO(动态代码优化器)。

DCO 的工作是将Arm 代码转换为Denver 的本机格式并优化该代码以在Denver 上更好地运行。对于整个CPU来说,DCO是最关键的环节,因为它的性能将直接由DCO决定。

长期以来一直有传言称,Denver 最初是针对x86 设计的,其底层设计和二进制翻译机制旨在兼容x86 指令的执行,而不侵犯任何x86 专利。不管这个传闻是否属实,最终的结果是NVIDIA在软件层面取得了惊人的成绩,创建了一个可以将硬件设计和指令集分离的架构。

不过,尽管DCO这么离谱,NVIDIA在它之外还配备了一套Arm指令解码器。虽然官方说这个Arm解码器不是“备胎”,但事实上,它显然是“满口诚信”。 Denver 的大部分指令来自二进制翻译。该Arm 解码器只有区区2 个指令宽度(Cortex A8 级别)。 ),并且只有在二进制翻译无法高效处理时才会接管直接解码Arm 指令。

同时,由于NVIDIA选择在“软层”解决问题,因此Denver还具备其他架构所不具备的可升级性。如果DCO得到改进,NVIDIA可以进一步部署新版本的DCO。

最终,丹佛的实际表现可谓惊艳。在SPECint2000测试中,Denver相比Cortex A15平均提升了35%,最大提升甚至高达67%:

更具体地说,使用Denver核心的Tegra K1性能完全超越同时使用Cyclone核心的苹果A7。与Intel Haswell核心赛扬2955U相比,也有一个来回。

读完本文,有些朋友可能会有疑问。既然NVIDIA SoC的CPU不仅不弱,而且还和GPU一样强大,为什么NVIDIA在手机和平板电脑领域却做不到呢?最后,你就放弃了吗?

很简单,因为他们根本就不想去争夺这块……

与我们这样看热闹、不怕大事的普通用户不同,NVIDIA对自家SoC的情况非常清楚。作为一个刚刚入局的新人,在基带、基础包、SDK、节能降耗等方面都处于后来者劣势,与市场上这些根深蒂固的老黄牛竞争是不明智的。

2014年还没看到德州仪器退出手机SoC领域,Tegra已经为小米3发布到了第四代,也算是一个好的开始。交个朋友.

显然,NVIDIA看到了诸如——AI等高性能移动计算平台等SoC更好的应用领域,说白了就是自动驾驶和机器人。

经过Tegra K1和Tegra X1的过渡,Tegra Parker(即NVIDIA Drive PX)终于凭借改进版的Denver2架构成功进入自动驾驶阶段。今年刚刚推出的NVIDIA Jetson Xavier 平台带来了名为Carmel 的自研架构,实力无与伦比。其命令解码达到了惊人的10宽度,在Denver的基础上又向前迈进了一大步。步。

据雷锋网报道,当前AI芯片领域在追求纯粹AI计算的精简设计时,NVIDIA是唯一没有放弃高性能CPU的公司。也是CPU、GPU、AI三部分平衡最好的公司。

所以,老朋友们,别再说NVIDIA的“CPU不能支持GPI”了。 NVIDIA真的不是CPU不好,而是它太强大了,强大到已经超出了我们熟悉的维度……

猜你喜欢