Skip to content

Commit c256504

Browse files
committed
Support dynamic quantization for u2
1 parent 57247cc commit c256504

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

src/plugins/intel_cpu/src/nodes/executors/dnnl/dnnl_fullyconnected_primitive.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,15 @@ static bool useDynamicQuantizationImpl(size_t dqGroupSize,
176176
// For dynamic quantization, VNNI accumulation requires weight to be unsigned.
177177
// To support dynamic quantization with weights symmetrically quantized as i8/i4
178178
// w/o zero-point, we will transform weight to u8/u4 weight with zp 128/8.
179-
if (none_of(weightsDesc->getPrecision(), ov::element::u8, ov::element::u4) &&
179+
if (none_of(weightsDesc->getPrecision(), ov::element::u8, ov::element::u4, ov::element::u2) &&
180180
!((any_of(weightsDesc->getPrecision(), ov::element::i8, ov::element::i4) && !zpPtr))) {
181181
return false;
182182
}
183-
if (zpPtr && none_of(zpPtr->getDesc().getPrecision(), ov::element::u8, ov::element::u4, ov::element::dynamic)) {
183+
if (zpPtr && none_of(zpPtr->getDesc().getPrecision(),
184+
ov::element::u8,
185+
ov::element::u4,
186+
ov::element::u2,
187+
ov::element::dynamic)) {
184188
return false;
185189
}
186190

src/plugins/intel_cpu/tests/functional/custom/subgraph_tests/src/x64/matmul_weights_decompression.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,21 @@ INSTANTIATE_TEST_SUITE_P(smoke_MatMulCompressedWeights_non_default_dyn_quant_gro
281281
::testing::Values(true)),
282282
MatmulWeightsDecompression::getTestCaseName);
283283

284+
INSTANTIATE_TEST_SUITE_P(smoke_MatMulCompressedWeights_non_default_dyn_quant_group_sizes_u2,
285+
MatmulWeightsDecompression,
286+
::testing::Combine(::testing::ValuesIn(input_shapes_basic_u2),
287+
::testing::Values(ov::element::u2),
288+
::testing::ValuesIn(decompression_precisions),
289+
::testing::Values(ov::element::dynamic),
290+
::testing::Values(true),
291+
::testing::Values(DecompressionType::scalar),
292+
::testing::Values(DecompressionType::scalar),
293+
::testing::Values(false),
294+
::testing::ValuesIn(filter_additional_config_dyn_quant()),
295+
::testing::ValuesIn(fusing_params_dyn_quant),
296+
::testing::Values(true)),
297+
MatmulWeightsDecompression::getTestCaseName);
298+
284299
const std::vector<ov::test::ElementType> sym_weights_precisions_dyn_quant = {ov::element::i8, ov::element::i4};
285300

286301
INSTANTIATE_TEST_SUITE_P(smoke_MatMulCompressedWeights_sym_non_default_dyn_quant_group_sizes,

0 commit comments

Comments
 (0)