-
Notifications
You must be signed in to change notification settings - Fork 22
CreateIdentityMcePart marks depthwise convolutions as channel selectors #23
Description
Hello @AndrzejKurek,
In CreateIdentityMcePart, the part is set as a DEPTHWISE_CONVOLUTION
ethos-n-driver-stack/driver/support_library/src/NetworkToGraphOfPartsConverter.cpp
Line 57 in 6834c82
| params.m_Op = command_stream::MceOperation::DEPTHWISE_CONVOLUTION; |
but at the same time the part is not explicitly setting the m_IsChannelSelector as false, but instead conditioned based on QuantInfo.
ethos-n-driver-stack/driver/support_library/src/NetworkToGraphOfPartsConverter.cpp
Line 65 in 6834c82
| params.m_IsChannelSelector = (inputQuantInfo == outputQuantInfo); |
This leads to the case of m_IsChannelSelector for the part to be True when inputQuantInfo == outputQuantInfo.
This is contraditory to other ops in NetworkToGraphOfPartsConverter that are set as a DEPTHWISE_CONVOLUTION, as they explicitly set m_IsChannelSelector = False or inherit from ConstructionParams. Is this intended?
This discrepancy leads to an assertion error for my usecase at the following:
| assert(channelSelectorWeights.GetShape()[3] == oldInputDepth); |
This assertion error was raised when the channel selector before is a DEPTHWISE_CONVOLUTION part with weights in HWIM form, but is set as m_IsChannelSelector=True because of the above, and hence the dimensions do not match.