微軟 Windows 10 和 Windows 11 集成了 Arm 原生支持,這保證了為 Windows 開發更多 Arm 原生應用。這種支持提供了額外的工具,以簡化應用移植、增強應用性能并降低功耗。因此,很多公司目前正在為 Windows 投資 Arm 原生應用。
此前,Arm 曾談到 Windows on Arm 應用生態系統的良好發展勢頭,Google Chrome 就是一個很好的例子。與此同時,我們也想通過探索原生 Arm 支持為 Google Chrome 帶來的諸多改進來進一步印證這一點。
適用于 Google Chrome 的 AArch64 支持
最新版本的 Google Chrome 增加了對 Windows 的原生 AArch64 支持,為用戶帶來諸多優勢,包括:
提升性能:Arm 原生支持使 Google Chrome 網頁瀏覽速度更快,效率更高,與模擬的 x86 版本相比,性能有了顯著提高。
加快網頁加載:得益于 Arm 原生支持對腳本、系統任務和渲染過程的優化,原本加載較慢的網站現在能夠更快地完成加載。
增強的 JavaScript 執行:在 Arm 原生代碼運行時,JavaScript 執行速度明顯加快,增強了網頁應用和交互元素的響應能力。
延長電池續航時間:Arm 原生代碼的高能效使用戶可以更長時間地使用設備,而無需頻繁充電。
卓越的渲染速度:渲染時間大大縮短,使網頁顯示變得更快速、更順暢。
模擬 x86 與 Arm 原生的性能對比
為了更清晰地展示這些優勢,我們在 x86_64 架構的 Windows 系統上安裝了 Google Chrome (版本號為 125.0.6422.61,官方版),下文簡稱“Win64”,并在 Windows on Arm 環境中通過模擬方式運行;同時,我們還在 AArch64 架構的 Windows 系統上安裝了原生版本的 Chrome,下文簡稱“Arm64”。我們利用這兩個版本的 Chrome 對一個熱門新聞網站的性能進行了對比分析。
我們使用 Google Chrome 開發者工具中的“性能”選項卡,量化了加載和渲染速度。
模擬 x86 版本:網站加載耗時近 16 秒,其中腳本(4.4 秒)、系統任務(1.7 秒)和渲染(0.9 秒)花費了大量時間。
Arm 原生版本:腳本時間減少至 1.5 秒(幾乎縮短了三倍),系統任務時間減少至 0.4 秒(縮短 4.25 倍),渲染時間減少至 0.18 秒(縮短五倍),表明原生 Arm 執行大大提升了加載和渲染速度。
在其他新聞網站進行的性能測試也得出了類似結果。?
Speedometer 3.0 基準測試
我們使用了 Speedometer 3.0 網頁瀏覽器基準測試,來進一步印證 Arm 原生版 Google Chrome 的性能優勢。這是一項開源基準測試,通過對不同工作負載下模擬的用戶交互進行計時,用來測定網頁應用的響應能力。
基準測試任務旨在反映實際網頁用例情況,盡管部分細節與 Speedometer 相關,不應作為通用的應用開發實踐。該基準測試由主流瀏覽器引擎(Blink、Gecko 和 WebKit)的團隊創建,并得到了 Google、英特爾、微軟和 Mozilla 等公司的大力支持。
在模擬 x86 和 Arm 原生版 Google Chrome上運行 Speedometer 3.0 基準測試后(在 Windows Dev Kit 2023 上測試),發現 Arm 原生支持顯著增強了網頁應用的響應能力。上圖顯示了 Arm 原生性能得分比模擬 x86 高出三倍多。這進一步凸顯了 Windows on Arm 上原生 Arm 應用的出色效率和性能。
用 TensorFlow.js 和 MobileNet 運行推理
TensorFlow.js 是 Google 廣受好評的 TensorFlow 庫的 JavaScript 實現。它允許開發者在構建交互性強、動態性高的瀏覽器應用時,運用人工智能 (AI) 和機器學習 (ML) 技術。通過 TensorFlow.js,用戶可以直接在客戶端環境中訓練和部署 AI 模型,輕松實現實時數據處理和分析,無需大量的服務器端計算。
MobileNet 是一類專為移動端和嵌入式視覺應用設計的高效架構,憑借其輕量級設計脫穎而出,能夠在計算能力和內存資源有限的設備上實現快速高效的性能。
在使用 TensorFlow 的 Python 應用中,使用 MobileNet 非常簡潔明了:
Python:
model = MobileNet(weights='imagenet')
接著,就可以對輸入的圖像進行預測 (predictions):
predictions = model.predict(input_image)
請參閱教程以獲得更好的訓練和推理示例。
然后這些預測結果可以轉換為實際標簽,比如:
print('Predicted:', decode_predictions(predictions, top=3)[0])
這里的 decode_predictions 是一個假設函數,它的作用是將模型分數(概率)轉換為描述圖像內容的標簽。
TensorFlow.js 提供了類似的接口,你可以這樣加載 MobileNet 模型:
model_tfjs = awaittf.loadGraphModel(MOBILENET_MODEL_PATH)
等圖像預處理完,就可以進行預測了:
predictions = model_tfjs.predict(image)
然后,把這些預測結果轉換為標簽或類別:
labels = await getTopKClasses(predictions, 3)
如需更好的網頁應用示例,請參閱此示例。
我們在模擬 x86 Chrome 網頁瀏覽器和 Arm 原生版 Chrome 中運行了上述網頁應用。
下圖演示了在 Chrome 網頁瀏覽器中運行的網頁應用。該應用的用戶界面包含三個核心元素:描述部分、狀態指示器和模型輸出顯示。描述部分介紹了應用是如何創建的。上傳圖像后,應用立即開始運行,狀態組件會實時更新,以顯示計算時間。圖像處理完成后,模型輸出會顯示識別出的標簽及其相應的分數。
在模擬 x86 Chrome 上,包括圖像預處理和 AI 推理在內的總處理時間接近 100 毫秒。而在 Arm 原生版 Google Chrome 上,同樣的操作僅花費 35 毫秒(大約為前者的 33%)。由于使用了相同的圖像作為輸入,因此推理結果(識別的標簽和分數)是相同的。
提升真實性能,滿足實際需求
在 Google Chrome 的 Windows 版本中集成原生 Arm 支持,可大大提升性能,使網頁瀏覽速度更快、效率更高、響應能力更強。這些改進在一般的網頁瀏覽和特定應用(如包含 MobileNet 的 TensorFlow.js)中都很顯著,凸顯了 Arm 原生支持在更廣泛的計算領域日益增長的重要性。隨著更多公司投資適用于 Windows 的 Arm 原生應用,用戶可以期待在各類設備和應用上效率和性能的持續提升。
Arm 致力于推動創新,提供前沿技術,賦能開發者并提升用戶體驗。Arm 原生支持在 Google Chrome 中的成功應用彰顯了 Arm 架構在塑造未來計算方面的革新潛力。
若你有興趣學習如何將應用遷移到 Arm 平臺上,歡迎訪問 Arm Developer Hub 中的豐富教育資源。
-
微軟
+關注
關注
4文章
6617瀏覽量
104208 -
ARM
+關注
關注
134文章
9117瀏覽量
368194 -
WINDOWS
+關注
關注
4文章
3553瀏覽量
88980
原文標題:Arm 原生 Google Chrome 增強 Windows on Arm 性能
文章出處:【微信號:Arm社區,微信公眾號:Arm社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論