如何將混合核心帶入Web
根據(jù)微軟對(duì)用戶應(yīng)用程序的使用統(tǒng)計(jì),人們?cè)?PC 上花費(fèi)的60%時(shí)間是在網(wǎng)絡(luò)瀏覽器上。Google Chrome是谷歌基于Chromium項(xiàng)目開發(fā)的跨平臺(tái)網(wǎng)絡(luò)瀏覽器。根據(jù)StatCounter網(wǎng)站統(tǒng)計(jì),到2022年1月,Chrome瀏覽器在全球所有平臺(tái)的市場(chǎng)份額超過(guò)63%。
結(jié)合高性能核心和節(jié)能核心的混合核心架構(gòu)越來(lái)越受歡迎,尤其是在英特爾推出 Alder Lake CPU 產(chǎn)品之后。性能核心旨在提供最大的計(jì)算性能,而高效核心旨在提供最大的電源效率。通常操作系統(tǒng)調(diào)度程序可以管理混合核心調(diào)度,但它們?nèi)狈?yīng)用程序行為的細(xì)節(jié),如關(guān)鍵路徑。操作系統(tǒng)調(diào)度程序很難涵蓋所有場(chǎng)景。
我們來(lái)自 Web 優(yōu)化團(tuán)隊(duì),專注于 Web 平臺(tái)(主要是 Chromium)的功率和性能優(yōu)化,旨在為 IA 提供更好的用戶體驗(yàn)。本文介紹了我們利用混合核心能力將 Chrome 瀏覽器中特定線程/進(jìn)程的執(zhí)行調(diào)度到高效核心的工作,該核心采用動(dòng)態(tài)策略來(lái)根據(jù)設(shè)備狀態(tài)在不同級(jí)別降低功耗。下面所有的分析和測(cè)試都是在 Chrome OS 平臺(tái)上進(jìn)行的。
概述
在混合核心平臺(tái)上,Chrome 可以將線程調(diào)度到高效核心,以節(jié)省功耗。但是,始終將瀏覽器線程放在高效的內(nèi)核上是不切實(shí)際的,因?yàn)榇罅烤€程可能會(huì)激增并需要更高的性能。因此,我們?cè)?Chrome 瀏覽器中提出了一種混合核心調(diào)度技術(shù),通過(guò)將特定的非關(guān)鍵線程調(diào)度到高效的核心來(lái)執(zhí)行,從而對(duì)特定的非關(guān)鍵線程應(yīng)用動(dòng)態(tài)限制。該技術(shù)基于 Web 運(yùn)行時(shí)場(chǎng)景,例如背景/空閑/廣告/視頻,因?yàn)榫€程的重要性會(huì)在不同的場(chǎng)景中發(fā)生變化。此外,設(shè)備信息,如電池/熱狀態(tài)和混合核心信息,需要暴露給 Chrome?;谒鼈?,混合核心調(diào)度將應(yīng)用不同的核心分配策略來(lái)平衡功率和性能。通常我們將低優(yōu)先級(jí)線程調(diào)度到高效核心。但是當(dāng)設(shè)備處于電池耗盡等關(guān)鍵階段時(shí),調(diào)度策略會(huì)更積極地延長(zhǎng)設(shè)備使用時(shí)間。調(diào)度策略的應(yīng)用依賴于操作系統(tǒng)的支持,我們可以根據(jù)操作系統(tǒng)的習(xí)慣使用線程優(yōu)先級(jí)或QoS機(jī)制。在 Chrome OS 上,目前我們更改線程優(yōu)先級(jí)及其 cgroup 關(guān)聯(lián)。該提案的整體架構(gòu)如圖 1 所示。目前我們更改線程優(yōu)先級(jí)及其 cgroup 關(guān)聯(lián)。該提案的整體架構(gòu)如圖 1 所示。目前我們更改線程優(yōu)先級(jí)及其 cgroup 關(guān)聯(lián)。該提案的整體架構(gòu)如圖 1 所示。
圖 1:Chrome 瀏覽器中的混合核心調(diào)度
執(zhí)行
混合核心調(diào)度技術(shù)的實(shí)現(xiàn)主要包含三個(gè)部分,場(chǎng)景檢測(cè)、調(diào)度策略、操作系統(tǒng)支持工作。
場(chǎng)景檢測(cè)
首先,我們需要根據(jù)來(lái)自各種瀏覽器組件的輸入來(lái)確定進(jìn)程的當(dāng)前場(chǎng)景。例如,Chrome 渲染進(jìn)程有一個(gè)關(guān)于后臺(tái)狀態(tài)的狀態(tài),表示該進(jìn)程是前臺(tái)還是后臺(tái)場(chǎng)景。再舉一個(gè)例子,Chrome 有一個(gè)廣告標(biāo)記機(jī)制來(lái)檢測(cè)廣告及其在瀏覽器中加載的資源。廣告標(biāo)記通過(guò)將資源請(qǐng)求與過(guò)濾器列表進(jìn)行匹配來(lái)確定它們是否是廣告請(qǐng)求。如果 iframe 的 url 與過(guò)濾器列表匹配,如果標(biāo)記的腳本參與 iframe 的創(chuàng)建,或者其父框架是廣告 iframe,則 iframe 將被標(biāo)記為廣告 iframe。如果所有幀都是廣告幀,則渲染進(jìn)程將被標(biāo)記為廣告進(jìn)程。瀏覽器收集所有這些輸入并使用優(yōu)先級(jí)機(jī)制來(lái)決定流程的整體模式。
調(diào)度策略
調(diào)度策略因設(shè)備狀態(tài)而異。如圖 1 所示,瀏覽器會(huì)通過(guò)操作系統(tǒng)提供的 API 監(jiān)控設(shè)備的電源狀態(tài),包括電池電量、充電狀態(tài)和熱狀態(tài)。對(duì)于混合核心調(diào)度,下面定義了兩個(gè)階段。
第一個(gè)是正常階段,表示電池電量超過(guò)20%或設(shè)備正在充電,同時(shí)熱狀態(tài)正常。在這個(gè)階段,用戶更關(guān)心性能而不是功耗,所以我們只將低優(yōu)先級(jí)的線程/進(jìn)程調(diào)度到高效的核心,如后臺(tái)進(jìn)程或處理低優(yōu)先級(jí)任務(wù)的線程,如日志/分析。
第二個(gè)是臨界階段,這意味著電池電量非常低而沒(méi)有充電,或者設(shè)備處于臨界熱狀態(tài),或者 Web 開發(fā)人員明確想要進(jìn)入省電模式,例如使用省電元標(biāo)記。在這個(gè)階段,我們將采用更積極的策略來(lái)節(jié)省更多電量、延長(zhǎng)設(shè)備使用時(shí)間或避免由于 CPU 溫度過(guò)高而導(dǎo)致的熱節(jié)流。在這種情況下,只要不涉及用戶體驗(yàn)關(guān)鍵任務(wù),許多正常優(yōu)先級(jí)的線程/進(jìn)程將被調(diào)度到高效核心。
操作系統(tǒng)支持工作
需要做一些工作才能使 Chrome 使用操作系統(tǒng)功能。電池和熱狀態(tài)是 UX 的兩個(gè)重要因素?;谒鼈儯珻hrome 可以制定適當(dāng)?shù)牟呗詠?lái)平衡性能和功耗。以前,只有電池狀態(tài)會(huì)暴露給 Chrome。我們的團(tuán)隊(duì)在 Chrome 中實(shí)現(xiàn)了熱狀態(tài)通知功能。在該功能中,我們引入了 4 個(gè)熱級(jí)別:標(biāo)稱、一般、嚴(yán)重和嚴(yán)重,指的是 Apple 的熱提示 API。這樣Chrome就可以得到實(shí)時(shí)的熱狀態(tài)。報(bào)告電池電量、充電和熱狀態(tài)后,Chrome 將決定進(jìn)入哪個(gè)階段并應(yīng)用不同的調(diào)度策略。
此外,我們使用現(xiàn)有的 cgroup 機(jī)制在 Chrome OS 上的 Chrome 線程和高效內(nèi)核之間建立了一座橋梁。后臺(tái)優(yōu)先級(jí)線程被放置在具有指定 CPU 集的特定 cgroup 中。在混合核心平臺(tái)上,可能會(huì)為組分配高效的核心。所以如果我們想把不重要的線程調(diào)度到高效的核心去執(zhí)行,我們可以降低線程優(yōu)先級(jí),把它們放到非緊急cgroup中。調(diào)度是動(dòng)態(tài)的。當(dāng)線程變得重要時(shí)(例如切換到前臺(tái)),我們會(huì)立即將線程優(yōu)先級(jí)提高到正常,從而從特定的 cgroup 中刪除。
實(shí)驗(yàn)
我們使用本地構(gòu)建的 Chromium 瀏覽器來(lái)評(píng)估每個(gè)場(chǎng)景混合核心調(diào)度的功率影響,目前主要關(guān)注后臺(tái)渲染器進(jìn)程、廣告進(jìn)程和空閑進(jìn)程(空閑是 Chrome RAIL 模型中定義的狀態(tài))。根據(jù)在 Alder Lake Chromebook 上進(jìn)行的實(shí)驗(yàn),我們觀察到在將空閑進(jìn)程調(diào)度到高效核心時(shí),網(wǎng)頁(yè)瀏覽的 CPU 包功耗降低了 4.2%,調(diào)度廣告進(jìn)程時(shí) CPU 包功耗降低了 3.8%。同時(shí),我們使用 4-tab 瀏覽工作負(fù)載來(lái)測(cè)試將后臺(tái)進(jìn)程放置在高效內(nèi)核上的功耗影響,發(fā)現(xiàn) CPU 封裝功耗降低了 0.9%。當(dāng)后臺(tái)標(biāo)簽和頁(yè)面活動(dòng)的數(shù)量增加時(shí),省電會(huì)更大。
實(shí)驗(yàn)數(shù)據(jù)表明,我們利用 Chromium 瀏覽器中的混合核心功能將非 UX 關(guān)鍵進(jìn)程/線程調(diào)度到選定場(chǎng)景中的高效核心,從而實(shí)現(xiàn)了明顯的功耗降低,這有助于延長(zhǎng)設(shè)備電池壽命。
未來(lái)的工作
我們會(huì)繼續(xù)探索更多的場(chǎng)景,對(duì)性能要求不高,對(duì)應(yīng)的進(jìn)程/線程可以調(diào)度到高效核上。另外,對(duì)于ads、idle等一些場(chǎng)景,在高效核上運(yùn)行可能會(huì)對(duì)性能產(chǎn)生影響,我們即將進(jìn)行性能評(píng)估,并相應(yīng)調(diào)整調(diào)度策略。此外,我們打算將我們的分析和混合核心調(diào)度優(yōu)化擴(kuò)展到 Windows 和 Linux 平臺(tái)。
- 上一篇
新的研究表明,ML模型可以更快地檢測(cè)ALS
科學(xué)家們已經(jīng)開發(fā)出能夠預(yù)測(cè)肌萎縮側(cè)索硬化癥 (ALS) 或 Lou Gehrig 病進(jìn)展的深度學(xué)習(xí)模型。位于意大利的研究人員的工作發(fā)現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)更適合 ALS 的早期診斷。檢測(cè)越早,患
- 下一篇
進(jìn)入元宇宙:為虛擬工作空間提供案例
隨著技術(shù)和硬件的改進(jìn),基于增強(qiáng)現(xiàn)實(shí) (AR) 和虛擬現(xiàn)實(shí) (VR) 的解決方案將成為企業(yè)的關(guān)鍵組件,包括為員工提供虛擬協(xié)作空間訪問(wèn)權(quán)限的解決方案。工作人員可以在世界任何地方打開
相關(guān)資訊
- 智能電網(wǎng):物聯(lián)網(wǎng)預(yù)測(cè)維護(hù)指南
- 誰(shuí)控制了你的智能家居?
- 蛋白質(zhì)科學(xué)家和人工智能并駕齊驅(qū)
- 2023年有哪些數(shù)據(jù)分析和商業(yè)智能
- 人工智能幫助自動(dòng)化稅務(wù)合規(guī)程序
- 加速數(shù)字化轉(zhuǎn)型需要的基本技能
- 如何回答數(shù)字化轉(zhuǎn)型方面的四個(gè)難
- 量子計(jì)算機(jī)、物聯(lián)網(wǎng)和網(wǎng)絡(luò)安全之
- 數(shù)據(jù)集靜態(tài)水平分類
- 人工智能模型可減少網(wǎng)絡(luò)停機(jī)時(shí)間