Operator CastKernel

Operator Library: Base

藉由 CastKernel 運算子,您可以重新組織輸入資料的 Parallelism 與 kernel 大小。 若要進行重新詮釋,請變更輸出連結上的 kernel 大小。 例如,某個輸入連結設定為兩個 kernel rows 與兩個 kernel columns,且 Parallelism 為 4。 CastKernel 運算子讓您能夠在 Parallelism 為 1 時將這些內容詮釋為四個 kernel rows 與四個 kernel columns,或者在 Parallelism 為 8 時詮釋為一個 kernel row 與兩個 kernel columns 等等。 CastKernel 運算子的限制是,輸入與輸出連結的 kernel row、kernel column 與 Parallelism 的乘積必須相同。

如需關於處理 kernel 的實用指導,請參閱 Working with Kernels 教學主題。 如需關於 Parallelism 的實用指導,請參閱 Parallelism 教學主題。

以下範例說明了由運算子執行的 kernel 組態與 Parallelism 轉換。 圖解下方的虛擬碼也描述了轉換模式。

範例 1:將 kernel 大小 (col x row) 3x1 轉換為 kernel 大小 1x3,同時保持 Parallelism 2:

範例 2:將 Parallelism 2 與 kernel 大小 (col x row) 2x3 轉換為 Parallelism 3 與 kernel 大小 2x2:

範例 3:將 Parallelism 1 與 kernel 大小 (col x row) 3x2 轉換為 Parallelism 6 與 kernel 大小 1x1:

此運算子會變更影像的寬度。

對應遵循以下虛擬碼:

        
        pi = 0
        ri = 0
        ci = 0
        for p in 0 to P-1
          for r in 0 to R-1
            for c in 0 to C-1
              O[p][r][c] = I[pi][ri][ci]
              ci = ci + 1
              if ci >= Ci then ci = 0, ri = ri + 1
              if ri >= Ri then ri = 0, pi = pi + 1
        
      

該虛擬碼具有以下含意:

虛擬碼 含義
p Output-Parallel-Index
pi Input-Parallel-Index
r Output-Kernel-Row-Index
ri Input-Kernel-Row-Index
c Output-Kernel-Column-Index
co Output-Kernel-Column-Index
Pi Input-Parallelism
P Output-Parallelism
Ri Input-Kernel-Rows
R Input-Kernel-Columns
Ci Input-KernelColumns
C OutputKernelColumns

表 32. 偽代碼說明


CastKernel運算子的功能亦可透過組合以下運算子來實現: SplitKernel、 MergeKernel、 SplitParallel 以及 MergeParallel:

在此範例中,原始輸入配置為 4 列核心與 2 行核心,並列度為 3,經重新組織後 變為 2 列核心與 3 行核心,並列度為 4。透過分別配置CastKernel運算子的輸出連結,亦可達到相同效果:

I/O Properties

Property Value
Operator Type O
Input Link I, data input
Output Link O, data output

支援的 Link 格式

Link Parameter Input Link I Output Link O
Bit Width [1, 64]1 當我
Arithmetic {Unsigned, signed} 當我
Parallelism 任意 Auto2
Kernel Columns 任意 任意
Kernel Rows 任意 任意
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} 當我
Color Format 任意 當我
Color Flavor 任意 當我
Max. Img Width 任意 Auto3
Max. Img Height 任意 當我

1

位寬的範圍為:

  • 對於無符號輸入:[1, 64]
  • 對於有符號輸入:[2, 64]
  • 對於無符號彩色輸入:[3, 63]
  • 對於帶符號的色彩輸入:[6, 63]

2

輸出並行度 取決於輸入的並行度 , 輸入核心大小 以及輸出核心大小 :

其中 表示核的行,而 表示核函數的列。

3

輸出影像的最大寬度取決於輸入影像的最大寬度以及輸出並行度 以及輸入並行度 作者:

參數

無

使用範例

以下範例顯示了 CastKernel 算子的使用方式: