
👆如果您希望可以時常見面,歡迎標星🌟收藏哦~
來源:內容編譯自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
END
👇半導體精品公眾號推薦👇
▲點選上方名片即可關注
專注半導體領域更多原創內容
▲點選上方名片即可關注
關注全球半導體產業動向與趨勢
*免責宣告:本文由作者原創。文章內容系作者個人觀點,半導體行業觀察轉載僅為了傳達一種不同的觀點,不代表半導體行業觀察對該觀點贊同或支援,如果有任何異議,歡迎聯絡半導體行業觀察。

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



『半導體第一垂直媒體』
即時 專業 原創 深度
公眾號ID:icbank
喜歡我們的內容就點“在看”分享給小夥伴哦

