21.02
|
Go to the source code of this file.
Macros | ||||||||||||||||||||||||||||
#define | COLUMN_VECTOR(K0, IDX_COL, BASENAME, B, TYPE) | |||||||||||||||||||||||||||
Create column vectors to contain the values at the given index for a set of given vectors. More... | ||||||||||||||||||||||||||||
#define | COLUMN_VECTOR_SCALAR(K0, IDX_COL, BASENAME, B, TYPE) | |||||||||||||||||||||||||||
Create column vectors to contain the values at the given index. More... | ||||||||||||||||||||||||||||
#define | TRANSPOSE_K0XN0(K0, N0, BASENAME, B, TYPE) | |||||||||||||||||||||||||||
Create transposed vectors form the given source vectors. More... | ||||||||||||||||||||||||||||
#define | SCALAR_ACCESS_STR(offset, n0, x) scalar_access_##offset##_##n0(x) | |||||||||||||||||||||||||||
Utility macro to access a vector with the scalar positions. More... | ||||||||||||||||||||||||||||
#define | SCALAR_ACCESS(offset, n0, x) SCALAR_ACCESS_STR(offset, n0, x) | |||||||||||||||||||||||||||
#define | scalar_access_0_1(x) ((x).s0) | |||||||||||||||||||||||||||
#define | scalar_access_0_2(x) ((x).s01) | |||||||||||||||||||||||||||
#define | scalar_access_0_3(x) ((x).s012) | |||||||||||||||||||||||||||
#define | scalar_access_0_4(x) ((x).s0123) | |||||||||||||||||||||||||||
#define | scalar_access_0_8(x) ((x).s01234567) | |||||||||||||||||||||||||||
#define | scalar_access_0_16(x) ((x).s0123456789ABCDEF) | |||||||||||||||||||||||||||
#define | scalar_access_1_1(x) ((x).s1) | |||||||||||||||||||||||||||
#define | scalar_access_1_2(x) ((x).s12) | |||||||||||||||||||||||||||
#define | scalar_access_1_3(x) ((x).s123) | |||||||||||||||||||||||||||
#define | scalar_access_1_4(x) ((x).s1234) | |||||||||||||||||||||||||||
#define | scalar_access_1_8(x) ((x).s12345678) | |||||||||||||||||||||||||||
#define | scalar_access_2_1(x) ((x).s2) | |||||||||||||||||||||||||||
#define | scalar_access_2_2(x) ((x).s23) | |||||||||||||||||||||||||||
#define | scalar_access_2_3(x) ((x).s234) | |||||||||||||||||||||||||||
#define | scalar_access_2_4(x) ((x).s2345) | |||||||||||||||||||||||||||
#define | scalar_access_2_8(x) ((x).s23456789) | |||||||||||||||||||||||||||
#define | scalar_access_3_1(x) ((x).s3) | |||||||||||||||||||||||||||
#define | scalar_access_3_2(x) ((x).s34) | |||||||||||||||||||||||||||
#define | scalar_access_3_3(x) ((x).s345) | |||||||||||||||||||||||||||
#define | scalar_access_3_4(x) ((x).s3456) | |||||||||||||||||||||||||||
#define | scalar_access_3_8(x) ((x).s3456789A) | |||||||||||||||||||||||||||
#define | scalar_access_4_1(x) ((x).s4) | |||||||||||||||||||||||||||
#define | scalar_access_4_2(x) ((x).s45) | |||||||||||||||||||||||||||
#define | scalar_access_4_3(x) ((x).s456) | |||||||||||||||||||||||||||
#define | scalar_access_4_4(x) ((x).s4567) | |||||||||||||||||||||||||||
#define | scalar_access_4_8(x) ((x).s456789AB) | |||||||||||||||||||||||||||
#define | scalar_access_8_1(x) ((x).s8) | |||||||||||||||||||||||||||
#define | scalar_access_8_2(x) ((x).s89) | |||||||||||||||||||||||||||
#define | scalar_access_8_3(x) ((x).s89A) | |||||||||||||||||||||||||||
#define | scalar_access_8_4(x) ((x).s89AB) | |||||||||||||||||||||||||||
#define | scalar_access_8_8(x) ((x).s89ABCDEF) | |||||||||||||||||||||||||||
#define | scalar_access_12_1(x) ((x).sC) | |||||||||||||||||||||||||||
#define | scalar_access_12_2(x) ((x).sCD) | |||||||||||||||||||||||||||
#define | scalar_access_12_3(x) ((x).sCDE) | |||||||||||||||||||||||||||
#define | scalar_access_12_4(x) ((x).sCDEF) | |||||||||||||||||||||||||||
#define | scalar_access_16_1(x) ((x).sF) | |||||||||||||||||||||||||||
LOAD_TENSOR_ROW_n | ||||||||||||||||||||||||||||
Loads the rows from 0 to n-1 in the given variables (BASENAME0 to BASENAMEn-1) without allocating variables.
| ||||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_0(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) ({}) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_1(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) SCALAR_ACCESS(COL_OFFSET, N0, BASENAME##0) = VLOAD(N0)(0, (__global DATA_TYPE *)(PTR + 0 * STRIDE_Y + Z##0)); | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_2(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_3(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_4(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_5(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_6(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_7(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_8(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_9(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_10(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_11(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_12(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_13(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_14(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_15(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_ROW_16(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
LOAD_TENSOR | ||||||||||||||||||||||||||||
Load tensor (consecutive rows and columns) with Z offset. Supported cases are M0=1,2,3,...,16 and N0=1,2,3,4,8,16 The data to load is expected to have consecutive names for each row. E.g., for M0=3, and BASENAME=c, the expected data is c0, c1 and c2. The Z offset is expected to have consecutive names. E.g., for M0=3, and Z=zin, the expected Z offsets are zin0, zin1 and zin2.
| ||||||||||||||||||||||||||||
#define | LOAD_TENSOR_STR(M0, N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) LOAD_TENSOR_ROW_##M0(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR(M0, N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) LOAD_TENSOR_STR(M0, N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
LOAD_TENSOR_M0Xn | ||||||||||||||||||||||||||||
Load 2D tensor (consecutive rows and columns) with Z offset.
| ||||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X0(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) ({}) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X1(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X2(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X3(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X4(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X5(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X6(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X7(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X8(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X9(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X10(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X11(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X12(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X13(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X14(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X15(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0X16(M0, N0, DATA_TYPE, a, input_ptr, src_stride_y, zin) LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); | |||||||||||||||||||||||||||
LOAD_TENSOR_M0XN0 | ||||||||||||||||||||||||||||
Load 2D tensor (consecutive rows and columns) with Z offset.
| ||||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0XN0_STR(M0, N0, DATA_TYPE, BASENAME, PTR, STRIDE_Y, Z) LOAD_TENSOR_M0X##N0(M0, N0, DATA_TYPE, BASENAME, PTR, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_TENSOR_M0XN0(M0, N0, DATA_TYPE, BASENAME, PTR, STRIDE_Y, Z) LOAD_TENSOR_M0XN0_STR(M0, N0, DATA_TYPE, BASENAME, PTR, STRIDE_Y, Z) | |||||||||||||||||||||||||||
LOAD_ROW_n | ||||||||||||||||||||||||||||
Loads the rows from 0 to n-1 in the given variables (BASENAME0 to BASENAMEn-1).
| ||||||||||||||||||||||||||||
#define | LOAD_ROW_1(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_2(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_3(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_4(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_5(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_6(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_7(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_8(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_9(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_10(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_11(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_12(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_13(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_14(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_15(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_ROW_16(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
LOAD_BLOCK | ||||||||||||||||||||||||||||
Load Blocks (consecutive rows and columns) with Z offset. Supported cases are M0=1,2,3,...,16 and N0=1,2,3,4,8,16 The data to load is expected to have consecutive names for each row. E.g., for M0=3, and BASENAME=c, the expected data is c0, c1 and c2. The Z offset is expected to have consecutive names. E.g., for M0=3, and Z=zin, the expected Z offsets are zin0, zin1 and zin2.
| ||||||||||||||||||||||||||||
#define | LOAD_BLOCK_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) LOAD_ROW_##M0(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
#define | LOAD_BLOCK(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) LOAD_BLOCK_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) | |||||||||||||||||||||||||||
LOAD_TEXTURE2D_ROW_n | ||||||||||||||||||||||||||||
Loads the rows from 0 to n-1 in the given variables (BASENAME0 to BASENAMEn-1).
| ||||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_1(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) BASENAME##0 = READ_IMAGE2D(DATA_TYPE, N0, IMG, (X_COORD + 0 * X_STEP_ROW), (Y_COORD + 0 * Y_STEP_ROW)) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_2(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_3(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_4(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_5(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_6(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_7(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_8(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_9(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_10(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_11(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_12(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_13(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_14(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_15(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_ROW_16(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
LOAD_TEXTURE2D | ||||||||||||||||||||||||||||
Load a 2D texture in unit of pixel. A pixel is made of 4 floating point values Supported cases are M0=1,2,3,...,16 and N0=1 The data to load is expected to have consecutive names for each row. E.g., for M0=3, and BASENAME=c, the expected data is c0, c1 and c2.
| ||||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D_STR(M0, N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) LOAD_TEXTURE2D_ROW_##M0(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
#define | LOAD_TEXTURE2D(M0, N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) LOAD_TEXTURE2D_STR(M0, N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) | |||||||||||||||||||||||||||
LOAD_ROW_INDIRECT_n | ||||||||||||||||||||||||||||
Loads the rows from 0 to n-1 in the given variables (BASENAME0 to BASENAMEn-1) passing the Y index for each row to be loaded.
| ||||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_1(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_2(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_3(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_4(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_5(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_6(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_7(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_8(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_9(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_10(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_11(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_12(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_13(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_14(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_15(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_ROW_INDIRECT_16(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
LOAD_BLOCK_INDIRECT | ||||||||||||||||||||||||||||
Load blocks (consecutive rows and columns) with Y offset. Supported cases are M0=1,2,3,...,16 and N0=1,2,3,4,8,16 The data to load is expected to have consecutive names for each row. E.g., for M0=3, and BASENAME=c, the expected data is c0, c1 and c2. The Z offset is expected to have consecutive names. E.g., for M0=3, and Z=zin, the expected Z offsets are zin0, zin1 and zin2.
| ||||||||||||||||||||||||||||
#define | LOAD_BLOCK_INDIRECT_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) LOAD_ROW_INDIRECT_##M0(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
#define | LOAD_BLOCK_INDIRECT(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) LOAD_BLOCK_INDIRECT_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) | |||||||||||||||||||||||||||
LOAD_ELEMENT_n | ||||||||||||||||||||||||||||
Loads the elements from 0 to n-1 in the given variables (BASENAME0 to BASENAMEn-1).
| ||||||||||||||||||||||||||||
#define | LOAD_ELEMENT_1(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_2(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_3(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_4(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_5(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_6(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_7(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_8(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_9(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_10(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_11(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_12(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_13(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_14(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_15(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_ELEMENT_16(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
LOAD_SCALAR_AS_VECTOR | ||||||||||||||||||||||||||||
Load Scalar as Vector (consecutive elements). Supported cases are M0=1,2,3,...,16 and N0=1,2,3,4,8,16 The data to load is expected to have consecutive names for each row. E.g., for M0=3, and BASENAME=c, the expected data is c0, c1 and c2.
| ||||||||||||||||||||||||||||
#define | LOAD_SCALAR_AS_VECTOR_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) LOAD_ELEMENT_##M0(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
#define | LOAD_SCALAR_AS_VECTOR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) LOAD_SCALAR_AS_VECTOR_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) | |||||||||||||||||||||||||||
CALCULATE_Z_OFFSET_n | ||||||||||||||||||||||||||||
Basic macros to calculate Z offset values from Z0 to Zn-1
| ||||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_1(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_2(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_3(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_4(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_5(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_6(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_7(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_8(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
CALCULATE_Z_OFFSET | ||||||||||||||||||||||||||||
Calculate Z offset values from Z0 to Zn-1 The Z offsets are expected to have consecutive names. E.g., for M0=3 and Z=zin, the expected names of Z offsets are zin1, zin2, zin3. Note that, CROSS_PLANE_PAD (cross plain padding) is required to take into account the possible cross plane paddings in case of the plance changes across the z-dimension.
| ||||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET_STR(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) CALCULATE_Z_OFFSET_##M0(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
#define | CALCULATE_Z_OFFSET(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) CALCULATE_Z_OFFSET_STR(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) | |||||||||||||||||||||||||||
SCALE_ROW_n | ||||||||||||||||||||||||||||
Scale the rows in the given variables (BASENAME0 to BASENAMEn-1)
| ||||||||||||||||||||||||||||
#define | SCALE_ROW_1(DATA_TYPE, BASENAME, SCALE) BASENAME##0 *= (DATA_TYPE)SCALE; | |||||||||||||||||||||||||||
#define | SCALE_ROW_2(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_3(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_4(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_5(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_6(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_7(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_8(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_9(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_10(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_11(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_12(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_13(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_14(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_15(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_ROW_16(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
SCALE_BLOCK | ||||||||||||||||||||||||||||
Scale elements stored in a block (BASENAME) Supported cases are N=1,2,3,...,16
| ||||||||||||||||||||||||||||
#define | SCALE_BLOCK_STR(N, DATA_TYPE, BASENAME, SCALE) SCALE_ROW_##N(DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
#define | SCALE_BLOCK(N, DATA_TYPE, BASENAME, SCALE) SCALE_BLOCK_STR(N, DATA_TYPE, BASENAME, SCALE) | |||||||||||||||||||||||||||
COLUMN_VECTORn | ||||||||||||||||||||||||||||
Create a new vector containing the values at the given index for a set of given vectors
| ||||||||||||||||||||||||||||
#define | COLUMN_VECTOR1(IDX_COL, BASENAME, X, TYPE) TYPE BASENAME##IDX_COL = (TYPE)((X##0).s##IDX_COL); | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR2(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR3(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR4(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR8(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR16(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
COLUMN_VECTOR_SCALARn | ||||||||||||||||||||||||||||
Create a new vector containing the values at the given index. Utility macros for transposing a colum-vector
| ||||||||||||||||||||||||||||
#define | COLUMN_VECTOR_SCALAR1(IDX_COL, BASENAME, X, TYPE) TYPE BASENAME##IDX_COL = (TYPE)((X##0)); | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR_SCALAR2(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR_SCALAR3(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR_SCALAR4(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR_SCALAR8(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
#define | COLUMN_VECTOR_SCALAR16(IDX_COL, BASENAME, X, TYPE) | |||||||||||||||||||||||||||
TRANSPOSE_K0Xn | ||||||||||||||||||||||||||||
Create transposed vectors of the given vectors
| ||||||||||||||||||||||||||||
#define | TRANSPOSE_K0X1(K0, BASENAME, B, TYPE) COLUMN_VECTOR_SCALAR(K0, 0, BASENAME, B, TYPE); | |||||||||||||||||||||||||||
#define | TRANSPOSE_K0X2(K0, BASENAME, B, TYPE) | |||||||||||||||||||||||||||
#define | TRANSPOSE_K0X3(K0, BASENAME, B, TYPE) | |||||||||||||||||||||||||||
#define | TRANSPOSE_K0X4(K0, BASENAME, B, TYPE) | |||||||||||||||||||||||||||
#define | TRANSPOSE_K0X8(K0, BASENAME, B, TYPE) | |||||||||||||||||||||||||||
#define | TRANSPOSE_K0X16(K0, BASENAME, B, TYPE) | |||||||||||||||||||||||||||
ADD_ROW_n | ||||||||||||||||||||||||||||
Add the variables (BIAS0 to BIASn-1) to the others (BASENAME0 to BASENAMEn-1)
| ||||||||||||||||||||||||||||
#define | ADD_ROW_1(BASENAME, BIAS) BASENAME##0 += BIAS##0; | |||||||||||||||||||||||||||
#define | ADD_ROW_2(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_3(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_4(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_5(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_6(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_7(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_8(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_9(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_10(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_11(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_12(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_13(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_14(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_15(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_16(BASENAME, BIAS) | |||||||||||||||||||||||||||
ADD_BLOCK | ||||||||||||||||||||||||||||
Add the block (BIAS) to another block (BASENAME) Supported cases are N=1,2,3,...,16
| ||||||||||||||||||||||||||||
#define | ADD_BLOCK_STR(N, BASENAME, BIAS) ADD_ROW_##N(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_BLOCK(N, BASENAME, BIAS) ADD_BLOCK_STR(N, BASENAME, BIAS) | |||||||||||||||||||||||||||
ADD_ROW_BROADCAST_n | ||||||||||||||||||||||||||||
Broadcast (add single value) to the each element of the destination variables
| ||||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_1(BASENAME, BIAS) BASENAME##0 += BIAS; | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_2(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_3(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_4(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_5(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_6(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_7(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_8(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_9(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_10(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_11(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_12(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_13(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_14(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_15(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_ROW_BROADCAST_16(BASENAME, BIAS) | |||||||||||||||||||||||||||
ADD_BLOCK_BROADCAST | ||||||||||||||||||||||||||||
Broadcast (add a value) to the each element of the destination block (BASENAME) Supported cases are N=1,2,3,...,16.
| ||||||||||||||||||||||||||||
#define | ADD_BLOCK_BROADCAST_STR(N, BASENAME, BIAS) ADD_ROW_BROADCAST_##N(BASENAME, BIAS) | |||||||||||||||||||||||||||
#define | ADD_BLOCK_BROADCAST(N, BASENAME, BIAS) ADD_BLOCK_BROADCAST_STR(N, BASENAME, BIAS) | |||||||||||||||||||||||||||
ACTIVATION_ROW_n | ||||||||||||||||||||||||||||
Apply activation to the given variables
| ||||||||||||||||||||||||||||
#define | ACTIVATION_ROW_1(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) BASENAME##0 = ACTIVATION(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME##0, A_VAL, B_VAL); | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_2(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_3(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_4(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_5(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_6(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_7(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_8(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_9(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_10(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_11(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_12(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_13(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_14(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_15(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_ROW_16(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
ACTIVATION_BLOCK | ||||||||||||||||||||||||||||
Apply activation to a block (BASENAME) Supported cases are N=1,2,3,...,16.
| ||||||||||||||||||||||||||||
#define | ACTIVATION_BLOCK_STR(N, ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) ACTIVATION_ROW_##N(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
#define | ACTIVATION_BLOCK(N, ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) ACTIVATION_BLOCK_STR(N, ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) | |||||||||||||||||||||||||||
CONVERT_ROW_n | ||||||||||||||||||||||||||||
Apply convert_<data_type> to the given variables
| ||||||||||||||||||||||||||||
#define | CONVERT_ROW_1(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_2(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_3(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_4(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_5(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_6(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_7(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_8(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_9(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_10(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_11(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_12(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_13(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_14(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_15(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_ROW_16(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
CONVERT_BLOCK | ||||||||||||||||||||||||||||
Apply convert_<data_type> to a block (BASENAME_SRC) and save to another block (BASENAME_DST) Supported cases N=1,2,3,...,16.
| ||||||||||||||||||||||||||||
#define | CONVERT_BLOCK_STR(M, N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) CONVERT_ROW_##M(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define | CONVERT_BLOCK(M, N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) CONVERT_BLOCK_STR(M, N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) | |||||||||||||||||||||||||||
#define ACTIVATION_BLOCK | ( | N, | |
ACTIVATION_TYPE, | |||
DATA_TYPE, | |||
VEC_SIZE, | |||
BASENAME, | |||
A_VAL, | |||
B_VAL | |||
) | ACTIVATION_BLOCK_STR(N, ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) |
Definition at line 1367 of file gemm_helpers.h.
#define ACTIVATION_BLOCK_STR | ( | N, | |
ACTIVATION_TYPE, | |||
DATA_TYPE, | |||
VEC_SIZE, | |||
BASENAME, | |||
A_VAL, | |||
B_VAL | |||
) | ACTIVATION_ROW_##N(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME, A_VAL, B_VAL) |
Definition at line 1366 of file gemm_helpers.h.
#define ACTIVATION_ROW_1 | ( | ACTIVATION_TYPE, | |
DATA_TYPE, | |||
VEC_SIZE, | |||
BASENAME, | |||
A_VAL, | |||
B_VAL | |||
) | BASENAME##0 = ACTIVATION(ACTIVATION_TYPE, DATA_TYPE, VEC_SIZE, BASENAME##0, A_VAL, B_VAL); |
Definition at line 1289 of file gemm_helpers.h.
Definition at line 1324 of file gemm_helpers.h.
Definition at line 1328 of file gemm_helpers.h.
Definition at line 1332 of file gemm_helpers.h.
Definition at line 1336 of file gemm_helpers.h.
Definition at line 1340 of file gemm_helpers.h.
Definition at line 1344 of file gemm_helpers.h.
Definition at line 1348 of file gemm_helpers.h.
Definition at line 1292 of file gemm_helpers.h.
Definition at line 1296 of file gemm_helpers.h.
Definition at line 1300 of file gemm_helpers.h.
Definition at line 1304 of file gemm_helpers.h.
Definition at line 1308 of file gemm_helpers.h.
Definition at line 1312 of file gemm_helpers.h.
Definition at line 1316 of file gemm_helpers.h.
Definition at line 1320 of file gemm_helpers.h.
#define ADD_BLOCK | ( | N, | |
BASENAME, | |||
BIAS | |||
) | ADD_BLOCK_STR(N, BASENAME, BIAS) |
Definition at line 1192 of file gemm_helpers.h.
#define ADD_BLOCK_BROADCAST | ( | N, | |
BASENAME, | |||
BIAS | |||
) | ADD_BLOCK_BROADCAST_STR(N, BASENAME, BIAS) |
Definition at line 1276 of file gemm_helpers.h.
Referenced by direct_convolution_nhwc().
Definition at line 1275 of file gemm_helpers.h.
Definition at line 1191 of file gemm_helpers.h.
#define ADD_ROW_1 | ( | BASENAME, | |
BIAS | |||
) | BASENAME##0 += BIAS##0; |
Definition at line 1116 of file gemm_helpers.h.
#define ADD_ROW_10 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1151 of file gemm_helpers.h.
#define ADD_ROW_11 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1155 of file gemm_helpers.h.
#define ADD_ROW_12 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1159 of file gemm_helpers.h.
#define ADD_ROW_13 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1163 of file gemm_helpers.h.
#define ADD_ROW_14 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1167 of file gemm_helpers.h.
#define ADD_ROW_15 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1171 of file gemm_helpers.h.
#define ADD_ROW_16 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1175 of file gemm_helpers.h.
#define ADD_ROW_2 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1119 of file gemm_helpers.h.
#define ADD_ROW_3 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1123 of file gemm_helpers.h.
#define ADD_ROW_4 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1127 of file gemm_helpers.h.
#define ADD_ROW_5 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1131 of file gemm_helpers.h.
#define ADD_ROW_6 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1135 of file gemm_helpers.h.
#define ADD_ROW_7 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1139 of file gemm_helpers.h.
#define ADD_ROW_8 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1143 of file gemm_helpers.h.
#define ADD_ROW_9 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1147 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_1 | ( | BASENAME, | |
BIAS | |||
) | BASENAME##0 += BIAS; |
Definition at line 1202 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_10 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1237 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_11 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1241 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_12 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1245 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_13 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1249 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_14 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1253 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_15 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1257 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_16 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1261 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_2 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1205 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_3 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1209 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_4 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1213 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_5 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1217 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_6 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1221 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_7 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1225 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_8 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1229 of file gemm_helpers.h.
#define ADD_ROW_BROADCAST_9 | ( | BASENAME, | |
BIAS | |||
) |
Definition at line 1233 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) | CALCULATE_Z_OFFSET_STR(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) |
Definition at line 887 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_1 | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) |
Definition at line 805 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_2 | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) |
Definition at line 810 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_3 | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) |
Definition at line 816 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_4 | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) |
Definition at line 822 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_5 | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) |
Definition at line 828 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_6 | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) |
Definition at line 834 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_7 | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) |
Definition at line 840 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_8 | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) |
Definition at line 846 of file gemm_helpers.h.
#define CALCULATE_Z_OFFSET_STR | ( | M0, | |
DATA_TYPE, | |||
Z, | |||
Y, | |||
HEIGHT_GEMM3D, | |||
DEPTH_GEMM3D, | |||
CROSS_PLANE_PAD, | |||
STRIDE_Y | |||
) | CALCULATE_Z_OFFSET_##M0(M0, DATA_TYPE, Z, Y, HEIGHT_GEMM3D, DEPTH_GEMM3D, CROSS_PLANE_PAD, STRIDE_Y) |
Definition at line 886 of file gemm_helpers.h.
#define COLUMN_VECTOR | ( | K0, | |
IDX_COL, | |||
BASENAME, | |||
B, | |||
TYPE | |||
) |
Create column vectors to contain the values at the given index for a set of given vectors.
[in] | K0 | The number of source vectors |
[in] | IDX_COL | The index value |
[in] | BASENAME | The basename of the destination vectors |
[in] | B | The basename of the source vectors |
[in] | TYPE | The data type of the destination vectors |
Definition at line 1080 of file gemm_helpers.h.
#define COLUMN_VECTOR1 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) | TYPE BASENAME##IDX_COL = (TYPE)((X##0).s##IDX_COL); |
Definition at line 986 of file gemm_helpers.h.
#define COLUMN_VECTOR16 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 1000 of file gemm_helpers.h.
#define COLUMN_VECTOR2 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 988 of file gemm_helpers.h.
#define COLUMN_VECTOR3 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 991 of file gemm_helpers.h.
#define COLUMN_VECTOR4 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 994 of file gemm_helpers.h.
#define COLUMN_VECTOR8 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 997 of file gemm_helpers.h.
#define COLUMN_VECTOR_SCALAR | ( | K0, | |
IDX_COL, | |||
BASENAME, | |||
B, | |||
TYPE | |||
) |
Create column vectors to contain the values at the given index.
Utility macro for transposing a column-vector
[in] | K0 | The number of source vectors |
[in] | IDX_COL | The index value |
[in] | BASENAME | The basename of the destination vectors |
[in] | B | The basename of the source vectors |
[in] | TYPE | The data type of the destination vectors |
Definition at line 1092 of file gemm_helpers.h.
#define COLUMN_VECTOR_SCALAR1 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) | TYPE BASENAME##IDX_COL = (TYPE)((X##0)); |
Definition at line 1014 of file gemm_helpers.h.
#define COLUMN_VECTOR_SCALAR16 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 1028 of file gemm_helpers.h.
#define COLUMN_VECTOR_SCALAR2 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 1016 of file gemm_helpers.h.
#define COLUMN_VECTOR_SCALAR3 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 1019 of file gemm_helpers.h.
#define COLUMN_VECTOR_SCALAR4 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 1022 of file gemm_helpers.h.
#define COLUMN_VECTOR_SCALAR8 | ( | IDX_COL, | |
BASENAME, | |||
X, | |||
TYPE | |||
) |
Definition at line 1025 of file gemm_helpers.h.
#define CONVERT_BLOCK | ( | M, | |
N, | |||
DATA_TYPE, | |||
BASENAME_SRC, | |||
BASENAME_DST | |||
) | CONVERT_BLOCK_STR(M, N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) |
Definition at line 1470 of file gemm_helpers.h.
#define CONVERT_BLOCK_STR | ( | M, | |
N, | |||
DATA_TYPE, | |||
BASENAME_SRC, | |||
BASENAME_DST | |||
) | CONVERT_ROW_##M(N, DATA_TYPE, BASENAME_SRC, BASENAME_DST) |
Definition at line 1469 of file gemm_helpers.h.
Definition at line 1378 of file gemm_helpers.h.
Definition at line 1422 of file gemm_helpers.h.
Definition at line 1427 of file gemm_helpers.h.
Definition at line 1432 of file gemm_helpers.h.
Definition at line 1437 of file gemm_helpers.h.
Definition at line 1442 of file gemm_helpers.h.
Definition at line 1447 of file gemm_helpers.h.
Definition at line 1452 of file gemm_helpers.h.
Definition at line 1382 of file gemm_helpers.h.
Definition at line 1387 of file gemm_helpers.h.
Definition at line 1392 of file gemm_helpers.h.
Definition at line 1397 of file gemm_helpers.h.
Definition at line 1402 of file gemm_helpers.h.
Definition at line 1407 of file gemm_helpers.h.
Definition at line 1412 of file gemm_helpers.h.
Definition at line 1417 of file gemm_helpers.h.
#define LOAD_BLOCK | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) | LOAD_BLOCK_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) |
Definition at line 398 of file gemm_helpers.h.
Referenced by direct_convolution_nhwc().
#define LOAD_BLOCK_INDIRECT | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) | LOAD_BLOCK_INDIRECT_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) |
Definition at line 677 of file gemm_helpers.h.
Referenced by direct_convolution_nhwc().
#define LOAD_BLOCK_INDIRECT_STR | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) | LOAD_ROW_INDIRECT_##M0(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Y, Y_MASK) |
Definition at line 676 of file gemm_helpers.h.
#define LOAD_BLOCK_STR | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) | LOAD_ROW_##M0(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y, Z) |
Definition at line 397 of file gemm_helpers.h.
#define LOAD_ELEMENT_1 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 690 of file gemm_helpers.h.
#define LOAD_ELEMENT_10 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 734 of file gemm_helpers.h.
#define LOAD_ELEMENT_11 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 739 of file gemm_helpers.h.
#define LOAD_ELEMENT_12 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 744 of file gemm_helpers.h.
#define LOAD_ELEMENT_13 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 749 of file gemm_helpers.h.
#define LOAD_ELEMENT_14 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 754 of file gemm_helpers.h.
#define LOAD_ELEMENT_15 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 759 of file gemm_helpers.h.
#define LOAD_ELEMENT_16 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 764 of file gemm_helpers.h.
#define LOAD_ELEMENT_2 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 694 of file gemm_helpers.h.
#define LOAD_ELEMENT_3 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 699 of file gemm_helpers.h.
#define LOAD_ELEMENT_4 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 704 of file gemm_helpers.h.
#define LOAD_ELEMENT_5 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 709 of file gemm_helpers.h.
#define LOAD_ELEMENT_6 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 714 of file gemm_helpers.h.
#define LOAD_ELEMENT_7 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 719 of file gemm_helpers.h.
#define LOAD_ELEMENT_8 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 724 of file gemm_helpers.h.
#define LOAD_ELEMENT_9 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) |
Definition at line 729 of file gemm_helpers.h.
#define LOAD_ROW_1 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 297 of file gemm_helpers.h.
#define LOAD_ROW_10 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 341 of file gemm_helpers.h.
#define LOAD_ROW_11 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 346 of file gemm_helpers.h.
#define LOAD_ROW_12 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 351 of file gemm_helpers.h.
#define LOAD_ROW_13 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 356 of file gemm_helpers.h.
#define LOAD_ROW_14 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 361 of file gemm_helpers.h.
#define LOAD_ROW_15 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 366 of file gemm_helpers.h.
#define LOAD_ROW_16 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 371 of file gemm_helpers.h.
#define LOAD_ROW_2 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 301 of file gemm_helpers.h.
#define LOAD_ROW_3 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 306 of file gemm_helpers.h.
#define LOAD_ROW_4 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 311 of file gemm_helpers.h.
#define LOAD_ROW_5 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 316 of file gemm_helpers.h.
#define LOAD_ROW_6 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 321 of file gemm_helpers.h.
#define LOAD_ROW_7 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 326 of file gemm_helpers.h.
#define LOAD_ROW_8 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 331 of file gemm_helpers.h.
#define LOAD_ROW_9 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 336 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_1 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 513 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_10 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 593 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_11 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 602 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_12 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 611 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_13 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 620 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_14 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 629 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_15 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 638 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_16 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 647 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_2 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 521 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_3 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 530 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_4 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 539 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_5 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 548 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_6 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 557 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_7 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 566 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_8 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 575 of file gemm_helpers.h.
#define LOAD_ROW_INDIRECT_9 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y, | |||
Y, | |||
Y_MASK | |||
) |
Definition at line 584 of file gemm_helpers.h.
#define LOAD_SCALAR_AS_VECTOR | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) | LOAD_SCALAR_AS_VECTOR_STR(M0, N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) |
Definition at line 788 of file gemm_helpers.h.
#define LOAD_SCALAR_AS_VECTOR_STR | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
OFFSET, | |||
STRIDE_Y | |||
) | LOAD_ELEMENT_##M0(N0, DATA_TYPE, BASENAME, PTR, OFFSET, STRIDE_Y) |
Definition at line 787 of file gemm_helpers.h.
#define LOAD_TENSOR | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) | LOAD_TENSOR_STR(M0, N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) |
Definition at line 190 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X0 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) | ({}) |
Definition at line 205 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X1 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) | LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); |
Definition at line 208 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X10 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 239 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X11 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 243 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X12 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 247 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X13 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 251 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X14 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 256 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X15 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 261 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X16 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) | LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); |
Definition at line 266 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X2 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) | LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); |
Definition at line 211 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X3 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) | LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); |
Definition at line 214 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X4 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) | LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); |
Definition at line 217 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X5 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 220 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X6 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 224 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X7 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 228 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X8 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) | LOAD_TENSOR(M0, N0, DATA_TYPE, a, input_ptr, 0, src_stride_y, zin); |
Definition at line 232 of file gemm_helpers.h.
#define LOAD_TENSOR_M0X9 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
a, | |||
input_ptr, | |||
src_stride_y, | |||
zin | |||
) |
Definition at line 235 of file gemm_helpers.h.
#define LOAD_TENSOR_M0XN0 | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
STRIDE_Y, | |||
Z | |||
) | LOAD_TENSOR_M0XN0_STR(M0, N0, DATA_TYPE, BASENAME, PTR, STRIDE_Y, Z) |
Definition at line 283 of file gemm_helpers.h.
#define LOAD_TENSOR_M0XN0_STR | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
STRIDE_Y, | |||
Z | |||
) | LOAD_TENSOR_M0X##N0(M0, N0, DATA_TYPE, BASENAME, PTR, STRIDE_Y, Z) |
Definition at line 282 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_0 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) | ({}) |
Definition at line 103 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_1 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) | SCALAR_ACCESS(COL_OFFSET, N0, BASENAME##0) = VLOAD(N0)(0, (__global DATA_TYPE *)(PTR + 0 * STRIDE_Y + Z##0)); |
Definition at line 106 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_10 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 141 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_11 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 145 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_12 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 149 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_13 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 153 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_14 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 157 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_15 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 161 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_16 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 165 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_2 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 109 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_3 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 113 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_4 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 117 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_5 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 121 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_6 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 125 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_7 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 129 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_8 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 133 of file gemm_helpers.h.
#define LOAD_TENSOR_ROW_9 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) |
Definition at line 137 of file gemm_helpers.h.
#define LOAD_TENSOR_STR | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
PTR, | |||
COL_OFFSET, | |||
STRIDE_Y, | |||
Z | |||
) | LOAD_TENSOR_ROW_##M0(N0, DATA_TYPE, BASENAME, PTR, COL_OFFSET, STRIDE_Y, Z) |
Definition at line 189 of file gemm_helpers.h.
#define LOAD_TEXTURE2D | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) | LOAD_TEXTURE2D_STR(M0, N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) |
Definition at line 497 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_1 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) | BASENAME##0 = READ_IMAGE2D(DATA_TYPE, N0, IMG, (X_COORD + 0 * X_STEP_ROW), (Y_COORD + 0 * Y_STEP_ROW)) |
Definition at line 414 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_10 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 449 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_11 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 453 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_12 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 457 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_13 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 461 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_14 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 465 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_15 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 469 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_16 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 473 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_2 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 417 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_3 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 421 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_4 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 425 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_5 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 429 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_6 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 433 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_7 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 437 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_8 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 441 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_ROW_9 | ( | N0, | |
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) |
Definition at line 445 of file gemm_helpers.h.
#define LOAD_TEXTURE2D_STR | ( | M0, | |
N0, | |||
DATA_TYPE, | |||
BASENAME, | |||
IMG, | |||
X_COORD, | |||
Y_COORD, | |||
X_STEP_ROW, | |||
Y_STEP_ROW | |||
) | LOAD_TEXTURE2D_ROW_##M0(N0, DATA_TYPE, BASENAME, IMG, X_COORD, Y_COORD, X_STEP_ROW, Y_STEP_ROW) |
Definition at line 496 of file gemm_helpers.h.
#define SCALAR_ACCESS | ( | offset, | |
n0, | |||
x | |||
) | SCALAR_ACCESS_STR(offset, n0, x) |
Definition at line 37 of file gemm_helpers.h.
#define scalar_access_0_1 | ( | x | ) | ((x).s0) |
Definition at line 40 of file gemm_helpers.h.
#define scalar_access_0_16 | ( | x | ) | ((x).s0123456789ABCDEF) |
Definition at line 45 of file gemm_helpers.h.
#define scalar_access_0_2 | ( | x | ) | ((x).s01) |
Definition at line 41 of file gemm_helpers.h.
#define scalar_access_0_3 | ( | x | ) | ((x).s012) |
Definition at line 42 of file gemm_helpers.h.
#define scalar_access_0_4 | ( | x | ) | ((x).s0123) |
Definition at line 43 of file gemm_helpers.h.
#define scalar_access_0_8 | ( | x | ) | ((x).s01234567) |
Definition at line 44 of file gemm_helpers.h.
#define scalar_access_12_1 | ( | x | ) | ((x).sC) |
Definition at line 83 of file gemm_helpers.h.
#define scalar_access_12_2 | ( | x | ) | ((x).sCD) |
Definition at line 84 of file gemm_helpers.h.
#define scalar_access_12_3 | ( | x | ) | ((x).sCDE) |
Definition at line 85 of file gemm_helpers.h.
#define scalar_access_12_4 | ( | x | ) | ((x).sCDEF) |
Definition at line 86 of file gemm_helpers.h.
#define scalar_access_16_1 | ( | x | ) | ((x).sF) |
Definition at line 89 of file gemm_helpers.h.
#define scalar_access_1_1 | ( | x | ) | ((x).s1) |
Definition at line 48 of file gemm_helpers.h.
#define scalar_access_1_2 | ( | x | ) | ((x).s12) |
Definition at line 49 of file gemm_helpers.h.
#define scalar_access_1_3 | ( | x | ) | ((x).s123) |
Definition at line 50 of file gemm_helpers.h.
#define scalar_access_1_4 | ( | x | ) | ((x).s1234) |
Definition at line 51 of file gemm_helpers.h.
#define scalar_access_1_8 | ( | x | ) | ((x).s12345678) |
Definition at line 52 of file gemm_helpers.h.
#define scalar_access_2_1 | ( | x | ) | ((x).s2) |
Definition at line 55 of file gemm_helpers.h.
#define scalar_access_2_2 | ( | x | ) | ((x).s23) |
Definition at line 56 of file gemm_helpers.h.
#define scalar_access_2_3 | ( | x | ) | ((x).s234) |
Definition at line 57 of file gemm_helpers.h.
#define scalar_access_2_4 | ( | x | ) | ((x).s2345) |
Definition at line 58 of file gemm_helpers.h.
#define scalar_access_2_8 | ( | x | ) | ((x).s23456789) |
Definition at line 59 of file gemm_helpers.h.
#define scalar_access_3_1 | ( | x | ) | ((x).s3) |
Definition at line 62 of file gemm_helpers.h.
#define scalar_access_3_2 | ( | x | ) | ((x).s34) |
Definition at line 63 of file gemm_helpers.h.
#define scalar_access_3_3 | ( | x | ) | ((x).s345) |
Definition at line 64 of file gemm_helpers.h.
#define scalar_access_3_4 | ( | x | ) | ((x).s3456) |
Definition at line 65 of file gemm_helpers.h.
#define scalar_access_3_8 | ( | x | ) | ((x).s3456789A) |
Definition at line 66 of file gemm_helpers.h.
#define scalar_access_4_1 | ( | x | ) | ((x).s4) |
Definition at line 69 of file gemm_helpers.h.
#define scalar_access_4_2 | ( | x | ) | ((x).s45) |
Definition at line 70 of file gemm_helpers.h.
#define scalar_access_4_3 | ( | x | ) | ((x).s456) |
Definition at line 71 of file gemm_helpers.h.
#define scalar_access_4_4 | ( | x | ) | ((x).s4567) |
Definition at line 72 of file gemm_helpers.h.
#define scalar_access_4_8 | ( | x | ) | ((x).s456789AB) |
Definition at line 73 of file gemm_helpers.h.
#define scalar_access_8_1 | ( | x | ) | ((x).s8) |
Definition at line 76 of file gemm_helpers.h.
#define scalar_access_8_2 | ( | x | ) | ((x).s89) |
Definition at line 77 of file gemm_helpers.h.
#define scalar_access_8_3 | ( | x | ) | ((x).s89A) |
Definition at line 78 of file gemm_helpers.h.
#define scalar_access_8_4 | ( | x | ) | ((x).s89AB) |
Definition at line 79 of file gemm_helpers.h.
#define scalar_access_8_8 | ( | x | ) | ((x).s89ABCDEF) |
Definition at line 80 of file gemm_helpers.h.
Utility macro to access a vector with the scalar positions.
Supported cases are: Offset can only be of the same size of the OpenCL vector (2,3,4,8,16)
[in] | offset | The offset within the vector. Offset can only be of the same size of the OpenCL vector (2,3,4,8,16) |
[in] | n0 | The number of consecutive columns to access. n0 + offset must be <= 16 |
[in] | x | Vector to access |
Definition at line 36 of file gemm_helpers.h.
#define SCALE_BLOCK | ( | N, | |
DATA_TYPE, | |||
BASENAME, | |||
SCALE | |||
) | SCALE_BLOCK_STR(N, DATA_TYPE, BASENAME, SCALE) |
Definition at line 974 of file gemm_helpers.h.
Definition at line 973 of file gemm_helpers.h.
Definition at line 898 of file gemm_helpers.h.
#define SCALE_ROW_10 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 933 of file gemm_helpers.h.
#define SCALE_ROW_11 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 937 of file gemm_helpers.h.
#define SCALE_ROW_12 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 941 of file gemm_helpers.h.
#define SCALE_ROW_13 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 945 of file gemm_helpers.h.
#define SCALE_ROW_14 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 949 of file gemm_helpers.h.
#define SCALE_ROW_15 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 953 of file gemm_helpers.h.
#define SCALE_ROW_16 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 957 of file gemm_helpers.h.
#define SCALE_ROW_2 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 901 of file gemm_helpers.h.
#define SCALE_ROW_3 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 905 of file gemm_helpers.h.
#define SCALE_ROW_4 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 909 of file gemm_helpers.h.
#define SCALE_ROW_5 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 913 of file gemm_helpers.h.
#define SCALE_ROW_6 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 917 of file gemm_helpers.h.
#define SCALE_ROW_7 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 921 of file gemm_helpers.h.
#define SCALE_ROW_8 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 925 of file gemm_helpers.h.
#define SCALE_ROW_9 | ( | DATA_TYPE, | |
BASENAME, | |||
SCALE | |||
) |
Definition at line 929 of file gemm_helpers.h.
#define TRANSPOSE_K0X1 | ( | K0, | |
BASENAME, | |||
B, | |||
TYPE | |||
) | COLUMN_VECTOR_SCALAR(K0, 0, BASENAME, B, TYPE); |
Definition at line 1042 of file gemm_helpers.h.
#define TRANSPOSE_K0X16 | ( | K0, | |
BASENAME, | |||
B, | |||
TYPE | |||
) |
Definition at line 1059 of file gemm_helpers.h.
#define TRANSPOSE_K0X2 | ( | K0, | |
BASENAME, | |||
B, | |||
TYPE | |||
) |
Definition at line 1044 of file gemm_helpers.h.
#define TRANSPOSE_K0X3 | ( | K0, | |
BASENAME, | |||
B, | |||
TYPE | |||
) |
Definition at line 1047 of file gemm_helpers.h.
#define TRANSPOSE_K0X4 | ( | K0, | |
BASENAME, | |||
B, | |||
TYPE | |||
) |
Definition at line 1050 of file gemm_helpers.h.
#define TRANSPOSE_K0X8 | ( | K0, | |
BASENAME, | |||
B, | |||
TYPE | |||
) |
Definition at line 1053 of file gemm_helpers.h.
#define TRANSPOSE_K0XN0 | ( | K0, | |
N0, | |||
BASENAME, | |||
B, | |||
TYPE | |||
) |
Create transposed vectors form the given source vectors.
[in] | K0 | The size of source vectors |
[in] | N0 | The number of source vectors |
[in] | BASENAME | The basename of transposed vectors |
[in] | B | The basename of source vectors for transposition |
[in] | TYPE | The data type of the transposed vectors |
Definition at line 1105 of file gemm_helpers.h.