並排版面配置


圖 1

圖 1 顯示陣列 F32[3,5] 如何在記憶體中配置 2x2 並排顯示。採用此版面配置的形狀會以 F32[3,5]{1,0:T(2,2)} 寫成,其中 1,0 與維度的實體順序 (版面配置中的 minor_to_major 欄位) 有關,冒號後則代表實體尺寸的傾斜度為 2x2 圖塊。

理論上,資訊方塊會描繪出形狀,而每個圖塊中,元素都會以不並排顯示。如上例所示,範例右側部分會在記憶體中顯示版面配置,包括為了擁有完整的 2x2 圖塊,即使原始陣列邊界並非如此。

邊框間距中的額外元素不一定要包含任何特定值。

用於傾斜指定形狀和圖塊的線性索引公式

在沒有傾斜的情況下,陣列中的元素 e=(en, en-1, ... , e1) 會落在陣列邊界 d=(dn, dn-1, ... d1) (d1 是最次要的維度) 在位置上由主要到次要維度排列:

線性

n

為簡化在本文件中的標記法,我們假設資訊方塊的維度數量與陣列相同。在 XLA 的圖塊實作中,將最主要的維度保持不變,並且只將圖塊套用至最小的維度,使指定的圖塊化為傾斜角度,因此指定的圖塊會加入圖塊實體尺寸的後置字串。

使用大小傾斜 (tn、tn-1、...、t1) 時,陣列中帶有索引的元素 (en、en-1、...、e1) 會對應至最終版面配置中的這個位置:

Linear_index_with_tile(e, d, t)
= Linear_index((⌊e/t⌋, e mod t), (共 = " 第 1 節/第 1 圈)nnnn

版面配置可視為具有兩個部分:(⌊en/tn⌋、...、⌊e1/t1⌋)。這會對應大小圖塊陣列中的圖塊索引 (長寬比 n/tn、以 <t> 值、<編號 1、<> > 和 <d>ceil 函式會顯示在隨即顯示的 主頁i/ti中資訊方塊中的資訊方塊和元素都會以遞迴方式呈現,且不會傾斜。

以圖 1 為例,元素 (2,3) 的組合座標向量 (1,1,0,1) 的圖塊索引 (1,1) 和圖塊索引值 (0,1)。資訊方塊索引具有邊界 (2,3),而資訊方塊本身為 (2,2) 的組合向量 (2,3,2,2)。然後,在邏輯形狀中指定索引 (2,3) 的元素含有圖塊的線性索引

Linear_index_with_tile((2,3)、(3,5)、(2,2))
= Linear_index((1,1,0,1), (2,3,2,2))
= Linear_index((1,1), (2,3)) ∙ 2 ∙ 2 + 線性索引 (0, 1) ∙
= 1

使用觸控板重塑轉置鏡頭進行傾斜

以時間戳記為基礎的版面配置運作方式如下:
考慮維度陣列 (dn、dn-1、...、d1) (d1 是最次要的維度)。在尺寸傾斜 (tn、tn-1、...、t1) (t1 是最次要維度) 配置時,您可使用以下方式描述圖塊重塑。

  1. 陣列會填充至 (共 n/tn Hzn ... ... 李加1/t1 ∙ ∙ 1)。
  2. 每個維度已細分為 (格式為共i/ti 納、ti),亦即陣列將調整為
    (共n/tn 小時、tn、...、 d1/t1、t1)。
    這個重組本身並不會變更實體版面配置,因此這個重塑模型為位元轉換。如果未明確思考傾斜角度,此重形狀便可表達任何形狀與填充形狀相同的元素。以下範例說明如何以此方式表示資訊方塊。
  3. 將 tn、... 、t1 移至大部分的次要尺寸,同時保留相對順序時就會發生轉置,因此從大多數主要到最次要的維度順序都會變成
    (n/tn, ... , d1/t1, x1, t1, ...

最終形狀的前置字元是
(共n/tnmarket, ... mated1/t1Wait),用來說明各維度中的圖塊數量。陣列中的元素 (en、...、e1) 會以最終形狀對應至這個元素:
(⌊en/tn⌋, ... , ⌊e0/t0⌋、en mod tn、...1)。您可以輕鬆看出元素的線性索引符合上述公式。

重複傾斜

XLA 的傾斜度變得更高了,只要重複套用即可。


圖 2

圖 2 顯示大小為 4x8 的陣列如何依兩個圖塊圖塊並排顯示 (先後 2x4 到 2x1)。我們稱之為 (2,4)(2,1)。每種顏色代表一個 2x4 圖塊,每個紅色邊框為 2x1 圖塊。數字表示圖塊格式中該元素記憶體的線性索引。此格式與 TPU 上使用的 BF16 格式相符,但初始資訊方塊較大,也就是傾斜 (8,128)(2,1),第二個圖塊 2x1 的用途是收集兩個 16 位元值,以配合 TPU 的架構組成一個 32 位元值。

請注意,第二或之後的資訊方塊可參照圖塊內的未成年人維度,也就是重新排列資訊方塊內的資料 (如本例使用 (8,128)(2,1) 一樣),但也可以參照前一個圖塊的主要跨圖塊維度。

使用資訊方塊合併維度

XLA 的傾斜度也支援合併維度。例如,它可以先結合 F32[2,7,8,11,10]{4,3,2,1,0} 到 F32[112,110]{1,0} 中的維度,再與 (2,3) 合併。使用的動態磚為 (Ћ,才會顯示在,2,以外,3)。資訊方塊中的星號代表擷取該維度,並與下一個較不小的維度結合。多個相鄰維度可合併為單一維度。以圖塊尺寸來說,以該圖塊來說,圖塊中的圖塊值會是 -1 的表示值,因此在資訊方塊中是無效的尺寸大小。

更精確來說,如果形狀的尺寸 i 透過圖塊中的星號刪除,則在套用先進圖塊定義之前,系統會從要圖塊的形狀和圖塊向量中移除該維度,而形狀維度 i-1 的陣列邊界已從 di-1 增加至 didi-1。圖塊向量中的每個星號都會重複此步驟。