夢晨 發自 凹非寺
量子位 報道 | 公眾號 QbitAI

蘋果M1又快又省電,除瞭跑分很高之外,實際體驗上也有一種流暢感。

蘋果到底怎麼做到的?

原來除瞭硬件性能強大以外,軟件層面也有優化技巧。

一位名叫Hoakley的程序員偶然發現瞭其中的秘密。

這老哥總之是有錢,M1和英特爾版的iMac都買瞭。業餘時間他喜歡自己開發點實用小工具,比如壓縮軟件。

老哥在後臺測試自己的壓縮程序時發現,M1上隻有4個核心在跑,還有4個閑著

蘋果M1用著舒服的原因找到瞭,英特爾:學到瞭,下次我也用

換到英特爾上試試,因為還沒用到虛擬核心,是由8個真實核心共同承擔瞭工作。

蘋果M1用著舒服的原因找到瞭,英特爾:學到瞭,下次我也用

回到M1裡仔細一看,使用率高的還不是性能高的那4個,而是“效率核心”。

蘋果M1用著舒服的原因找到瞭,英特爾:學到瞭,下次我也用

△4核有難,4核圍觀

在M1芯片的8個CPU核心裡,有4個被稱作“Firestorm”的性能核心,另外4個是“Icestorm”效率核心,性能弱一些,不過功耗更低

蘋果M1用著舒服的原因找到瞭,英特爾:學到瞭,下次我也用

研究瞭一下,老哥發現是自己把任務優先級設低瞭,提高以後,就能讓4個性能核心參與進來。

老哥恍然大悟,原來這就是蘋果的策略。

讓優先度低的任務隻占用效率核心,慢點就慢點吧,誰讓你優先度低呢。

性能核心保持空閑狀態,隨時應對突發的高優先度任務。

App啟動速度快,切換流暢的原因找到瞭:4個高性能的核心一直候著呢

非對稱核心

MacOS給開發者提供瞭4種優先級,分別是後臺 (background)實用 (utility)用戶發起的 (userInitiated)用戶交互的 (userInteractive)

如果不指定的話就歸為默認,由操作系統自己安排。

Hoakley老哥把自己的壓縮軟件改造成可以隨時調整優先級的,然後準備瞭一個10GB的文件開始測試。

蘋果M1用著舒服的原因找到瞭,英特爾:學到瞭,下次我也用

在英特爾CPU上,最高優先級完成壓縮需要23.3秒,調成最低優先級需要26秒。

在M1上,最高優先級運行隻要14.1秒,調成後臺優先級直接漲到101秒

老哥認為,犧牲一些不重要任務的運行速度,換來的使用體驗上的流暢,太值瞭。

比如備份文件就不用著急,即使慢到用15分鐘備份不到1G也無所謂。

歷史上也有這樣一個反面教材。

2006年的時候Linux內核引入瞭一種叫完全公平隊列 (Completely Fair Queuing)的I/O調度機制。

雖然在理論上能提升總體的運行效率,但用戶正需要完成的任務總是有一些延遲才能執行。

因為用戶體驗太差,最終完全公平隊列被大多數Linux發行版放棄瞭。

不過也有人不喜歡M1的這種機制,他認為在筆記本上這樣做可以延長續航。但臺式的iMac上真的要犧牲運行速度嗎?反正都是插電源的。

蘋果M1用著舒服的原因找到瞭,英特爾:學到瞭,下次我也用

英特爾:在學瞭在學瞭

其實CPU內核分性能核心和效率核心這件事,手機上的Arm芯片早就在做瞭。

甚至高通最新的驍龍888,在這種架構基礎上還增加瞭一個“超大核心”Cortex X1。總共1+3+4構成8個核心。

蘋果M1用著舒服的原因找到瞭,英特爾:學到瞭,下次我也用

蘋果M1將Arm平臺帶到瞭PC市場,讓英特爾開瞭眼。

在CES2021上曝光的12代酷睿Alder Lake,英特爾也宣佈要區分兩種核心瞭。

蘋果M1用著舒服的原因找到瞭,英特爾:學到瞭,下次我也用

AMD知道瞭這個消息後,直接把擠牙膏的Zen3+項目給取消瞭,轉而全力研發下一代Zen4架構處理器,代號Raphael,預計2022年發佈。

不知道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/

— 完 —

量子位 QbitAI · 頭條號簽約

關註我們,第一時間獲知前沿科技動態

創作者介紹
創作者 3C王者 的頭像
3C王者宇晨

3C王者

3C王者宇晨 發表在 痞客邦 留言(0) 人氣( 0 )