From 85fa856e0982ed6f9ca48f527c94421f37ee8b91 Mon Sep 17 00:00:00 2001 From: Giuseppe Franco Date: Mon, 2 Oct 2023 14:53:14 +0100 Subject: [PATCH] Comments --- .../ptq/benchmark/ptq_benchmark_torchvision.py | 6 ++++-- .../imagenet_classification/ptq/ptq_common.py | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/brevitas_examples/imagenet_classification/ptq/benchmark/ptq_benchmark_torchvision.py b/src/brevitas_examples/imagenet_classification/ptq/benchmark/ptq_benchmark_torchvision.py index 99eb76f5d..831ded35b 100644 --- a/src/brevitas_examples/imagenet_classification/ptq/benchmark/ptq_benchmark_torchvision.py +++ b/src/brevitas_examples/imagenet_classification/ptq/benchmark/ptq_benchmark_torchvision.py @@ -65,7 +65,8 @@ 'gpfq': [False, True], # Enable/Disable GPFQ 'gpfq_p': [0.25, 0.75], # GPFQ P 'act_quant_percentile': [99.9, 99.99, 99.999], # Activation Quantization Percentile - 'uint_sym_act_for_unsigned_values': [False],} + 'uint_sym_act_for_unsigned_values': [True], # Whether to use unsigned act quant when possible +} OPTIONS_DEFAULT = { 'target_backend': ['fx'], # Target backend @@ -87,7 +88,8 @@ 'gpfq_p': [0.25], # GPFQ P 'gptq_act_order': [False], # Use act_order euristics for GPTQ 'act_quant_percentile': [99.999], # Activation Quantization Percentile - 'uint_sym_act_for_unsigned_values': [False],} + 'uint_sym_act_for_unsigned_values': [True], # Whether to use unsigned act quant when possible +} parser = argparse.ArgumentParser(description='PyTorch ImageNet PTQ Validation') parser.add_argument('idx', type=int) diff --git a/src/brevitas_examples/imagenet_classification/ptq/ptq_common.py b/src/brevitas_examples/imagenet_classification/ptq/ptq_common.py index 62f2051b0..8c250d32f 100644 --- a/src/brevitas_examples/imagenet_classification/ptq/ptq_common.py +++ b/src/brevitas_examples/imagenet_classification/ptq/ptq_common.py @@ -274,8 +274,11 @@ def kwargs_prefix(prefix, weight_kwargs): act_quant_and_bit_width = {'act_quant': act_quant, 'bit_width': act_bit_width} quant_act_kwargs = {**act_quant_and_bit_width, 'return_quant_tensor': True} + + # For potentially unsigned activations, we create a separate dict unsigned_quant_act_kwargs = quant_act_kwargs.copy() if uint_sym_act_for_unsigned_values: + # In case we support unsigned activation, the output of softmax can be unsigned quant_mha_kwargs['attn_output_weights_signed'] = False unsigned_quant_act_kwargs['signed'] = False