百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

从14核CPU到AI游戏,浅析Arm新架构的更多细节

ccwgpt 2024-10-15 09:10 34 浏览 0 评论

前段时间,我们三易生活已经给大家分析过Arm最新一代的CPU和GPU架构设计,不过当时的资料主要还是来源于官方博客文章,以及面向大众公布的相关信息。

考虑到这些资料的宣传目的,它们通常并不会讲得特别详细,特别是在一些技术细节、研发背景等方面往往会比较为缺乏。这也就是为什么我们会在当时的内容中指出其中的一些性能对比的数据缺乏参数说明,甚至可能会影响到可信度的原因。

日前在参与了Arm方面召开的技术沟通活动,并与相关专家们近距离接触后,我们也终于得以为大家揭示更多关于Arm最新一代消费级计算终端平台的更多细节。


从X4到X925,命名规则大改背后的逻辑


这次首先要说的,就是Arm本世代产品线的命名改变。

众所周知,过去Arm的“超大核”在命名上采用了很特别的单位数规则,即从Cortex-X1到X4。这些名称有两个好处,其一是它可以清晰地表明架构的代次,第二点就是这种单位数命名完全不同于大核(Cortex-A700系列)和小核(Cortex-A500系列)的形式,会让人“一眼就感受到”超大核的特殊地位。

但这种情况,在这一代上明显发生了改变。按照Arm方面最开始的说法,他们之所以要将新的超大核命名为Cortex-X925,主要是想要体现其(相对于以前的Cortex-X系列)取得了有史以来最大的代际性能进步。


有意思的是,当我们三易生活提出,新的命名反而可能会让这一代的“超大核”看起来显得不那么“特别”后,Arm方面显得相当惊讶,但他们也因此进行了一些很有价值的补充说明。

其一,是Cortex-X925这次虽然换用了与大核、小核相同“规则”的命名方式,但它的定位并没有降低,依然是旗舰专属。Arm方面的相关人士甚至还专门强调,Cortex-X925绝非过渡性的架构设计,而且绝不会被下放到非旗舰平台。

其次在Arm方面看来,Cortex-X925这个新的名称,也有为了显示其与新的Immortalis-G925旗舰GPU“相配”的意思。当然,这多少也反映出如今Arm更愿意将他们CPU和GPU设计进行“打包销售”(即我们昨天讲到的Arm终端计算子系统)的意味。


智能手机何必只有8核,Arm已经铺平了道路


其次,在提到如今智能手机SoC中CPU的核心布局时,许多朋友想必首先都会想到“8核CPU”这个概念。即便是在最近这两年,一些顶级旗舰SoC里的“大中小”CPU核心组合比例发生了各种各样的变化,但它们绝大多数还是维持在“总共8核”的水平上。

但是在Arm方面看来,如今这种对于“8核CPU”的坚持,其实未必是源自软件优化方面的需求,因为具体到应用上,实际上并没有几个软件真的能够“完全吃满”8个CPU线程。在实际使用中,反而更多的场景都是许多软件在“共享”CPU的资源,它们有的可能只能用到1颗核心、有的可以用到2核心,还有的可能可以同时使用4个核心,靠的都是手机自身在进行智能调度。

换句话说,实际上对于如今的智能手机而言,超过8颗的CPU核心设计未必会有什么优化问题。正因如此,Arm实际上在最新一代的产品组合里,就提供了相当有“想象力”的CPU组合方案,比如它甚至可以支持12颗Cortex-X925搭配2颗Cortex-A725、从而组成惊人的14核CPU配置。

在此基础上,Arm方面更进一步指出,真正制约了如今智能手机SoC核心数量的因素,其实是芯片设计时的面积控制需求。举例而言,最近几年手机SoC里的CPU部分所占用的面积几乎是“原地踏步”,为了给其他更“热门”的计算单元(比如ISP或NPU)腾出面积,或许才是导致芯片厂商大多不敢突破8核心CPU的原因所在。

但是针对这一点,Arm方面现在也做了一些工作,比如他们就设计了针对Cortex-A725架构的面积库方案。这种设计下的Cortex-A725虽然跑不到很高的频率,却可以显著缩小面积、同时保障IPC和能效不降低。说得更直白一点,这其实就是在鼓励有“追求”的SoC厂商可以“大核当小核用”,从而塞进更多的大核、甚至是超大核在他们的SoC里。


重视光栅性能提升,Arm新款GPU的方向对了


除了更大胆的CPU设计,Arm这一代的GPU方案也有一些潜在的亮点。

首先从基本的产品规划上来看,大家已经知道Arm这代的GPU包含三条产品线,即Immortalis-G925、Mali-G725和Mali-G625。


在此前的产品解析内容里我们三易生活已经提到,这一代的三款GPU本质上采用的都是相同架构,它们的区别主要体现在明显的核心数量差异,以及对光线追踪的支持与否上。

但实际上在我们这次与Arm方面的沟通中得知,这一代的Mali-G725 GPU尽管在官方资料中并没有光追的相关标注,但实际上也可以被配置为支持光追。


看到这里,可能有些PC玩家会产生不好的联想。因为这是否意味着未来我们会看到一些“不够高端”的SoC,用着中端配置的Mali GPU,却公然宣传支持“旗舰级光追特性”呢?

虽然不能完全否定这种可能性,但值得关注的是,至少在这一代的GPU基础架构上,Arm的设计思路是极为“务实”的。比如Immortalis-G925现在支持更多的着色器数量,同时它的底层图块吞吐量和着色器作业分配的速度都得到了显著提升。


除此之外,通过与Epic Games以及Google和联发科的合作,Arm GPU现在可以支持桌面级的虚幻5渲染器、用于光线追踪的Lumen光照解决方案,以及安卓动态性能框架(Android Dynamic Performance Framework),从而实现更复杂的主机级游戏光线追踪品质,以及更高分辨率、更清晰的游戏视觉效果。

如果将这种做法与当前PC上的显卡功能方向去进行对比就会发现,事情变得有那么一点点讽刺了。因为PC上的GPU现在普遍在追求用AI去“缩放”游戏画面,这是因为它们本身的光栅性能进步幅度追不上显示器分辨率、刷新率的升级速度。

但是Arm则没有这样去“取巧”,虽然如今智能手机的游戏真实渲染分辨率也普遍低于屏幕的物理分辨率,可他们还是选择了实打实地强化GPU的硬件光栅能力。所以至少在解决问题的态度上,Arm这样的做法目前显然也更值得去点赞。


专注CPU AI加速,Arm的优化方案很务实


最后必须要提及Arm的Kleidi软件库,这是一种旨在提升Arm处理器AI性能的官方软件优化方案。但是与大家熟知的其他一些智能手机AI加速技术相比,它又有着一些格外的特别之处。

首先,Kleidi专注于加速CPU上的AI性能,而并不依赖于GPU或NPU。这就会带来一些显著的好处,比如它完全可以在那些使用非Arm架构NPU、GPU的SoC上起作用,而且相比于架构五花八门的NPU和GPU,Arm的CPU在如今的移动平台(特别是智能手机)上显然要“普及”得多的。所以这就意味着Kleidi可以很容易地触及更多设备,而且适配、优化起来也更容易,成本更低。

其次,虽然Kleidi是与Arm 2024年的产品线同期发布,但这并不意味着它只能支持最新的Arm CPU。事实上,Arm方面在设计Kleidi时,就已经考虑到了对于老平台的兼容性,它甚至可以用在“古老”的Arm V8指令集CPU上,去使用NEON这样的老指令集去实现AI加速效果。

Arm方面通过实验证明,仅仅通过代码优化就可以让现有机型提升数十倍的AI生成速度


而且Kleidi也不需要开发者去学习某种全新的AI框架,Arm方面直接与MediaPipe、LLAMA.cpp、PyTorch和TensorFlow Lite进行了合作集成。开发者可以很容易地让主流AI功能在各种Arm设备,比如手机、Windows PC上“跑起来”,切实地加快相关应用和功能的落地速度。

最后,Arm方面还正在与Unity合作开发端侧推理引擎Sentis。它可以在所有支持Unity游戏引擎的设备上实现AI游戏体验,将游戏中的AI模型内存占用率降低72.5%,同时提升特定AI框架在游戏中的性能多达660%。看起来游戏行业已经在开始热议的“分布式文案和生成式对话”,说不定首先会在手游领域落地了。

相关推荐

RACI矩阵:项目管理中的角色与责任分配利器

作者:赵小燕RACI矩阵RACI矩阵是项目管理中的一种重要工具,旨在明确团队在各个任务中的角色和职责。通过将每个角色划分为负责人、最终责任人、咨询人和知情人四种类型,RACI矩阵确保每个人都清楚自己...

在弱矩阵组织中,如何做好项目管理工作?「慕哲制图」

慕哲出品必属精品系列在弱矩阵组织中,如何做好项目管理工作?【慕哲制图】-------------------------------慕哲制图系列0:一图掌握项目、项目集、项目组合、P2、商业分析和NP...

Scrum模式:每日站会(Daily Scrum)

定义每日站会(DailyScrum)是一个Scrum团队在进行Sprint期间的日常会议。这个会议的主要目的是为了应对Sprint计划中的不断变化,确保团队能够有效应对挑战并达成Sprint目标。为...

大家都在谈论的敏捷开发&Scrum,到底是什么?

敏捷开发作为一种开发模式,近年来深受研发团队欢迎,与瀑布式开发相比,敏捷开发更轻量,灵活性更高,在当下多变环境下,越来越多团队选择敏捷开发。什么是敏捷?敏捷是一种在不确定和变化的环境中,通过创造和响应...

敏捷与Scrum是什么?(scrum敏捷开发是什么)

敏捷是一种思维模式和哲学,它描述了敏捷宣言中的一系列原则。另一方面,Scrum是一个框架,规定了实现这种思维方式的角色,事件,工件和规则/指南。换句话说,敏捷是思维方式,Scrum是规定实施敏捷哲学的...

敏捷项目管理与敏捷:Scrum流程图一览

敏捷开发中的Scrum流程通常可以用一个简单的流程图来表示,以便更清晰地展示Scrum框架的各个阶段和活动。以下是一个常见的Scrum流程图示例:这个流程图涵盖了Scrum框架的主要阶段和活动,其中包...

一张图掌握项目生命周期模型及Scrum框架

Mockito 的最佳实践(mock方法)

记得以前面试的时候,面试官问我,平常开发过程中自己会不会测试?我回答当然会呀,自己写的代码怎么不测呢。现在想想我好像误会他的意思了,他应该是想问我关于单元测试,集成测试以及背后相关的知识,然而当时说到...

EffectiveJava-5-枚举和注解(java枚举的作用与好处)

用enum代替int常量1.int枚举:引入枚举前,一般是声明一组具名的int常量,每个常量代表一个类型成员,这种方法叫做int枚举模式。int枚举模式是类型不安全的,例如下面两组常量:性别和动物种...

Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!

Maven简介Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”。Maven是一个跨平台的项目管理工具。主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。仔...

Java单元测试框架PowerMock学习(java单元测试是什么意思)

前言高德的技术大佬在谈论方法论时说到:“复杂的问题要简单化,简单的问题要深入化。”这句话让我感触颇深,这何尝不是一套编写代码的方法——把一个复杂逻辑拆分为许多简单逻辑,然后把每一个简单逻辑进行深入实现...

Spring框架基础知识-第六节内容(Spring高级话题)

Spring高级话题SpringAware基本概念Spring的依赖注入的最大亮点是你所有的Bean对Spring容器的存在是没有意识的。但是在实际的项目中,你的Bean必须要意识到Spring容器...

Java单元测试浅析(JUnit+Mockito)

作者:京东物流秦彪1.什么是单元测试(1)单元测试环节:测试过程按照阶段划分分为:单元测试、集成测试、系统测试、验收测试等。相关含义如下:1)单元测试:针对计算机程序模块进行输出正确性检验工作...

揭秘Java代码背后的质检双侠:JUnit与Mockito!

你有没有发现,现在我们用的手机App、逛的网站,甚至各种智能设备,功能越来越复杂,但用起来却越来越顺畅,很少遇到那种崩溃、卡顿的闹心事儿?这背后可不是程序员一拍脑袋写完代码就完事儿了!他们需要一套严谨...

单元测试框架哪家强?Junit来帮忙!

大家好,在前面的文章中,给大家介绍了以注解和XML的方式分别实现IOC和依赖注入。并且我们定义了一个测试类,通过测试类来获取到了容器中的Bean,具体的测试类定义如下:@Testpublicvoid...

取消回复欢迎 发表评论: