TConv3DApiTiling Structure
The TConv3DApiTiling structure contains the Conv3D operator specifications and parameters related to the Tiling algorithm. It is passed to the Conv3D Kernel for data segmentation, data movement, and computation. For details about the parameters of the TConv3DApiTiling structure, see Table 1.
You can call the GetTiling API to obtain the TConv3DApiTiling structure. For details, see Conv3D Tiling Instructions. Currently, the parameters in the TConv3DApiTiling structure cannot be customized.
Parameter |
Data Type |
Description |
|---|---|---|
groups |
uint32_t |
Reserved. Currently, this parameter can only be set to 1. |
singleCoreDo |
uint64_t |
Size of Dout processed on a single core. |
singleCoreCo |
uint32_t |
Size of Cout processed on a single core. |
singleCoreM |
uint64_t |
Size of M processed on a single core. |
orgDo |
uint64_t |
Size of the original Dout in Conv3D computation. |
orgCo |
uint32_t |
Size of the original Cout in Conv3D computation. |
orgHo |
uint64_t |
Size of the original Hout in Conv3D computation. |
orgWo |
uint64_t |
Size of the original Wout in Conv3D computation. |
orgCi |
uint32_t |
Size of the original Cin in Conv3D computation. |
orgDi |
uint64_t |
Size of the original Din in Conv3D computation. |
orgHi |
uint64_t |
Size of the original Hin in Conv3D computation. |
orgWi |
uint64_t |
Size of the original Win in Conv3D computation. |
kernelD |
uint32_t |
Size of the original kernel (D dimension) of the convolution kernel in Conv3D computation. |
kernelH |
uint32_t |
Size of the original kernel (H dimension) of the convolution kernel in Conv3D computation. |
kernelW |
uint32_t |
Size of the original kernel (W dimension) of the convolution kernel in Conv3D computation. |
strideD |
uint32_t |
Size of the Stride D dimension in Conv3D computation. |
strideH |
uint32_t |
Size of the Stride H dimension in Conv3D computation. |
strideW |
uint32_t |
Size of the Stride W dimension in Conv3D computation. |
dilationD |
uint32_t |
Size of the Dilation D dimension in Conv3D computation. |
dilationH |
uint32_t |
Size of the Dilation H dimension in Conv3D computation. |
dilationW |
uint32_t |
Size of the Dilation W dimension in Conv3D computation. |
padHead |
uint32_t |
Size of the Head direction in the Padding D dimension in Conv3D computation. |
padTail |
uint32_t |
Size of the Tail direction in the Padding D dimension in Conv3D computation. |
padUp |
uint32_t |
Size of the Up direction in the Padding H dimension in Conv3D computation. |
padDown |
uint32_t |
Size of the Down direction in the Padding H dimension in Conv3D computation. |
padLeft |
uint32_t |
Size of the Left direction in the Padding W dimension in Conv3D computation. |
padRight |
uint32_t |
Size of the Right direction in the Padding W dimension in Conv3D computation. |
mL0 |
uint32_t |
Size of M processed on L0 at a time. |
kL0 |
uint32_t |
Size of K processed on L0 at a time. |
nL0 |
uint32_t |
Size of N processed on L0 at a time. |
kAL1 |
uint32_t |
Actual size of K of Input on L1, which is equal to Cin1InL1 × KH × KW × C0. Cin1InL1 is the tiled size after KD × Cin1 axes merged. |
kBL1 |
uint32_t |
Actual size of K of Weight on L1, which is equal to Cin1InL1 × KH × KW × C0. Cin1InL1 is the tiled size after KD × Cin1 axes merged. |
nBL1 |
uint32_t |
Actual data size of the Cout dimension loaded to the Weight on L1 |
mAL1 |
uint32_t |
Actual data size of M loaded to Input on L1. |
al1FullLoad |
uint8_t |
Whether the Input data is fully loaded on L1 Buffer. 0: Input data is not fully loaded on L1 Buffer. 1: Input data is fully loaded on L1 Buffer. |
bl1FullLoad |
uint8_t |
Whether the Weight data is fully loaded on L1 Buffer. 0: Weight data is not fully loaded on L1 Buffer. 1: Weight data is fully loaded on L1 Buffer. |
iterateMNOrder |
uint8_t |
Output sequence of the M axis and N axis when the result matrix is output. 0: The M direction is preferentially output. The M direction is output first, and then the N direction is output, as shown in Figure 2. 1: The N direction is preferentially output. The N direction is output first, and then the M direction is output, as shown in Figure 3. M consists of Hout and Wout. The output sequence in the M direction is as follows: The Wout direction is output first, and then the Hout direction is output. |
biasFullLoadFlag |
uint8_t |
Whether Bias is fully loaded to L1 Buffer. 0: no. The size of the Bias data loaded to a single core at a time is equal to the size (nL0) in the N direction of a single matrix multiplication. 1: yes. The Bias data is fully loaded to a single core at a time. |
Note: The M axis is the vertical axis of the input expanded by img2col during the forward convolution operation, and its value is equal to Hout × Wout. The K axis is the horizontal axis of the input expanded by img2col, and its value is equal to KD × C1 × KH × KW × C0. KD, KH, and KW are the depth, height, and width of Weight, which are the abbreviations of kernelD, kernelH, and kernelW, respectively. N is the Cout of Weight. For details, see Figure 1. |
||


