Open SubjectNoi opened 3 years ago
When you set the size of a loop to 1 that loop will disappear, this will mean that you need to change the other optimizations to take this in consideration. You should in this case use the low level Tiramisu API that uses loop number instead of the API that uses the loop names (the loop names are not more valid in this special case). When you use the loop numbers, you need to take in consideration the fact that the batch loop has disappeared. So now for example instead of vectorizing loop 4 (this is just an example of a loop number), you should vectorize the loop 3, because the old loop 4 is now loop 3.
Env: Ubuntu-18.04 Tiramisu commit: 6512d11a79393ceebf666c34c8d4eb4bf817e7f4
I'm trying the code example to generate CPU Convolution kernel in
benchmark/DNN/layers/convolution/direct/cpu/conv_layer_generator_tiramisu.cpp
, however, when I set the defined macroBATCH_SIZE
to 1, it will trigger a runtime error as following:And I located this error is triggered at Line: 110, (But I fail to figure out what's the relation between batch size and this output channel blocking that why a change in batch size will cause output channel blocking to fail, maybe it's because the total loop depth decrease by 1 when setting the batch size to 1?):