高通X2 GPU架構有何新變化?

高通X2 GPU架構有何新變化?

近日 , 高通公司 GPU 團隊負責人Eric Demers接受了采訪 , 在采訪中Eric重點討論了高通即將推出的 X2 GPU 架構 , 該架構相較于上一代 X1 GPU 所做出的改動 , 以及這些改動背后的設計考量 。
為了更好的閱讀體驗 , 以下內容經過編輯整理:
George:請先介紹一下你的工作職責吧 。
Eric:我在高通工作 , 目前擔任 GPU 團隊負責人 , 主要負責大部分硬件相關工作 , 同時也參與部分軟件工作 , 我已經在高通工作了 14 年 。
George:請用 60 秒時間快速總結一下 , X2 GPU 對比 X1 GPU 有哪些新變化?
Eric:對我們而言 , X2 是真正的下一代產品 。 這意味著我們全面審視了 X1 的所有技術基礎 , 并且確信 “我們可以做得更好” , 最終實現了性能的根本性提升 。 正如我之前提到的 , X2 的性能提升十分顯著 , 但功耗的增長幅度卻并未與之成正比 。 因此 , 這是一款能效極高的核心:用戶只需略微提高功耗 , 就能獲得大幅的性能躍升 。 這與 “性能翻倍、功耗也翻倍” 的傳統模式形成了鮮明對比 , 這是第一項重大改進 。 第二項改進是 , 我們希望 X2 成為一款全面支持 DirectX 12.2 Ultimate 標準的產品 。 目前大多數 Windows 平臺的 GPU 均已支持 DirectX 12.2 的全部功能 , 而我們的 X2 也將加入這一行列 。
George:從 API 支持的角度來看 , X2 GPU 將兼容哪些接口?
Eric:首先 , 肯定是會支持 DirectX 12.2 及其所有前代版本 , 確保在該接口下的完全兼容性 。 同時 , 我們計劃原生支持 Vulkan 1.4 接口 , 雖然 Windows 系統本身也提供了一個版本 , 但我們將推出原生版本 , 其代碼庫與其他產品所使用的保持一致 。 我們還將原生支持 OpenCL 3.0 接口 , 該版本同樣與我們其他產品的接口方案相同 。 此外 , 我們計劃在 2026 年第一季度推出對 SYCL 接口的支持 。 SYCL 是一款面向 GPU 的高端計算專用 API 及著色語言 , 屬于開放標準 , 已有多家企業支持該接口 。 它將幫助我們拓展驍龍平臺在 Windows 系統上的GPGPU應用場景 。
George:我們再深入聊聊架構細節 。 X2 GPU 引入了一項名為 HPM(即高性能內存)的技術 , 對吧?這項技術的核心用途是什么?硬件層面又是如何實現的?
Eric:我們的 GPU 一直以來都配備了專用內存 。 早期面向移動設備時 , 我們采用的是分片渲染架構 , 其核心目的是最大限度降低內存帶寬需求 。 實現這一目標的關鍵 , 是在數據被傳輸至 DRAM(動態隨機存取存儲器)之前 , 盡可能將更多數據保留在芯片內部 。 而現在 , 我們將這一理念推向了新高度:大幅增加了片上內存的容量 , 不再對屏幕進行分片渲染 , 而是采用常規渲染方式 , 但將渲染結果直接輸出到片上 SRAM中 , 該內存的容量足以容納整個畫面或絕大部分畫面內容 。 以 X2 至尊版為例 , 它能夠原生支持 QHD+(2K 級別)、1600p 等分辨率的渲染 , 所有渲染操作(包括顏色光柵操作、深度緩沖等)都能在芯片上全速完成 , 完全不占用任何 DRAM 帶寬 。 這就為 GPU、CPU 和 NPU的內存讀取操作釋放了帶寬資源 。 這不僅能帶來性能提升 , 節省的大量帶寬還能進一步降低功耗 。 對我們而言 , 這是一次能效的重大突破 。 此外 , HPM 并非僅用于渲染 , 它還是一塊與 GPU 相連的通用大容量內存 , 同樣可用于計算任務 。 例如 , 用戶可以先將渲染結果存儲在 HPM 中 , 然后直接在 HPM 內通過著色器進行后期處理 。 從應用和驅動的雙重角度來看 , HPM 支持多種靈活的使用場景 。
George:X2-90 GPU 配備了 21 兆字節的 HPM 。 這些內存是如何分配的?是否是每個分片 5.25 兆字節 , 且每個分片只能訪問自己的 5.25 兆字節?還是說 , 這些內存是整個芯片共享的?
Eric:從物理實現來看 , HPM 確實是按分片配置的 , 每個分片對應 5.25 兆字節 。 但關鍵在于 , 我們設計了一個全帶寬的交叉開關網絡 , 如果將 HPM 視為幀緩沖 , 那么任何分片都能從任意位置讀取數據 。 所有分片都可以對整個內存空間進行隨機訪問 。 盡管 HPM 在物理上分布于各個分片內部 , 但通過全帶寬交叉開關 , 所有分片都能自由使用整個 HPM 資源 。
George:HPM 的工作模式是怎樣的?它是一種緩存 , 還是一種暫存器?
Eric:因為其工作模式完全由軟件控制 。 用戶可以將部分 HPM 分配為緩存 , 其中顏色緩存和深度緩存的總容量最高可達 3 兆字節 , 兩者的占比通常在 1/3 到 2/3 之間 。 一般來說 , 當渲染結果需要輸出到 DRAM 時 , 用戶會將這部分 HPM 用作緩存 。 該緩存的作用是優化數據讀取的粒度:系統會預取數據并將其傳輸至芯片 , 對數據進行解壓縮后存入 HPM , 盡可能在本地使用這些數據 , 僅在緩存行被替換時才將數據寫回緩存 。 而 HPM 的剩余部分則預留為軟件專用區域 。 這部分內存可以閑置 , 也可以用于存儲渲染目標(支持多個渲染目標同時存儲) , 還可以僅存儲深度緩沖或顏色緩沖數據 , 甚至可以存儲后續渲染過程中需要用到的紋理數據 。 從這個意義上說 , 它是一塊真正的通用暫存器 , 應用程序和驅動程序都可以根據自身需求靈活使用 。
George:為什么只允許 3 兆字節的 SRAM 用作緩存 , 而將剩余的 2.25 兆字節設為暫存器 SRAM?為什么不將全部內存都用作緩存呢?
Eric:這其實是我們內部也反復探討過的問題 。 首先 , 將所有內存都設計為緩存 , 且保持當前的緩存粒度 , 需要付出不小的成本 。 緩存的標記內存(用于記錄緩存數據狀態的內存)容量會隨著緩存大小的增加而同步增長 , 因此這并非無成本的設計 , 而是存在顯著的開銷 。 同時 , 標記內存的增大還會影響時序性能 —— 因為每次緩存訪問都需要進行標記查找 , 標記內存越大 , 設計復雜度就越高 。 因此 , 緩存容量存在一個理想的上限 , 超過該上限后 , 所需的設計工作量和成本都會大幅增加 。 此外 , 我們通過測試發現了一個關鍵規律:當 HPM 能夠容納整個幀緩沖時 , 緩存效率可以達到 100%;但一旦緩存容量不足以容納整個幀緩沖 , 效率就會進入平臺期 , 除非緩存容量變得極小 , 否則緩存命中率不會顯著下降;同樣 , 除非緩存容量達到幀緩沖大小 , 否則命中率也不會顯著提升 。 我們所選擇的 3 兆字節緩存容量 , 恰好處于這個平臺期的下限位置 , 能夠實現非常高的緩存命中率 。 如果將緩存容量翻倍 , 命中率的提升微乎其微 , 但成本卻會大幅增加 。 因此 , 對于本次設計而言 , 這是一個最優的權衡方案 。 未來 , 如果 HPM 的使用場景發生變化 , 我們可能會重新考慮這一配置 , 但就目前而言 , 這是最適合我們的平衡選擇 。
George:我們再進一步深入探討分片架構 。 此前 , 分片的組成部分包括微流處理器(micro-SP) , 每個流處理器(SP)包含 2 個微流處理器 , 每個分片則包含 2 個流處理器 。
Eric:沒錯 。
George:過去 , 微流處理器發出的是 128 波指令 , 而現在 X2 已經切換為 64 波指令 , 但每個微流處理器仍然配備 128 個算術邏輯單元(ALU) 。 那么 , 你們是如何實現用每波 64 條指令來驅動 128 個算術邏輯單元的呢?
Eric:我不確定這與其他廠商的設計是否有很大差異 , 但我們采用的是雙發射機制 。 也就是說 , 我們會同時發射兩波指令 , 以確保所有算術邏輯單元都處于忙碌狀態 。 從某種意義上說 , 這不僅讓我們能夠支持 64 波指令 , 還能通過 64 波指令實現更高的效率 。 當程序發生分支時 , 波的規模越小 , 粒度損失就越小 , 需要處理的潛在分支數量也越少 。 通常情況下 , 64 波指令對資源的利用效率要高于大尺寸波;實際上 , 同時運行兩波指令的效率也高于單波指令 。 因此 , 對我們而言 , 即使不影響峰值吞吐量 , 增加在飛波的數量本身也是一種效率提升 。 不過 , 這也帶來了一定的開銷:為了支持兩波指令同時運行 , 需要更多的上下文信息、數據信息和元數據 。 其中一個直接影響是 , 用于存儲波數據的通用寄存器(GPR)容量需要擴大 , 我們將其容量從 96 千字節提升至 128 千字節 , 增幅約為 30% 。 擴大通用寄存器容量的部分原因是為了支持更多在飛波 , 這不僅是為了實現雙發射機制 , 更因為增加在飛波數量本身通常能提升效率 。
George:那么 , 你們的 GPU 實際能夠實現雙發射的頻率有多高?兩波指令同時執行的情況是否常見?
Eric:幾乎一直都在雙發射 , GPU 絕大多數時間都以這種模式運行 。 當然 , 理論上可能存在一些特殊情況:比如著色器執行過程中出現 “氣泡”(即流水線空轉) , 兩個波都處于等待狀態 , 此時就不會有任何指令運行;或者其中一個波先被發射并提前完成執行 。 但總體而言 , 由于我們的在飛波數量非常多 , 總能為兩波指令同時運行提供空間 。
George:明白了 。
Eric:只有在一種情況下可能會受限:如果某個波占用了大量通用寄存器 , 導致寄存器資源不足 , 雖然我們通常預留了足夠容納兩個此類波的寄存器空間 , 但在這種情況下 , GPU 可能會更頻繁地出現節流 , 因為可用的在飛波數量不足以覆蓋內存讀取的延遲 。
George:這么說來 , 雙發射機制并沒有太多限制條件?
Eric:沒錯 , 完全沒有限制 。
【高通X2 GPU架構有何新變化?】想要獲取半導體產業的前沿洞見、技術速遞、趨勢解析 , 關注我們!

    推薦閱讀