Repository navigation
Conversation
Restore the OC-broadcast mask for grouped weight scales and zero points in oneDNN FC creation and cache loading. Derive weights OC from the logical weights rank and orientation used by the matmul descriptor. Keep the full grouped mask for single-OC weights to preserve the N=1 GEMM path introduced by openvinotoolkit#38934 instead of reverting that correction. Restore broadcast regression coverage and exercise both parameter orientations, rank-2/rank-3 inputs, fresh/imported networks, and per-OC controls. Add dynamic U4 N=1 selection guards and public Parameter-weight conversion tests. Validated on Arc A770: 19 new tests pass; the relevant suite has 128 passes, 76 skips, and no failures. Both restored OCL tests pass on UHD 770. The broadcast tests fail against the upstream FC object, and both N=1 selection guards fail against the parent FC object with ocl:ref:any. Pre-existing rank-2 scale-only broadcast and non-transposed U4 compilation issues remain out of scope. Kernel selection was checked, not latency.
|
@e-ddykim may I ask why we need to address this? do we really have such case in real scenario? The standard weight-compression flow (NNCF/optimum) always produces per-OC scale/zp [N, G, 1], which ConvertFullyConnectedToFullyConnectedCompressed reshapes to [N, G], so the scale/zp OC dim always matches the weights' N. |
@Kotomi-Du The reshape preserves the scale/ZP tensor’s OC dimension; it does not expand it to match the weights’ N. Therefore, [N,G,1] becomes [N,G], but [1,G,1] becomes [1,G] even when the weights have N > 1. OC broadcasting remains. |
do we really have such real scenario? What I observed is oneDNN doesn't have such optimized kernel and will use |
Details:
Tickets:
AI Assistance: