Operator Library: Base
透過CastKernel運算子,您可以重新組織輸入資料的並行度與核心大小。 若要重新詮釋,請在輸出連結處變更核心大小。 例如,某個輸入連結配置為兩個核心行、兩個核心列,且並行度為四。 CastKernel運算子讓您能夠將這些設定詮釋為:在平行度為 1 時為四行四欄,或 在平行度為 8 時為一行兩欄,等等。 CastKernel運算子的限制在於,輸入與輸出連結中,核心行數、核心列數與平行度的乘積必須完全相同 。
有關使用核心的實務指引,請參閱 「使用核心」教學主題。 有關並行處理的實務指引,請參閱 Parallelism 教學主題。
以下範例說明了運算子所執行的核心配置與並行化轉換。 圖示下方的偽代碼亦描述了該轉換模式。
範例 1:將核尺寸(列 × 行)3×1 轉換為 1×3,同時維持並行度 2:

範例 2:將並行度 2 和核心大小(列 × 行)2x3 轉換為並行度 3 和核心大小 2x2:

範例 3:將並行度 1 和核心大小(列 × 行)3×2 轉換為並行度 6 和核心大小 1×1:

此運算子會變更圖片的寬度。
此映射遵循以下偽程式碼:
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 | 輸出並行索引 |
| π | 輸入-並行-索引 |
| r | Output-Kernel-Row-Index |
| ri | 輸入-核心-行索引 |
| c | 輸出-核心-欄位-索引 |
| co | 輸出-核心-欄位-索引 |
| π | 輸入-Parallelism |
| P | 輸出-Parallelism |
| Ri | 輸入-核心-行 |
| R | 輸入-核心-欄位 |
| Ci | 輸入-核心欄位 |
| C | 輸出核心欄位數 |
表 32. 偽代碼說明
CastKernel運算子的功能也可透過組合以下運算子來實現: SplitKernel、 MergeKernel、 SplitParallel 以及 MergeParallel:

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

以下範例展示了 CastKernel 運算子的使用方式:
-
'Functional Example for Specific Operators of Library Memory and Library Signal'
範例 - operator 使用方式示範
-
'Functional Example for Specific Operators of Library Memory and Library Signal'
範例 - operator 使用方式示範




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

表示核函數的行,而
表示核列。
以及輸入並行度
作者:

上一頁

