Intel/Google/Mozilla聯手:瀏覽器CPU加速12倍

發表於2014-06-13

Web 瀏覽器效能方面,JavaScript 佔據著舉足輕重的地位,不過隨著網路內容的日益複雜,很多時候即使強大的配置也會有些力不從心,導致瀏覽器卡頓、卡死。

Intel 日前宣佈將與 Google、Mozilla 兩大瀏覽器巨頭合作,利用 CPU SIMD 指令來加速 JS 程式碼的執行,不需要任何外部外掛,完全跨平臺,只要是使用 JS 的地方都可以直接使用。

SIMD 即單指令多資料(此外還有 SISD、MIMD、MISD),是現代微處理器中最重要的設計,通過並行運算機制在有限的功耗空間內提升效能,SSE、MMX 等指令集就是基於 SIMD 架構的。

Intel 已經提出了一些 API,可以直接對 SIMD JS 進行程式設計,也可以直接通過 JS JIT 編譯器進行編譯,還能通過 Mozilla Emscripten 編譯器來生成 SIMD 程式碼。

另一點非常重要的是,SIMD JS 是與架構無關的,不管是 x86 還是 ARM,只要支援 SIMD 就可以。

目前,Firefox Nightly、Google Chromeium 兩個試驗性質的瀏覽器分支都已經開始整合 SIMD JS API,經測試可在不同平臺上普遍帶來3-6 倍的效能提升,平均 4 倍左右,個別情況下甚至能夠達到十多倍!

以下就是 Intel 給出的一些加速示例,Chromeium 瀏覽器在 Ivy Bridge Core i7-3667U+Ubuntu 13 32/64 位、Bay Trail Atom Z3770+Android 4.4 三個平臺上的表現:

131819013112151

Intel、Google、Mozilla 還正在聯合制定相應提案,希望能夠在 JS ES7 標準中正式加入 SIMD 加速。

131819099202888

標量操作、SIMD 向量操作對比

131819096241445

Firefox 加速示例:接近 4 倍

131819096394674

Chromeium 加速示例:3.3 倍

131819095309473

程式碼示例:標量版

131819096553202

程式碼示例:SIM 向量版

關於技術原理和程式設計細節請點選:Intel 高階軟體工程師 Ivan Jibaja 的這篇文章,以及 Intel 的官方幻燈片

相關文章