ethos-n-driver-stack icon indicating copy to clipboard operation
ethos-n-driver-stack copied to clipboard

CreateIdentityMcePart marks depthwise convolutions as channel selectors

Open dariustanrd opened this issue 3 months ago • 0 comments

Hello @AndrzejKurek,

In CreateIdentityMcePart, the part is set as a DEPTHWISE_CONVOLUTION https://github.com/ARM-software/ethos-n-driver-stack/blob/6834c826022ce0cc9c9f9569865336088a553b87/driver/support_library/src/NetworkToGraphOfPartsConverter.cpp#L57

but at the same time the part is not explicitly setting the m_IsChannelSelector as false, but instead conditioned based on QuantInfo.

https://github.com/ARM-software/ethos-n-driver-stack/blob/6834c826022ce0cc9c9f9569865336088a553b87/driver/support_library/src/NetworkToGraphOfPartsConverter.cpp#L65

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: https://github.com/ARM-software/ethos-n-driver-stack/blob/6834c826022ce0cc9c9f9569865336088a553b87/driver/support_library/src/McePart.cpp#L890

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.

dariustanrd avatar Oct 31 '25 10:10 dariustanrd