Describe the bug
In the Network.c the tiling information at the top of the file is corrupted after executing the RunNetwork function.
For example, I have a tiling informat here:
static PI_L1 uint16_t DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out[2] = {29, 3};
In the conv0 closure, there is a tiling size ptr pointing to it, specifically it is poiting to the first element of the array
uint16_t *DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out_ref = (uint16_t *)((char *)DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out + 0);
In the tiling loop, the tiling size ptr is dereferenced and asignned value from the tiling information array:
for (int TILING_I = DeeployNetwork_TILING_CODEGEN_L1_Conv_0_numTiles[*DeeployNetwork_TILING_CODEGEN_L1_Conv_0_tileIdxPtr];
TILING_I < DeeployNetwork_TILING_CODEGEN_L1_Conv_0_numTiles[(*DeeployNetwork_TILING_CODEGEN_L1_Conv_0_tileIdxPtr) + 1]; TILING_I++) {
<dma requests>
*DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out_ref = DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out[TILING_I];
<other operations>
After the first round, the DeeployNetwork_TILING_CODEGEN_L1_Conv_0_tileIdxPtr increment and TILING_I start from 1. This become equivalent to DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out[0] = DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out[1], which corrupt the tiling information.
If the RunNetwork is executed again, the wrong tiling information will leads to wrong output results.
To Reproduce
Create a test with input size large enough to generate tiling, this behavior should exist.
Expected behavior
The tiling information should not be changed.
Additional context
No.
Describe the bug
In the Network.c the tiling information at the top of the file is corrupted after executing the
RunNetworkfunction.For example, I have a tiling informat here:
static PI_L1 uint16_t DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out[2] = {29, 3};In the conv0 closure, there is a tiling size ptr pointing to it, specifically it is poiting to the first element of the array
uint16_t *DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out_ref = (uint16_t *)((char *)DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out + 0);In the tiling loop, the tiling size ptr is dereferenced and asignned value from the tiling information array:
After the first round, the
DeeployNetwork_TILING_CODEGEN_L1_Conv_0_tileIdxPtrincrement andTILING_Istart from 1. This become equivalent toDeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out[0] = DeeployNetwork_TILING_CODEGEN_L1_Conv_0_ch_im_out[1], which corrupt the tiling information.If the
RunNetworkis executed again, the wrong tiling information will leads to wrong output results.To Reproduce
Create a test with input size large enough to generate tiling, this behavior should exist.
Expected behavior
The tiling information should not be changed.
Additional context
No.