深入探祕英特爾最新GPU架構

半導體行業觀察
昨天

(原標題:深入探祕英特爾最新GPU架構)

如果您希望可以時常見面,歡迎標星收藏哦~

來源:內容編譯自chipsandcheese,謝謝。

過去幾年來,英特爾在高性能圖形領域的進軍取得了令人矚目的進展,而且該公司並沒有鬆懈腳步。英特爾的 Tom Peterson此前表示,Xe3 硬件設計已經完成,軟件工作正在進行中。其中一些軟件工作可以在幾個不同的開源存儲庫中看到,這爲未來的發展提供了預覽。

GPU 組織:更大的渲染切片?

現代 GPU 是基於細分級別的層次結構構建的,因此它們可以擴展以達到不同的性能、功耗和價格目標。在英特爾 GPU 上運行的着色器程序可以通過讀取(狀態寄存器 0)架構寄存器的低位來檢查其運行的位置sr0。

sr0Xe3 上的拓撲位具有不同的佈局 。渲染切片中的 Xe 核心用四位枚舉,高於前幾代中的兩位。因此,Xe3 的拓撲位將能夠處理最多 16 個 Xe 核心的渲染切片。前幾代 Xe 每個渲染切片只能有四個 Xe 核心,而且通常會一直這樣。B580 和 A770 都在每個渲染切片中放置了四個 Xe 核心。

擁有足夠的位來描述某種配置並不意味着英特爾會推出如此大的產品。Xe 確實在 Arc A770 中使用了其最大 32 核、4096 通道設置。然而,Xe2 在 Arc B580 上最大達到了 20 核和 2560 通道。Xe2 的sr0格式理論上可以枚舉 16 個切片。給每個切片最多 4 個 Xe 核心將形成一個 64 Xe 核心 GPU,具有 8192 個 FP32 通道。顯然,B580 根本無法達到這個水平。

Xe3 則更進一步。最大化所有拓撲枚舉位將產生一個非常大的 256 Xe Core 配置,具有 32768 個 FP32 通道。這甚至比 Nvidia 的 RTX 5090 還要大,後者“僅”有 21760 個 FP32 通道。英特爾一直專注於中端市場,我懷疑我們會看到如此大的產品。

相反,我認爲英特爾希望更靈活地擴展計算能力,而不受 ROP 和光柵化器等固定功能硬件的影響。AMD 和 Nvidia 的 SA 和 GPC 都包含遠超四個核心的內核。例如,RX 6900XT 的着色器引擎各有 10 個 WGP。Nvidia 的 RTX 4090 在每個 GPC 中放置了八個 SM。隨着遊戲使用更復雜的着色器程序,GPU 的計算量隨着時間的推移變得越來越大。英特爾似乎也在遵循同樣的趨勢。

XVE 變化

Xe 矢量引擎 (XVE) 在英特爾 GPU 上執行着色器程序。它們結合使用矢量級和線程級並行來隱藏延遲。

佔用率更高,並行度更高

Xe3 XVE 可以同時運行 10 個線程,而前幾代只有 8 個。與 CPU 上的 SMT 一樣,跟蹤多個線程有助於 XVE 使用線程級並行性隱藏延遲。如果一個線程停滯,XVE 有望找到一個未停滯的線程來發出指令。活動線程數也稱爲線程佔用率。GPU 上的 100% 佔用率類似於 Windows 任務管理器中的 100% 利用率。與 CPU SMT 實現不同,GPU 佔用率可能受寄存器文件容量限制。

之前的英特爾 GPU 有兩種寄存器分配模式。通常每個線程獲得 128 個 512 位寄存器,每個線程 8 KB 寄存器。“大型 GRF”模式爲每個線程提供 256 個寄存器,但由於寄存器文件容量限制,佔用率降至 4 個線程。Xe3 繼續爲每個 XVE 使用 64 KB 寄存器文件,但靈活地在 32 個條目塊2中分配寄存器。只要每個線程使用 96 個或更少的寄存器,Xe3 的 XVE 就可以同時運行 10 個線程。如果着色器程序需要大量寄存器,則佔用率會比前幾代產品下降得更平穩。

Nvidia 和 AMD GPU 以更精細的粒度分配寄存器。例如,AMD 的 RDNA 2 以 16 個塊爲單位分配寄存器。但 Xe3 仍然比前幾代英特爾產品更靈活。通過這一變化,只需要幾個寄存器的簡單着色器將通過更多的線程級並行性享受更好的延遲容忍度。而更復雜的着色器可以避免降到“大型 GRF”模式。

Xe3 的 XVE 也擁有更多的記分牌令牌。與 AMD 和 Nvidia 一樣,英特爾使用編譯器輔助調度來處理長延遲指令(如內存訪問)。長延遲指令可以設置記分牌條目,而依賴指令可以等到該條目被清除。每個 Xe3 線程都會獲得 32 個記分牌令牌,無論佔用情況如何,因此 XVE 總共有 320 個記分牌令牌。在 Xe2 上,如果 XVE 運行八個線程,則線程獲得 16 個令牌,或者在四個線程的“大型 GRF”模式下獲得 32 個令牌。因此,Xe2 的 XVE 總共只有 128 個記分牌令牌。更多的令牌讓線程擁有更多未完成的長延遲指令。這很可能轉化爲每個線程更多的內存級並行性。

“標量”寄存器(s0)

英特爾的 GPU ISA 有一個矢量寄存器文件(GRF,即通用寄存器文件),用於存儲着色器程序的大部分數據併爲矢量執行單元提供數據。它還有一個帶有特殊寄存器的“架構寄存器文件”(ARF)。其中一些可以存儲數據,例如累加器寄存器。但其他寄存器則用於特殊用途。例如,sr0如上所述,提供 GPU 拓撲信息,以及浮點異常狀態和線程優先級。32 位指令指針指向當前指令地址,相對於指令基址。

s0Xe3在 ARF 中添加了一個“標量寄存器”( ) 。s0其佈局與地址寄存器(a0)非常相似,用於收集發送指令。XVE 通過使用send指令通過 Xe Core 的消息結構發送消息來訪問內存並與其他共享使用進行通信。收集發送似乎讓 Xe3 從寄存器文件中收集不連續的值,並使用單個指令發送它們send。

除了添加標量寄存器之外,Xe3 還擴展了線程依賴寄存器 (TDR) 以處理 10 個線程。sr0由於未知原因獲得了一個額外的 32 位雙字。

指令變更

Xe3 支持 FCVT 的飽和度修飾符,這是一種在不同浮點類型之間(而不是在整數和浮點之間)進行轉換的指令。FCVT 是在 Ponte Vecchio 中引入的,但飽和度修飾符可以簡化從高精度浮點格式到低精度浮點格式的轉換。Xe3 還獲得了 HF8(半浮點 8 位)格式支持,除了 Xe2 中已經支持的 BF8 類型之外,還提供了另一種 8 位浮點格式選項。

對於 XMX 單元,Xe3 增加了一條xdpas指令4 。sdpas代表稀疏脈動點積與累加5 。具有大量零元素的矩陣稱爲稀疏矩陣。稀疏矩陣上的運算可以進行優化,因爲任何乘以零的數顯然都是零。Nvidia 和 AMD GPU 都實現了稀疏性優化,而英特爾顯然也在尋求做同樣的事情。

光線追蹤:子三角形不透明度剔除

子三角形不透明度剔除 (STOC) 將 BVH 葉節點中的三角形細分,並將子三角形標記爲透明、不透明或部分透明。主要動機是減少遊戲使用紋理 alpha 通道處理複雜幾何圖形時浪費的任意命中着色器工作。英特爾的論文以樹葉爲例,指出程序員可能會使用低頂點數來減少“渲染、動畫甚至模擬運行時間”。7從API 角度來看,BVH 幾何只能完全透明或不透明,因此遊戲將所有部分透明的圖元標記爲透明。每個光線相交都會觸發一個任意命中着色器,該着色器執行 alpha 測試。如果 alpha 測試表明光線與圖元的透明部分相交,則着色器程序不會貢獻樣本,並且任意命中着色器啓動基本上是浪費的。如果光線與完全透明或完全不透明的子三角形相交,STOC 位會讓任意命中着色器跳過 alpha 測試。

存儲每個子三角形的不透明度信息需要兩位,因此與使用單個不透明度位存儲整個三角形相比,STOC 確實需要更多存儲空間。不過,它比將整個紋理打包到 BVH 中更實用。英特爾的論文發現,在處理半透明光線追蹤陰影時,與標準 alpha 測試相比,純軟件 STOC 實現可將性能提高 5.9-42.2%。

STOC 感知光線追蹤硬件可以提供進一步的增益,尤其是使用英特爾的光線追蹤實現時。英特爾的光線追蹤加速方法與 DXR 1.0 標準非常接近。光線追蹤加速器 (RTA) 通過向 Xe Core 的線程調度程序發送消息來自主處理遍歷並啓動命中/未命中着色器。如果光線與完全透明的子三角形相交,STOC 位可以讓 RTA 跳過着色器啓動。對於不透明的子三角形,RTA 可以告訴着色器程序跳過 alpha 測試,並提前終止光線。

Xe3 將 STOC 位帶入硬件光線追蹤數據結構,複雜程度有兩級。基本實現保留 64B 葉節點,但創造性地找到空間容納 18 個額外位。英特爾的QuadLeaf結構代表一對合並的三角形。每個三角形獲得 8 個 STOC 位,這意味着四個子三角形。另外兩位指示任意命中着色器是否應在軟件中進行 STOC 模擬,可能讓程序員關閉硬件 STOC 進行調試。此模式在代碼中名爲“STOC1”。

“STOC3”結構通過存儲指向 STOC 位的指針而不是將其嵌入到 BVH 中,使事情更進一步。這允許在 STOC 位可以使用的存儲量方面有更大的靈活性。STOC3 還指定了 STOC 位的遞歸級別,可能用於遞歸劃分三角形。進一步細分將減少部分透明子三角形的數量,這需要從任意命中着色器進行 alpha 測試。存儲 STOC3 的指針將葉節點大小增加到 128 字節,從而增加了 BVH 內存佔用量。

可能的性能提升令人興奮,但使用 STOC 需要遊戲開發人員或遊戲引擎的工作。英特爾建議 STOC 位可以作爲遊戲資產編譯的一部分離線生成。藝術家必須確定使用 STOC 是否會爲特定場景提供性能提升。有大量樹葉的場景可能會從 STOC 中受益匪淺。鐵絲網圍欄可能是另一回事。STOC 不是 DirectX 或 Vulkan 標準的一部分,這可能是採用的另一個障礙。但是,純軟件 STOC 仍然可以提供好處。這可能會鼓勵開發人員嘗試它。如果他們確實實施了它,那麼支持 STOC 的 Xe3 硬件將比純軟件解決方案獲得更多收益。

最後的話

我們距離真正的 Xe3 產品還有一段時間。但軟件變化表明 Xe3 是英特爾圖形架構向前邁出的又一大步。Xe2 是英特爾進軍獨立顯卡領域的堅實一步,它以名義上較小的 GPU 提供了比 Xe 更好的性能。Xe3 再次調整了架構,可能具有類似的目標。更高的佔用率和動態寄存器分配將使 Xe Cores 更能容忍延遲,從而提高利用率。這些變化也使英特爾的圖形架構更接近 AMD 和 Nvidia。

XVE 的變化表明英特爾仍在忙於改進其核心計算架構。相比之下,Nvidia 的流式多處理器從 Ampere 到 Blackwell 並沒有發生重大變化。Nvidia 可能覺得 Ampere 的 SM 架構已經足夠好了,於是將精力轉向調整功能,同時擴大 GPU 規模以繼續提供代際收益。與此同時,英特爾尋求從每個 Xe 核心中獲得更多收益(Xe2 以更少的 Xe 核心實現了比 Xe 更高的性能)。

與 Nvidia 類似,英特爾正在大力推進功能,顯然已投入研究。GPU 通常會嘗試避免做無用的工作。就像光柵化管道使用早期深度測試來避免無用的像素着色器調用一樣,STOC 避免產生無用的任何命中着色器。現在判斷 STOC 或其他 Xe3 功能會帶來什麼樣的不同還爲時過早。但任何懷疑英特爾致力於推動其 GPU 架構發展的人都應該認真研究 Mesa 和英特爾圖形編譯器的變化。有很多事情正在發生,我期待着在 Xe3 準備就緒時看到它。

https://chipsandcheese.com/p/looking-ahead-at-intels-xe3-gpu-architecture

半導體精品公衆號推薦

專注半導體領域更多原創內容

關注全球半導體產業動向與趨勢

*免責聲明:本文由作者原創。文章內容系作者個人觀點,半導體行業觀察轉載僅爲了傳達一種不同的觀點,不代表半導體行業觀察對該觀點贊同或支持,如果有任何異議,歡迎聯繫半導體行業觀察。

今天是《半導體行業觀察》爲您分享的第4069期內容,歡迎關注。

‘半導體第一垂直媒體’

實時 專業 原創 深度

公衆號ID:icbank

喜歡我們的內容就點“在看”分享給小夥伴哦

免責聲明:投資有風險,本文並非投資建議,以上內容不應被視為任何金融產品的購買或出售要約、建議或邀請,作者或其他用戶的任何相關討論、評論或帖子也不應被視為此類內容。本文僅供一般參考,不考慮您的個人投資目標、財務狀況或需求。TTM對信息的準確性和完整性不承擔任何責任或保證,投資者應自行研究並在投資前尋求專業建議。

熱議股票

  1. 1
     
     
     
     
  2. 2
     
     
     
     
  3. 3
     
     
     
     
  4. 4
     
     
     
     
  5. 5
     
     
     
     
  6. 6
     
     
     
     
  7. 7
     
     
     
     
  8. 8
     
     
     
     
  9. 9
     
     
     
     
  10. 10