作者:Arm 終端事業部消費計算市場高級經理 Poulomi Dasgupta
隨著每一代新產品的推出,Arm CPU 都會實現代際性能提升,并引入架構改進,以滿足不斷演進的計算工作負載的需求。本文將重點介紹三個用例,以展示 Armv9 CPU 的架構特性在實際場景中產生的影響,特別是在 HDR 視頻解碼(加速 10%)、圖像處理(加速 20%)、主要移動端應用中的功能 LibYUV(加速 26%)。
好消息是,本文中討論的一些 Arm SVE2 優化現已可供開發者獲取使用,有望提升熱門媒體應用的用戶體驗,進一步改善人們溝通、工作和娛樂的方式。
應用開發者和 OEM 廠商面臨的挑戰
首先,從移動端應用開發者當前面臨的挑戰來看,目前市場上有超過 200 萬個安卓應用[1]在爭奪用戶的青睞。這些應用要想保持競爭力,就必須迅速將創新成果推廣到各種移動設備上。倘若依賴于功能固定的硬件,會面臨產品上市時間和可移植性等方面的挑戰。
與出色的用戶體驗相關的指標,包括應用啟動時間、UI 流暢度、每秒詞元 (token) 數和每秒幀數 (FPS) 穩定性等都需要切實滿足用戶期望。因此,OEM 廠商需要在性能提升與更廣泛的用戶需求(如延長電池續航時間、減少數據使用量和設備成本)之間取得平衡。其中任一方面存在不足,都可能導致用戶不滿意,否定升級移動設備的價值。
在 Armv9 CPU 上開發軟件可以解決 OEM 廠商和開發者所面臨的挑戰。
Armv9 CPU 中 SVE2 的實際用例
讓我們來看三個案例研究,證明軟件優化可以加速實際工作負載。首先,以下是 SVE2 的一個子集和可加速移動設備上關鍵工作負載的 Armv9 CPU 中的新矢量指令:
16 位點積和 8 位矩陣乘法,可加速 HDR 視頻播放和視頻會議。
圖像處理直方圖指令。
復數指令,用于加速視頻編解碼器中的快速傅里葉變換。
使用這些矢量指令可使優化的軟件使用更少的 CPU 周期,帶來兩大好處。第一,CPU 周期減少使得能耗降低,增加電池續航時間;第二,提高應用性能。
案例 1
SVE2 使視頻解碼速度提高 10%
觀看多媒體內容是移動設備上最常見的工作負載之一,也是移動端網絡較大的流量來源。因此,廠商不斷追求更高效的編解碼器,希望在節省網絡帶寬的同時,支持出色的圖像質量。
HDR 技術由于色彩準確度更高,可呈現更加逼真的細節,即使是在非常暗或非常亮的場景中也是如此。它使用 10 位而非 8 位來表示每個色彩通道。AV1 和 VP9 以及其他現代編解碼器,且都支持 HDR 視頻。
AV1 是一種較新的格式,可提供更好的壓縮效果,而 VP9 則在各種瀏覽器和設備中具有更廣泛的兼容性。一些熱門應用都使用 AV1 和 VP9 格式來播放視頻。
SVE2 優化使 HDR 視頻解碼速度提高了約 10%,VP9 解碼速度提高了 8%,AV1 解碼速度提高了 10%。這使得 CPU 周期減少約 10%,電量消耗也相應減少,讓用戶在移動設備上播放點播視頻時能夠獲得更長的電池續航時間。如此一來,無論是觀看快拍、短片還是長視頻,都將變得更加順暢!
對 libdav1d(Av1 解碼器)和 libvpx(Vp9 解碼器)的優化代碼已經上傳,開發者現可獲取使用。
案例 2
SVE2 使 LibYUV 速度提高了 26%
值得一提的是,我們每個人都在不知不覺中使用了 LibYUV。
LibYUV 是一個開源庫,用于 RGB 和 YUV 之間的色彩空間轉換、攝像頭傳感器數據縮放,以及攝像頭濾鏡和旋轉。在經由視頻解碼器使用之前,它會對來自攝像頭傳感器的數據進行處理。在很多情況下,視頻解碼器中的數據會先通過 LibYUV 進行處理,然后再發送去顯示。
SVE2 優化使 LibYUV 速度提高了 26%(Armv9 CPU 上多個內核的幾何平均值)。LibYUV 中大約有 100 個內核已使用 SVE2 進行了優化,其他內核的優化工作正在進行中。部分工作已完成上傳,可在 https://chromium.googlesource.com/libyuv/libyuv/上查看。
LibYUV 作為 Chromium 的一部分進行分發。Chromium 是一個開源瀏覽器項目,為 Chrome 及主要手機廠商的定制瀏覽器(包括小米瀏覽器和三星瀏覽器等)奠定了基礎。它還被集成到 AOSP 和 Android Jetpack 中。由于 LibYUV 對移動設備至關重要,它有望對整體移動端體驗產生深遠的影響,例如帶來更好的視頻會議體驗、更順暢的豎屏和橫屏模式切換,以及更好的視頻消費體驗,并且大大延長電池續航時間。
案例 3
SVE2 使計算攝影速度提高 20%
Halide 是一種專門用于圖像處理領域的語言,用于 Adobe Photoshop 等應用,一些 OEM 廠商也將它用于攝像頭管線。
SVE2 指令(例如聚合讀取和分散存入指令)和 TBL(可編程查表,用于矢量化小型查詢表)加速了 Halide 中的一些關鍵計算機視覺流程。iToFDepth(用于感知深度)、雙邊網格(用于邊緣感知色調映射)和局部拉普拉斯(用于濾鏡)等計算密集型算法在采用 SVE2 后,性能提升了近 20%。
使用 SVE2 來優化軟件可以實時應用一些攝影效果,為入門級移動設備開辟了新的可能性,用戶無需專用硬件即可獲得更高質量的照片。
Arm 已針對 SVE2 代碼生成優化了 Halide 后端。好消息是,一些補丁已經上線,其他補丁也正在開發中。
圖:Halide-SVE2 和 Halide-Neon CPU 周期數對比
如何更好地使用 SVE2?
SVE2 引入了幾個新指令,非常適合加速關鍵的實際工作負載和應用。我們將在后續的技術文章中更詳細地討論如何使用 Armv9 CPU 實現一些性能提升,請持續關注“Arm 社區”微信公眾號,敬請期待!
Arm 致力于為生態系統找到良好的平衡點,更好地兼顧開發者支持和性能提升。一些針對 SVE2 進行優化的開源庫和內核已經上線,未來還會有更多資源。
Armv9 CPU 的最新進展將使開發者能夠更快實現創新,為各類移動設備的最終消費者帶來更好的用戶體驗。還等什么,趕緊采用 SVE2 開始你的開發項目,實現創新吧!
-
ARM
+關注
關注
134文章
9169瀏覽量
369246 -
cpu
+關注
關注
68文章
10905瀏覽量
213033 -
圖像處理
+關注
關注
27文章
1300瀏覽量
56897 -
視頻解碼
+關注
關注
1文章
49瀏覽量
18215
原文標題:Armv9 技術講堂 | 利用 Armv9 CPU 和 SVE2 加速視頻解碼和圖像處理
文章出處:【微信號:Arm社區,微信公眾號:Arm社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Arm下一代指令架構“Armv9”已經問世
Armv9核心A710、A715和A510微架構解讀

淺析Armv9-A構架上的可伸縮矩陣擴展(SME)
一文詳解SIMD架構與SVE2的演進
如何在Android用上Armv9 CPU新引入的PAC安全特性和SVE2呢?
了解Armv9-A體系結構之SVE2簡介
重磅!Arm正式推出Armv9架構

評論