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.

Table 1 TConv3DApiTiling structure description

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.

Figure 1 3D convolution forward MKN diagram
Figure 2 3D convolution forward MFirst diagram
Figure 3 3D convolution forward NFirst diagram