來源:量子位
夢晨 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
蘋果M1又快又省電,除了跑分很高之外,實際體驗上也有一種流暢感。
蘋果到底怎么做到的?
原來除了硬件性能強大以外,軟件層面也有優(yōu)化技巧。
一位名叫Hoakley的程序員偶然發(fā)現(xiàn)了其中的秘密。
這老哥總之是有錢,M1和英特爾版的iMac都買了。業(yè)余時間他喜歡自己開發(fā)點實用小工具,比如壓縮軟件。
老哥在后臺測試自己的壓縮程序時發(fā)現(xiàn),M1上只有4個核心在跑,還有4個閑著。
換到英特爾上試試,因為還沒用到虛擬核心,是由8個真實核心共同承擔了工作。
回到M1里仔細一看,使用率高的還不是性能高的那4個,而是“效率核心”。
△4核有難,4核圍觀
在M1芯片的8個CPU核心里,有4個被稱作“Firestorm”的性能核心,另外4個是“Icestorm”效率核心,性能弱一些,不過功耗更低。
研究了一下,老哥發(fā)現(xiàn)是自己把任務(wù)優(yōu)先級設(shè)低了,提高以后,就能讓4個性能核心參與進來。
老哥恍然大悟,原來這就是蘋果的策略。
讓優(yōu)先度低的任務(wù)只占用效率核心,慢點就慢點吧,誰讓你優(yōu)先度低呢。
性能核心保持空閑狀態(tài),隨時應(yīng)對突發(fā)的高優(yōu)先度任務(wù)。
App啟動速度快,切換流暢的原因找到了:4個高性能的核心一直候著呢。
非對稱核心
MacOS給開發(fā)者提供了4種優(yōu)先級,分別是后臺(background)、實用(utility)、用戶發(fā)起的(userInitiated)、用戶交互的(userInteractive)。
如果不指定的話就歸為默認,由操作系統(tǒng)自己安排。
Hoakley老哥把自己的壓縮軟件改造成可以隨時調(diào)整優(yōu)先級的,然后準備了一個10GB的文件開始測試。
在英特爾CPU上,最高優(yōu)先級完成壓縮需要23.3秒,調(diào)成最低優(yōu)先級需要26秒。
在M1上,最高優(yōu)先級運行只要14.1秒,調(diào)成后臺優(yōu)先級直接漲到101秒。
老哥認為,犧牲一些不重要任務(wù)的運行速度,換來的使用體驗上的流暢,太值了。
比如備份文件就不用著急,即使慢到用15分鐘備份不到1G也無所謂。
歷史上也有這樣一個反面教材。
2006年的時候Linux內(nèi)核引入了一種叫完全公平隊列(Completely Fair Queuing)的I/O調(diào)度機制。
雖然在理論上能提升總體的運行效率,但用戶正需要完成的任務(wù)總是有一些延遲才能執(zhí)行。
因為用戶體驗太差,最終完全公平隊列被大多數(shù)Linux發(fā)行版放棄了。
不過也有人不喜歡M1的這種機制,他認為在筆記本上這樣做可以延長續(xù)航。但臺式的iMac上真的要犧牲運行速度嗎?反正都是插電源的。
英特爾:在學了在學了
其實CPU內(nèi)核分性能核心和效率核心這件事,手機上的Arm芯片早就在做了。
甚至高通還在研發(fā)中的驍龍875,被曝光在這種架構(gòu)基礎(chǔ)上還增加了一個“超大核心”Cortex X1。總共1+3+4構(gòu)成8個核心。
蘋果M1將Arm平臺帶到了PC市場,讓英特爾開了眼。
在CES2021上曝光的12代酷睿Alder Lake,英特爾也宣布要區(qū)分兩種核心了。
AMD知道了這個消息后,直接把擠牙膏的Zen3+項目給取消了,轉(zhuǎn)而全力研發(fā)下一代Zen4架構(gòu)處理器,代號Raphael,預計2022年發(fā)布。
不知道AMD會不會選擇跟上這個潮流。
參考鏈接:
[1]https://arstechnica.com/gadgets/2021/05/apples-m1-is-a-fast-cpu-but-m1-macs-feel-even-faster-due-to-qos/
[2]https://eclecticlight.co/2021/05/14/cores-shouldnt-all-be-the-same-m1-macs-do-better/
(聲明:本文僅代表作者觀點,不代表新浪網(wǎng)立場。)