6

苹果M1用着舒服的原因找到了,英特尔:学到了,下次我也用

 3 years ago
source link: https://www.cnbeta.com/articles/tech/1135293.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

苹果M1用着舒服的原因找到了,英特尔:学到了,下次我也用

2021年06月01日 20:35 12339 次阅读 稿源:量子位 0 条评论

苹果M1又快又省电,除了跑分很高之外,实际体验上也有一种流畅感。原来除了硬件性能强大以外,软件层面也有优化技巧。一位名叫Hoakley的程序员偶然发现了其中的秘密。这老哥总之是有钱,M1和英特尔版的iMac都买了。业余时间他喜欢自己开发点实用小工具,比如压缩软件。

老哥在后台测试自己的压缩程序时发现,M1上只有4个核心在跑,还有4个闲着。

换到英特尔上试试,因为还没用到虚拟核心,是由8个真实核心共同承担了工作。

回到M1里仔细一看,使用率高的还不是性能高的那4个,而是“效率核心”。

△4核有难,4核围观

在M1芯片的8个CPU核心里,有4个被称作“Firestorm”的性能核心,另外4个是“Icestorm”效率核心,性能弱一些,不过功耗更低。

研究了一下,老哥发现是自己把任务优先级设低了,提高以后,就能让4个性能核心参与进来。

老哥恍然大悟,原来这就是苹果的策略。

让优先度低的任务只占用效率核心,慢点就慢点吧,谁让你优先度低呢。

性能核心保持空闲状态,随时应对突发的高优先度任务。

App启动速度快,切换流畅的原因找到了:4个高性能的核心一直候着呢。

非对称核心

MacOS给开发者提供了4种优先级,分别是后台 (background)、实用 (utility)、用户发起的 (userInitiated)、用户交互的 (userInteractive)。

如果不指定的话就归为默认,由操作系统自己安排。

Hoakley老哥把自己的压缩软件改造成可以随时调整优先级的,然后准备了一个10GB的文件开始测试。

在英特尔CPU上,最高优先级完成压缩需要23.3秒,调成最低优先级需要26秒。

在M1上,最高优先级运行只要14.1秒,调成后台优先级直接涨到101秒。

老哥认为,牺牲一些不重要任务的运行速度,换来的使用体验上的流畅,太值了。

比如备份文件就不用着急,即使慢到用15分钟备份不到1G也无所谓。

历史上也有这样一个反面教材。

2006年的时候Linux内核引入了一种叫完全公平队列 (Completely Fair Queuing)的I/O调度机制。

虽然在理论上能提升总体的运行效率,但用户正需要完成的任务总是有一些延迟才能执行。

因为用户体验太差,最终完全公平队列被大多数Linux发行版放弃了。

不过也有人不喜欢M1的这种机制,他认为在笔记本上这样做可以延长续航。但台式的iMac上真的要牺牲运行速度吗?反正都是插电源的。

英特尔:在学了在学了

其实CPU内核分性能核心和效率核心这件事,手机上的Arm芯片早就在做了。

甚至高通还在研发中的骁龙875,被曝光在这种架构基础上还增加了一个“超大核心”Cortex X1。总共1+3+4构成8个核心。

苹果M1将Arm平台带到了PC市场,让英特尔开了眼。

在CES2021上曝光的12代酷睿Alder Lake,英特尔也宣布要区分两种核心了。

AMD知道了这个消息后,直接把挤牙膏的Zen3+项目给取消了,转而全力研发下一代Zen4架构处理器,代号Raphael,预计2022年发布。

不知道AMD会不会选择跟上这个潮流。

r2.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK