Qualcomm 在行動通訊應用領域方面一直是業界領導廠商,但很多人不知道的是,這公司除行動通訊本業務外,也掌握了許多關鍵技術來幫助改善使用體驗。

Qualcomm 是世界少數擁有自有 DSP 架構的公司,事實上,他也是目前碩果僅存,唯一一家採用自有 DSP 架構的行動通訊方案供應商。Hexagon DSP 在 Qualcomm 方案中,兼顧著基頻訊號與多媒體處理的運算需求,從過去以來一直使用著自有架構 DSP,即便是基於標準 ARM 架構的 Snapdragon 810 亦是如此。

逐漸重視異質運算需求

雖然 Hexagon DSP 是 Qualcomm 過去在其行動通訊應用方案中一直存在的運算架構,但過去 CPU 架構強勢主導市場行銷與消費者使用觀感的時代,Qualcomm 只選擇對其 OEM / ODM 伙伴開放自有 DSP 的應用,協助其客戶製造出具備獨特運算能力的終端,然而隨著 CPU 重要性的減弱,Qualcomm 重新把自有 DSP 拉到檯面上,不僅強調其自有 DSP 對應用加速的幫助,更開放一般開發人員存取其運算能力,協助業界熟悉高通運算架構,而隨著 Qualcomm 加入 HSA 聯盟,Hexagon DSP 更成為輔助高通打入異質運算領域的武器之一。

Hexagon 680 DSP

不論在自有客製化架構,或者是標準 ARM 架構中,Qualcomm 都使用由 ARM 所提供,但經過微調的 NEON SIMD 運算單元,藉以相容幾乎所有針對標準 ARM 架構的一般應用。然而 Qualcomm 調整過的 NEON 在多媒體運算性能上卻未必能夠表現出更優秀的性能,原因在於一般應用多僅針對標準 NEON 結構或運算邏輯最佳化,在具備更寬資料通道的 Qualcomm 版 NEON 上執行往往會水土不服。Qualcomm 自有 Hexagon DSP 擁有獨立的快取、匯流排與暫存器設計,理論上效能遠高於 NEON 運算單元,Qualcomm 也把 Hexagon DSP 當作 NEON 運算單元的補充,期望能透過平行運算,分擔從不同感測器而來的 SIMD 指令運算需求。

為何 Qualcomm 要強調 DSP?

目前 GPGPU 已經蔚為潮流,ARM 與 AMD 也都強調 GPGPU 在異質運算中的重要性,Qualcomm 為何還堅持走 DSP 的路?其實 Qualcomm 認為,GPGPU 雖然在大量平行運算中有性能優勢,但功耗相對較難控制,在行動通訊平台上恐怕會產生發熱或電力消耗快速的問題,加上 Qualcomm 認為自有的 Hexagon DSP 架構可兼顧功耗與性能表現,作為 CPU 和 GPU 之間的補充,亦可讓整個平台擁有更好的反應速度與運算效能。加上 Qualcomm 本身的 GPU 其實支援 GPGPU 運算,所以能在各種不同的情境之下滿足消費者的運算需求。

強化的應用配置與性能表現

過去的 Hexagon DSP V3 版僅針對音效處理,比如說音場、抗噪及低功耗解碼播放等,較少針對多媒體編解碼或照相功能的輔助,後續的 V4/V5 版本則增加了與多媒體解碼單元及照相功能的互動,除強化 DSP 的應用廣度,也讓原本會消耗大量運算效能的計算得以從 CPU 分攤出來。藉由與 Hexagon 680 DSP 的協同運算,在照相功能方面可以快速的進行畫質調整、強化,或者是其他特效的即時運算,亦能協助進行視訊解碼或編碼運算。V5 版亦增加了對Sensor的支援。

hexagon

至於最新的 Hexagon 680 與之前的 Hexagon V5版 相較之下,又有什麼改善?Hexagon 680 DSP 主要增加 Hexagon Vector Extensions / HVX 擴充指令的支援,可針對包含 VR、AR、視訊編解碼、後期特效處理等各種運算需求進行低功耗運算。另外從基本運算單元的差別來看,Hexagon 680 與前一版 Qualcomm 自有 DSP 架構相較之下,由每個時脈週期可執行 3 道執行緒進步到可同時執行 4 道執行緒,每個執行緒同樣包含了 4 個 1024 bit 超長指令(VLIW),且同樣具備動態丟棄閒置指令的能力。理論上,在相同時脈的條件下,可增加約 3 成的效能表現。不過為了功耗考量,Hexagon 680 時脈較 810 的 Hexagon V56 低了 10% 左右,換算之下,Hexagon 680 平均性能約較前代增加了 3 成以上。

另外,從製程和時脈設定換算,一般運算狀態下,Hexagon 680 平均功耗約為前代架構的 5~6 成。因為 Hexagon 680 DSP 設計上可取代 NEON 來加速多媒體運算,與 NEON 計算單元相較之下,同樣的運算需求使用 Hexagon 680 DSP 可帶來理論上最多 3 倍的性能改善,且同時還能降低功耗表現。

qualcomm snapdragon 810

比較值得一提的是,過去 Snapdragon 810 分別在 AP 和 Modeom 區塊各內建 1 組 Hexagon V56 DSP,Snapdragon 820 則是在這 2 組 Hexagon 680 DSP 之外,另外增加 1 組超低功耗 Hexagon 680 DSP。這個超低功耗 DSP 模組直接與各種感測器連接,除確保包括運動感測、三軸、陀螺儀、GPS 等感測器可在各種狀況下發生作用,迅速回應使用者的操作需求,同時並確保系統功耗可以同時維持在相對低的水準,不需動用到 CPU 的運算能量,沒錯,其作用等同於 1 個 Sensor hub。

Qualcomm 版的 CUDA,但更少人用

Hexagon 680 DSP 不支援標準的 OpenCL,僅支援自家的封閉函式庫,也就是說,一般應用開發者仍難以針對此 DSP 架構撰寫應用程式。雖然這是為了保護自家的智慧財產,但同時也相當程度限制了平台運算性能的發揮,Qualcomm 似乎僅願意讓一般應用開發者取用 GPGPU 的運算能量,DSP 區塊仍保留給 OEM / ODM 選擇是否採用或開啟的彈性。