Operator CastKernel

Operator Library: Base

CastKernel オペレータを使用すると、入力データの Parallelism とカーネルサイズを再構成できます。 再解釈を行うには、出力リンクでカーネルサイズを変更します。 たとえば、入力リンクが2つのカーネル行、2つのカーネル列、Parallelism 4で設定されているとします。 CastKernel オペレータを使用すると、これらを Parallelism 1で4つのカーネル行と4つのカーネル列として解釈したり、 Parallelism 8で1つのカーネル行と2つのカーネル列として解釈したりすることが可能です。 CastKernel オペレータの制約として、カーネル行、カーネル列、および Parallelism の積は、入力リンクと出力リンクで同一でなければなりません。

カーネルの操作に関する実践的なガイダンスについては、 Working with Kernels チュートリアルのトピックを参照してください。 Parallelism に関する実践的なガイダンスについては、 Parallelism チュートリアルのトピックを参照してください。

次の例は、オペレータによって実行されるカーネル設定と Parallelism の変換を示しています。 図の下にある疑似コードも、変換パターンについて説明しています。

例 1: Parallelism 2を維持したまま、カーネルサイズ(列×行)3x1をカーネルサイズ 1x3に変換する:

例 2: Parallelism 2およびカーネルサイズ(列×行)2x3を、Parallelism 3およびカーネルサイズ 2x2に変換する:

例 3: Parallelism 1およびカーネルサイズ(列×行)3x2を、Parallelism 6およびカーネルサイズ 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:

この例では、Parallelism 3 で 4 つのカーネル列と 2 つのカーネル行を持つ入力構成が、Parallelism 4 で 2 つのカーネル列と 3 つのカーネル行を持つ構成に再編成されています。出力リンクをそれぞれ設定することで、オペレーター CastKernel を使用して同様のことを実現できます:

I/O Property

Property 値
オペレータータイプ O
Input Link I, data input
Output Link O, data output

サポートされているリンクフォーマット

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

1

Bit Width の範囲は次のとおりです:

  • 符号なし入力の場合: [1, 64]
  • 符号付き入力の場合: [2, 64]
  • 符号なしカラー入力の場合: [3, 63]
  • 符号付きカラー入力の場合:[6, 63]

2

出力の Parallelism は入力の Parallelism によって決定されます 、入力カーネルサイズ 、および出力カーネルサイズ :

ここで、 はカーネル行を示し、 はカーネル列を示します。

3

出力の最大画像幅は、入力の最大画像幅、出力の Parallelism 、および入力の Parallelism によって次のように決定されます:

パラメーター

None

使用例

CastKernel オペレーターの使用例を以下に示します: