From aede5dbc8b34411fc18dcca3e2332bea17d88510 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Fri, 24 Oct 2025 17:09:59 +0800 Subject: [PATCH 01/36] update --- auto_round/wrapper.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/auto_round/wrapper.py b/auto_round/wrapper.py index 6a6227023..57618780d 100644 --- a/auto_round/wrapper.py +++ b/auto_round/wrapper.py @@ -138,8 +138,12 @@ def _init_tuning_params_and_quant_func(self): if type(self.orig_layer) == transformers.pytorch_utils.Conv1D: orig_weight = orig_weight.t() weight_reshape = reshape_and_pad_tensor(orig_weight.data, orig_layer.group_size) - self.weight_min = torch.clamp(weight_reshape.min(1)[0], max=0) - self.weight_max = torch.clamp(weight_reshape.max(1)[0], min=0) + if self.enable_round_tuning: + self.weight_min = torch.clamp(weight_reshape.min(1)[0], max=0) + self.weight_max = torch.clamp(weight_reshape.max(1)[0], min=0) + else: + self.weight_min=None + self.weight_max=None self._init_params( "value", p_dtype, weight_reshape.shape, 0, self.enable_round_tuning and self.orig_layer.bits < 16 ) @@ -449,6 +453,7 @@ def forward(self, x): Returns: torch.Tensor: Output tensor after applying the wrapped layer. """ + # logger.info(self.orig_layer.tmp_name) x = x.to(self.device) weight_q, *_ = self._qdq_weight(self.value, self.min_scale, self.max_scale) From 4b5630f8747e7d2ca8d06188a10c2a8e1f841ec2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 09:14:47 +0000 Subject: [PATCH 02/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/wrapper.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/auto_round/wrapper.py b/auto_round/wrapper.py index 57618780d..f0a8aaec6 100644 --- a/auto_round/wrapper.py +++ b/auto_round/wrapper.py @@ -138,12 +138,12 @@ def _init_tuning_params_and_quant_func(self): if type(self.orig_layer) == transformers.pytorch_utils.Conv1D: orig_weight = orig_weight.t() weight_reshape = reshape_and_pad_tensor(orig_weight.data, orig_layer.group_size) - if self.enable_round_tuning: + if self.enable_round_tuning: self.weight_min = torch.clamp(weight_reshape.min(1)[0], max=0) self.weight_max = torch.clamp(weight_reshape.max(1)[0], min=0) else: - self.weight_min=None - self.weight_max=None + self.weight_min = None + self.weight_max = None self._init_params( "value", p_dtype, weight_reshape.shape, 0, self.enable_round_tuning and self.orig_layer.bits < 16 ) From 272e9ea3d31094fed71e0b5239fae4022bb5ba6a Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Mon, 27 Oct 2025 15:05:36 +0800 Subject: [PATCH 03/36] refine device_map code --- auto_round/auto_scheme/gen_auto_scheme.py | 2 + auto_round/compressors/adam_comperssor.py | 147 ++++++++++ auto_round/compressors/base.py | 310 ++-------------------- auto_round/data_type/int.py | 2 +- auto_round/schemes.py | 1 + auto_round/utils_bk/__init__.py | 0 auto_round/utils_bk/device.py | 153 +++++++++++ 7 files changed, 327 insertions(+), 288 deletions(-) create mode 100644 auto_round/compressors/adam_comperssor.py create mode 100644 auto_round/utils_bk/__init__.py create mode 100644 auto_round/utils_bk/device.py diff --git a/auto_round/auto_scheme/gen_auto_scheme.py b/auto_round/auto_scheme/gen_auto_scheme.py index 9ed0b21fa..84b8726ed 100644 --- a/auto_round/auto_scheme/gen_auto_scheme.py +++ b/auto_round/auto_scheme/gen_auto_scheme.py @@ -81,6 +81,8 @@ def _check_configs(self) -> None: def get_layer_config(self) -> dict[str, dict]: method_name = self.auto_scheme.method method_func = AUTO_SCHEME_METHODS[method_name] + if self.auto_scheme.low_gpu_mem_usage: + self.enable_torch_compile=False layer_config = method_func( self.auto_scheme, self.model, diff --git a/auto_round/compressors/adam_comperssor.py b/auto_round/compressors/adam_comperssor.py new file mode 100644 index 000000000..15b6caca2 --- /dev/null +++ b/auto_round/compressors/adam_comperssor.py @@ -0,0 +1,147 @@ +from typing import Union + +import torch + +from auto_round import QuantizationScheme +from auto_round.compressors import BaseCompressor +from auto_round.utils import check_is_cpu, is_hpex_available, htcore + + +class AdamCompressor(BaseCompressor): + """Class for quantization with optimizers like adamw of a PyTorch model. + + Args: + model: The PyTorch model to be quantized. + tokenizer: An optional tokenizer for processing input data. + scheme (str| dict | QuantizationScheme ): A preset scheme that defines the quantization configurations + bits (int): Number of bits for quantization (default is 4). + group_size (int): Size of the quantization group (default is 128). + sym (bool): Whether sym to be used (default is True). + layer_config (dict): Configuration for weight quantization (default is None). + batch_size (int): Batch size for training (default is 8). + amp (bool): Whether to use automatic mixed precision (default is True). + device: The device to be used for training (default is "auto"). + lr_scheduler: The learning rate scheduler to be used. + dataset: The default dataset name (default is "NeelNanda/pile-10k"). + enable_quanted_input (bool): Whether to use quantized input data (default is True). + enable_minmax_tuning (bool): Whether to enable min-max tuning (default is True). + lr (float): The learning rate (default is 0.005). + minmax_lr (float): The learning rate for min-max tuning (default is None). + low_gpu_mem_usage (bool): Whether to use low GPU memory (default is False). + iters (int): Number of iterations (default is 200). + seqlen (int): Length of the sequence. + nsamples (int): Number of samples (default is 128). + sampler (str): The sampling method (default is "rand"). + seed (int): The random seed (default is 42). + nblocks (int): Number of blocks (default is 1). + gradient_accumulate_steps (int): Number of gradient accumulation steps (default is 1). + not_use_best_mse (bool): Whether to use mean squared error (default is False). + dynamic_max_gap (int): The dynamic maximum gap (default is -1). + data_type (str): The data type to be used (default is "int"). + scale_dtype (str): The data type of quantization scale to be used (default is "float16"), different kernels + have different choices. + act_bits (int): Number of bits for activation quantization. Default is 16. + act_group_size (int): Group size for activation quantization. Default is None. + act_sym (bool): Whether to use symmetric activation quantization. Default is None. + act_data_type (str): Specifies the data type for activations. + Defaults to None, in which case it inherits the weight data type. + act_dynamic (bool): Whether to use dynamic activation quantization. Default is True. + to_quant_block_names (str|list): A string or list whose elements are list of + block's layer names to be quantized. + enable_norm_bias_tuning (bool): Whether to enable fast norm/layer_bias tuning + enable_torch_compile (bool): Whether to enable torch compile to optimize quant_block/layer function + **kwargs: Additional keyword arguments. + + Returns: + The quantized model. + """ + + bits: int | None + group_size: int | None + sym: bool | None + data_type: str | None + act_bits: int | None + act_group_size: int | None + act_sym: bool | None + act_data_type: str | None + act_dynamic: bool | None + super_bits: int | None + super_group_size: int | None + + def __init__( + self, + model: Union[torch.nn.Module, str], + tokenizer=None, + scheme: Union[str, dict, QuantizationScheme] = "W4A16", + layer_config: dict[str, Union[str, dict, QuantizationScheme]] = None, + dataset: Union[str, list, tuple, torch.utils.data.DataLoader] = "NeelNanda/pile-10k", + iters: int = 200, + seqlen: int = 2048, + nsamples: int = 128, + batch_size: int = 8, + gradient_accumulate_steps: int = 1, + low_gpu_mem_usage: bool = False, + device_map: Union[str, int, torch.device, dict] = 0, + enable_torch_compile: bool = False, + seed: int = 42, + optimizer="AdamW", + **kwargs, + ): + super(AdamCompressor, self).__init__( + model=model, + tokenizer=tokenizer, + scheme=scheme, + layer_config=layer_config, + batch_size=batch_size, + dataset=dataset, + low_gpu_mem_usage=low_gpu_mem_usage, + iters=iters, + seqlen=seqlen, + nsamples=nsamples, + seed=seed, + gradient_accumulate_steps=gradient_accumulate_steps, + enable_torch_compile=enable_torch_compile, + device_map=device_map, + **kwargs, + ) + + self.optimizer = self._get_optimizer(optimizer) + + def _get_optimizer(self, optimizer): + if optimizer is None: + optimizer = torch.optim.AdamW + elif isinstance(optimizer, str): + optimizer = getattr(torch.optim, optimizer) + else: + optimizer = optimizer + return optimizer + + def _get_scaler(self): + scaler = None + if self.amp and not check_is_cpu(self.device): + from torch.cuda.amp import GradScaler + + scaler = GradScaler(init_scale=1024, growth_interval=100000) + return scaler + + def _scale_loss_and_backward(self, scaler, loss): + if scaler is not None: + loss = scaler.scale(loss) + + loss.backward() + if is_hpex_available(): + htcore.mark_step() + return loss + + def _step(self, scaler, optimizer, lr_schedule): + if scaler is not None: + scaler.step(optimizer) + optimizer.zero_grad() + lr_schedule.step() + scaler.update() + else: + optimizer.step() + optimizer.zero_grad() + lr_schedule.step() + if is_hpex_available(): + htcore.mark_step() diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index 045fb697f..c20f26b36 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -20,7 +20,6 @@ import traceback from collections import defaultdict from dataclasses import asdict, fields -from enum import Enum from typing import Any, Callable, Union import accelerate @@ -34,7 +33,7 @@ from auto_round.data_type import QUANT_FUNC_WITH_DTYPE from auto_round.data_type.utils import reshape_pad_tensor_by_group_size from auto_round.export.export_to_autoround import AutoRoundFormat -from auto_round.export.export_to_gguf.config import GGUF_CONFIG, GGUF_INNER_CONFIG, ModelType +from auto_round.export.export_to_gguf.config import GGUF_INNER_CONFIG, ModelType from auto_round.logger import logger from auto_round.schemes import AutoScheme, QuantizationScheme, get_gguf_scheme, preset_name_to_scheme from auto_round.sign_sgd import SignSGD @@ -64,17 +63,10 @@ convert_fp8_model_to_16b_model, copy_python_files_from_model_cache, detect_device, - estimate_tuning_block_mem, find_matching_blocks, flatten_list, get_block_names, - get_device_memory, - get_fp_layer_names, - get_layer_config_by_gguf_format, - get_layer_features, get_layer_names_in_block, - get_lm_head_name, - get_max_vram, get_module, get_shared_keys, htcore, @@ -97,6 +89,7 @@ to_dtype, unsupported_meta_device, ) +from auto_round.utils_bk.device import get_major_device, set_non_auto_device_map, set_auto_device_map_for_block from auto_round.wrapper import WrapperLinear, WrapperMultiblock, unwrapper_block, unwrapper_layer, wrapper_block @@ -232,17 +225,20 @@ def __init__( enable_deterministic_algorithms = kwargs.pop("enable_deterministic_algorithms", False) static_kv_dtype = kwargs.pop("static_kv_dtype", None) device = kwargs.pop("device", None) + # Scale factor for RAM usage per parameter. + mem_per_param_scale = kwargs.pop("mem_per_param_scale", None) self.quant_lm_head = kwargs.pop("quant_lm_head", False) self.mllm = kwargs.pop("mllm") if "mllm" in kwargs else False self.diffusion = kwargs.pop("diffusion") if "diffusion" in kwargs else False - # Scale factor for RAM usage per parameter. - self.mem_per_param_scale = kwargs.pop("mem_per_param_scale", None) + + self.fp_layers = kwargs.pop("fp_layers", "") self.layer_config = layer_config self.supported_types = SUPPORTED_LAYER_TYPES self.inner_supported_types = INNER_SUPPORTED_LAYER_TYPES self.scale_dtype = convert_dtype_str2torch(scale_dtype) + if kwargs: logger.warning(f"unrecognized keys {list(kwargs.keys())} were passed. Please check them.") if "CUBLAS_WORKSPACE_CONFIG" not in os.environ: @@ -292,21 +288,17 @@ def __init__( self.enable_torch_compile = enable_torch_compile self._adjust_torch_compile(enable_torch_compile) + self.device_map = device_map + if isinstance(self.device_map, str): + self.device_map = self.device_map.replace(" ", "") + if isinstance(scheme, AutoScheme): - self.layer_config = self._gen_auto_scheme(model, scheme, dataset, device_map) + self.layer_config = self._gen_auto_scheme(model, scheme, dataset, self.device_map) # Set device, must place after model loading - self._set_device(device_map) - - if (isinstance(device_map, dict) and device_map) or device_map == "auto": - self.device_map = device_map - elif isinstance(device_map, str) and "," in device_map: - device_map = device_map.replace(" ", "") # Remove any spaces - self.device_list = [int(dev) for dev in device_map.split(",") if dev.isdigit()] - self.device_map = "auto" - else: - self.device_map = None - self._set_device_map_in_blocks(self.device_map) + self.device = get_major_device(device_map) + + set_non_auto_device_map(self.device_map) # Tuning hyperparameters self.seed = seed @@ -338,6 +330,10 @@ def __init__( self.optimizer = self._get_optimizer(None) self.disable_opt_rtn = disable_opt_rtn self.is_packing_immediate = False # whether to pack the layer immediately after tuning + if mem_per_param_scale is None : + self.mem_per_param_scale = 13 if self.iters != 0 else 1 + else: + self.mem_per_param_scale = mem_per_param_scale # KV cache, this one does not affect tuning but will collect some infos during tuning self.static_kv_dtype = static_kv_dtype @@ -590,133 +586,11 @@ def _adjust_torch_compile(self, enable_torch_compile: bool) -> None: "Enabling it can reduce tuning cost by 20%, but it might throw an exception." ) - # if is_debug_mode() and self.enable_torch_compile: - # self.enable_torch_compile = False - # logger.warning("reset enable_torch_compile to `False` as debug mode is enabled") if (self.data_type.startswith("fp") or self.act_data_type.startswith("fp")) and self.enable_torch_compile: self.enable_torch_compile = False logger.warning("reset enable_torch_compile to `False` as fp8 is enabled") - def _set_device_map_in_blocks(self, device_map: Union[str, dict, None]) -> None: - """Sets the device map for specific blocks in the model. - - Args: - device_map (Union[str, dict, None]): A mapping of module names to devices. - If provided as a string, it should be in the format - "module_name:device,module_name:device". Devices can be integers - (GPU IDs) or strings (e.g., 'cpu', 'cuda:0'). - """ - if self.device_map is None or len(self.device_map) == 0: - self.device_map = None - if not device_map: - return - if self.device_map == "auto" and device_map == "auto": - return - if isinstance(device_map, str): - device_map = device_map.replace(" ", "") - infos = device_map.split(",") - device_map_dict = {} - for info in infos: - index = info.find(":") - key = info[:index] - value = info[index + 1 :] - device_map_dict[key] = value - device_map = device_map_dict - - names = [n for n, m in self.model.named_modules() if len(list(m.children())) == 0] - - for key, device in device_map.items(): - if isinstance(device, str) and device.isdigit(): - device = int(device) - device = detect_device(device) - try: - module = get_module(self.model, key) - module.tuning_device = device - except: - matching_names = [name for name in names if re.match(key, name)] - if len(matching_names) > 0: - for name in matching_names: - self._set_device_for_matching_module(name, device) - else: - for name in names: - if key in name: - self._set_device_for_matching_module(name, device) - - def _set_device_for_matching_module(self, name: str, device: str) -> None: - """Sets the device for a module if it matches the given name.""" - module = get_module(self.model, name) - if hasattr(module, "tuning_device") and module.tuning_device != device: - logger.warning( - f"multiple devices have been set for layer {name}, keeping original device {module.tuning_device}" - ) - else: - module.tuning_device = device - - def _set_auto_device_map_in_block(self, block: torch.nn.Module, input_ids: list[torch.Tensor]) -> None: - """Automatically sets the device map for the block based on available GPUs and memory constraints.""" - if torch.cuda.is_available(): - num_gpus = torch.cuda.device_count() - elif torch.xpu.is_available(): - logger.warning_once("XPU does not support auto device map yet, using device 0 for tuning.") - return - else: - raise RuntimeError("No CUDA or XPU devices found.") - if num_gpus <= 1: - self.device_map = None - return - - if hasattr(self, "device_list") and self.device_list: - cuda_devices = [f"cuda:{i}" for i in self.device_list] - device_0 = cuda_devices[0] - else: - cuda_devices = [f"cuda:{i}" for i in range(num_gpus)] - device_0 = "cuda:0" - - device_0_memory = get_device_memory( - self.device_list[0] if hasattr(self, "device_list") and self.device_list else 0 - ) - block_memory, input_output_memory = estimate_tuning_block_mem(block, input_ids) - if self.low_gpu_mem_usage: - input_output_memory = 0 - - mem_per_param_scale = 13 if self.mem_per_param_scale is None else self.mem_per_param_scale - if self.iters == 0: - mem_per_param_scale = 1 # for rtn - - if (block_memory * mem_per_param_scale + input_output_memory) < device_0_memory: - return # fit in one GPU - - device_map = {} - device_memory = {device: get_device_memory(int(device.split(":")[1])) for device in cuda_devices} - device_memory[device_0] = device_0_memory - input_output_memory - - device_idx = 0 - # First, fill device 0 to its maximum capacity, then distribute the remaining layers evenly across other devices - for n, m in block.named_modules(): - if check_to_quantized(m): - layer_name = block.tmp_name + "." + n - layer_memory = m.weight.nbytes / 1024**3 - if device_idx == 0 and layer_memory * mem_per_param_scale < device_memory[cuda_devices[device_idx]]: - device_map[layer_name] = cuda_devices[device_idx] - device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale - elif device_idx == 0: - device_idx += 1 # Move to the next device once device 0 is full - device_map[layer_name] = cuda_devices[device_idx] - device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale - else: - # Calculate the target device index based on even distribution - sorted_devices = sorted(cuda_devices, key=lambda d: device_memory[d], reverse=True) - device_idx = sorted_devices[0] - if layer_memory * mem_per_param_scale < device_memory[device_idx]: - device_map[layer_name] = device_idx - device_memory[device_idx] -= layer_memory * mem_per_param_scale - else: - logger.warning_once( - f"Block {block.tmp_name} not fit in available GPU memory. " - "Consider using more GPUs or reducing mem_per_param_scale if OOM occurs." - ) - self._set_device_map_in_blocks(device_map) def _dq_check(self) -> None: """Reset the default value of super_bits and super_group_size""" @@ -1561,8 +1435,8 @@ def _quantize_via_rtn_blockwise(self, all_to_quantized_module_names: list[str]) if _is_fp8_model(self.model): convert_fp8_model_to_16b_model(block, dtype=self.amp_dtype) - if self.device_map == "auto": - self._set_auto_device_map_in_block(block, input_ids) + if self.device_map == "auto" or (isinstance(self.device_map, str) and "," in self.device_map): + set_auto_device_map_for_block(block,self.devcie_map,input_ids, self.low_gpu_mem_usage,self.mem_per_param_scale) # Dispatch model if needed if self.device_map is not None: @@ -2575,8 +2449,8 @@ def _quantize_block( new_layer = convert_fp8_layer_to_linear(m, self.amp_dtype).to(device) set_module(block, n, new_layer) - if self.device_map == "auto": - self._set_auto_device_map_in_block(block, input_ids) + if self.device_map == "auto" or (isinstance(self.device_map, str) and "," in self.device_map): + set_auto_device_map_for_block(block, self.device_map,input_ids,self.low_gpu_mem_usage,self.mem_per_param_scale) if self.device_map is not None: for n, m in block.named_modules(): @@ -3213,141 +3087,3 @@ class LLMCompressor(BaseCompressor): pass -class AdamCompressor(BaseCompressor): - """Class for quantization with optimizers like adamw of a PyTorch model. - - Args: - model: The PyTorch model to be quantized. - tokenizer: An optional tokenizer for processing input data. - scheme (str| dict | QuantizationScheme ): A preset scheme that defines the quantization configurations - bits (int): Number of bits for quantization (default is 4). - group_size (int): Size of the quantization group (default is 128). - sym (bool): Whether sym to be used (default is True). - layer_config (dict): Configuration for weight quantization (default is None). - batch_size (int): Batch size for training (default is 8). - amp (bool): Whether to use automatic mixed precision (default is True). - device: The device to be used for training (default is "auto"). - lr_scheduler: The learning rate scheduler to be used. - dataset: The default dataset name (default is "NeelNanda/pile-10k"). - enable_quanted_input (bool): Whether to use quantized input data (default is True). - enable_minmax_tuning (bool): Whether to enable min-max tuning (default is True). - lr (float): The learning rate (default is 0.005). - minmax_lr (float): The learning rate for min-max tuning (default is None). - low_gpu_mem_usage (bool): Whether to use low GPU memory (default is False). - iters (int): Number of iterations (default is 200). - seqlen (int): Length of the sequence. - nsamples (int): Number of samples (default is 128). - sampler (str): The sampling method (default is "rand"). - seed (int): The random seed (default is 42). - nblocks (int): Number of blocks (default is 1). - gradient_accumulate_steps (int): Number of gradient accumulation steps (default is 1). - not_use_best_mse (bool): Whether to use mean squared error (default is False). - dynamic_max_gap (int): The dynamic maximum gap (default is -1). - data_type (str): The data type to be used (default is "int"). - scale_dtype (str): The data type of quantization scale to be used (default is "float16"), different kernels - have different choices. - act_bits (int): Number of bits for activation quantization. Default is 16. - act_group_size (int): Group size for activation quantization. Default is None. - act_sym (bool): Whether to use symmetric activation quantization. Default is None. - act_data_type (str): Specifies the data type for activations. - Defaults to None, in which case it inherits the weight data type. - act_dynamic (bool): Whether to use dynamic activation quantization. Default is True. - to_quant_block_names (str|list): A string or list whose elements are list of - block's layer names to be quantized. - enable_norm_bias_tuning (bool): Whether to enable fast norm/layer_bias tuning - enable_torch_compile (bool): Whether to enable torch compile to optimize quant_block/layer function - **kwargs: Additional keyword arguments. - - Returns: - The quantized model. - """ - - bits: int | None - group_size: int | None - sym: bool | None - data_type: str | None - act_bits: int | None - act_group_size: int | None - act_sym: bool | None - act_data_type: str | None - act_dynamic: bool | None - super_bits: int | None - super_group_size: int | None - - def __init__( - self, - model: Union[torch.nn.Module, str], - tokenizer=None, - scheme: Union[str, dict, QuantizationScheme] = "W4A16", - layer_config: dict[str, Union[str, dict, QuantizationScheme]] = None, - dataset: Union[str, list, tuple, torch.utils.data.DataLoader] = "NeelNanda/pile-10k", - iters: int = 200, - seqlen: int = 2048, - nsamples: int = 128, - batch_size: int = 8, - gradient_accumulate_steps: int = 1, - low_gpu_mem_usage: bool = False, - device_map: Union[str, int, torch.device, dict] = 0, - enable_torch_compile: bool = False, - seed: int = 42, - optimizer="AdamW", - **kwargs, - ): - super(AdamCompressor, self).__init__( - model=model, - tokenizer=tokenizer, - scheme=scheme, - layer_config=layer_config, - batch_size=batch_size, - dataset=dataset, - low_gpu_mem_usage=low_gpu_mem_usage, - iters=iters, - seqlen=seqlen, - nsamples=nsamples, - seed=seed, - gradient_accumulate_steps=gradient_accumulate_steps, - enable_torch_compile=enable_torch_compile, - device_map=device_map, - **kwargs, - ) - - self.optimizer = self._get_optimizer(optimizer) - - def _get_optimizer(self, optimizer): - if optimizer is None: - optimizer = torch.optim.AdamW - elif isinstance(optimizer, str): - optimizer = getattr(torch.optim, optimizer) - else: - optimizer = optimizer - return optimizer - - def _get_scaler(self): - scaler = None - if self.amp and not check_is_cpu(self.device): - from torch.cuda.amp import GradScaler - - scaler = GradScaler(init_scale=1024, growth_interval=100000) - return scaler - - def _scale_loss_and_backward(self, scaler, loss): - if scaler is not None: - loss = scaler.scale(loss) - - loss.backward() - if is_hpex_available(): - htcore.mark_step() - return loss - - def _step(self, scaler, optimizer, lr_schedule): - if scaler is not None: - scaler.step(optimizer) - optimizer.zero_grad() - lr_schedule.step() - scaler.update() - else: - optimizer.step() - optimizer.zero_grad() - lr_schedule.step() - if is_hpex_available(): - htcore.mark_step() diff --git a/auto_round/data_type/int.py b/auto_round/data_type/int.py index fb6c5f3db..bd0533581 100644 --- a/auto_round/data_type/int.py +++ b/auto_round/data_type/int.py @@ -22,7 +22,7 @@ def search_scales(data: torch.Tensor, bits: int, qw: Union[None, torch.Tensor, float] = None) -> torch.Tensor: nmax = pow(2, bits - 1) - imax = abs(data).argmax(axis=-1, keepdims=True) + imax = torch.abs(data).argmax(dim=-1, keepdim=True) group_max = torch.take_along_dim(data, imax, dim=-1) iscales = -nmax * get_reciprocal(group_max) scales = get_reciprocal(iscales) diff --git a/auto_round/schemes.py b/auto_round/schemes.py index 96faf62c0..94eb17f2c 100644 --- a/auto_round/schemes.py +++ b/auto_round/schemes.py @@ -300,6 +300,7 @@ class AutoScheme: device_map: Optional[Union[str, torch.device, int, dict]] = None enable_torch_compile: Optional[bool] = None disable_opt_rtn: bool = True + low_gpu_mem_usage: bool = True def __post_init__(self): if isinstance(self.options, str): diff --git a/auto_round/utils_bk/__init__.py b/auto_round/utils_bk/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py new file mode 100644 index 000000000..7ce247b42 --- /dev/null +++ b/auto_round/utils_bk/device.py @@ -0,0 +1,153 @@ +from typing import Union + +import torch + +from auto_round.logger import logger + +from auto_round.utils import detect_device, get_module, get_device_memory, estimate_tuning_block_mem, check_to_quantized +import re + + +def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: + if isinstance(device_map, (str, torch.device, int)): + device = detect_device(device_map) + return device + + if isinstance(device_map, dict) and device_map: + tmp_devices = [] + for val in device_map.values(): + if isinstance(val, (str, torch.device, int)): # could optimize + tmp_device = detect_device(val) + tmp_device = tmp_device.split(":")[0] + tmp_devices.append(tmp_device) + tmp_devices = list(set(tmp_devices)) + if len(tmp_devices) > 1: + logger.warning( + f"there are multiple device types in the device_map, " + f"please make sure they are correct,use the first none-cpu device {tmp_devices[0]} as the core device " + ) + + for device in tmp_devices: + if device != "cpu": + return device + + device = tmp_devices[0] + return device + logger.warning(f"device_map should be [str, torch.device, int, dict], but got {type(device_map)}") + return "cpu" + + +def set_tuning_device_for_layer(model, name: str, device: str) -> None: + """Sets the device for a module if it matches the given name.""" + module = get_module(model, name) + if hasattr(module, "tuning_device") and module.tuning_device != device: + logger.warning( + f"multiple devices have been set for layer {name}, keeping original device {module.tuning_device}" + ) + else: + module.tuning_device = device + + +def set_non_auto_device_map(model: torch.nn.Module, device_map, quant_layer_names=None): + if not device_map: + return + if device_map == "auto": + return + if isinstance(device_map, str) and "," in device_map: # auto device map + return + if isinstance(device_map, int): + return + if isinstance(device_map, str): + device_map = device_map.replace(" ", "") + infos = device_map.split(",") + device_map_dict = {} + for info in infos: + index = info.find(":") + key = info[:index] + value = info[index + 1:] + device_map_dict[key] = value + device_map = device_map_dict + if quant_layer_names is not None: + names = quant_layer_names + else: + names = [n for n, m in model.model.named_modules() if len(list(m.children())) == 0] # if it's a block, it will be incorrect + for key, device in device_map.items(): + if isinstance(device, str) and device.isdigit(): + device = int(device) + device = detect_device(device) + if key in names: + module = get_module(model, key) + module.tuning_device = device + else: + matching_names = [name for name in names if re.match(key, name)] + for name in matching_names: + set_non_auto_device_map(model, name, device) + if not matching_names: + logger.warning(f"{key} in `device_map` dose not match any modules, please have a check") + + + +def set_auto_device_map_for_block(block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], + low_gpu_mem_usage=False,mem_per_param_scale=13.0) -> None: + """Automatically sets the device map for the block based on available GPUs and memory constraints.""" + if torch.cuda.is_available(): + num_gpus = torch.cuda.device_count() + elif torch.xpu.is_available(): + logger.warning_once("XPU does not support auto device map yet, using device 0 for tuning.") + return + else: + raise RuntimeError("No CUDA or XPU devices found.") + device_list = None + if isinstance(device_map, str) and "," in device_map: + device_list = [int(dev) for dev in device_map.split(",") if dev.isdigit()] + + if device_list: + cuda_devices = [f"cuda:{i}" for i in device_list] + device_0 = cuda_devices[0] + else: + cuda_devices = [f"cuda:{i}" for i in range(num_gpus)] + device_0 = "cuda:0" + + device_0_memory = get_device_memory( + device_list[0] if device_list else 0 + ) + block_memory, input_output_memory = estimate_tuning_block_mem(block, input_ids) + if low_gpu_mem_usage: + input_output_memory = 0 + + + if (block_memory * mem_per_param_scale + input_output_memory) < device_0_memory: + return # fit in one GPU + + device_map = {} + device_memory = {device: get_device_memory(int(device.split(":")[1])) for device in cuda_devices} + device_memory[device_0] = device_0_memory - input_output_memory + + device_idx = 0 + names = [] + # First, fill device 0 to its maximum capacity, then distribute the remaining layers evenly across other devices + for n, m in block.named_modules(): + if check_to_quantized(m): + layer_name = m.tmp_name + names.append(layer_name) + layer_memory = m.weight.nbytes / 1024**3 + if device_idx == 0 and layer_memory * mem_per_param_scale < device_memory[cuda_devices[device_idx]]: + device_map[layer_name] = cuda_devices[device_idx] + device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale + elif device_idx == 0: + device_idx += 1 # Move to the next device once device 0 is full + device_map[layer_name] = cuda_devices[device_idx] + device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale + else: + # Calculate the target device index based on even distribution + sorted_devices = sorted(cuda_devices, key=lambda d: device_memory[d], reverse=True) + device_idx = sorted_devices[0] + if layer_memory * mem_per_param_scale < device_memory[device_idx]: + device_map[layer_name] = device_idx + device_memory[device_idx] -= layer_memory * mem_per_param_scale + else: + logger.warning_once( + f"Block {block.tmp_name} not fit in available GPU memory. " + "Consider using more GPUs or reducing mem_per_param_scale if OOM occurs." + ) + set_non_auto_device_map(block,device_map,names) From 2e46f391bbd1b8eed573bdab7701edcb13f55a90 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 07:07:26 +0000 Subject: [PATCH 04/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/auto_scheme/gen_auto_scheme.py | 2 +- auto_round/compressors/adam_comperssor.py | 16 +++++++++- auto_round/compressors/base.py | 18 +++++------ auto_round/utils_bk/__init__.py | 13 ++++++++ auto_round/utils_bk/device.py | 38 +++++++++++++++-------- 5 files changed, 62 insertions(+), 25 deletions(-) diff --git a/auto_round/auto_scheme/gen_auto_scheme.py b/auto_round/auto_scheme/gen_auto_scheme.py index 84b8726ed..dd7d0f0b7 100644 --- a/auto_round/auto_scheme/gen_auto_scheme.py +++ b/auto_round/auto_scheme/gen_auto_scheme.py @@ -82,7 +82,7 @@ def get_layer_config(self) -> dict[str, dict]: method_name = self.auto_scheme.method method_func = AUTO_SCHEME_METHODS[method_name] if self.auto_scheme.low_gpu_mem_usage: - self.enable_torch_compile=False + self.enable_torch_compile = False layer_config = method_func( self.auto_scheme, self.model, diff --git a/auto_round/compressors/adam_comperssor.py b/auto_round/compressors/adam_comperssor.py index 15b6caca2..37e14329b 100644 --- a/auto_round/compressors/adam_comperssor.py +++ b/auto_round/compressors/adam_comperssor.py @@ -1,10 +1,24 @@ +# Copyright (c) 2025 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from typing import Union import torch from auto_round import QuantizationScheme from auto_round.compressors import BaseCompressor -from auto_round.utils import check_is_cpu, is_hpex_available, htcore +from auto_round.utils import check_is_cpu, htcore, is_hpex_available class AdamCompressor(BaseCompressor): diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index c20f26b36..b97e4d463 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -89,7 +89,7 @@ to_dtype, unsupported_meta_device, ) -from auto_round.utils_bk.device import get_major_device, set_non_auto_device_map, set_auto_device_map_for_block +from auto_round.utils_bk.device import get_major_device, set_auto_device_map_for_block, set_non_auto_device_map from auto_round.wrapper import WrapperLinear, WrapperMultiblock, unwrapper_block, unwrapper_layer, wrapper_block @@ -231,14 +231,12 @@ def __init__( self.mllm = kwargs.pop("mllm") if "mllm" in kwargs else False self.diffusion = kwargs.pop("diffusion") if "diffusion" in kwargs else False - self.fp_layers = kwargs.pop("fp_layers", "") self.layer_config = layer_config self.supported_types = SUPPORTED_LAYER_TYPES self.inner_supported_types = INNER_SUPPORTED_LAYER_TYPES self.scale_dtype = convert_dtype_str2torch(scale_dtype) - if kwargs: logger.warning(f"unrecognized keys {list(kwargs.keys())} were passed. Please check them.") if "CUBLAS_WORKSPACE_CONFIG" not in os.environ: @@ -330,7 +328,7 @@ def __init__( self.optimizer = self._get_optimizer(None) self.disable_opt_rtn = disable_opt_rtn self.is_packing_immediate = False # whether to pack the layer immediately after tuning - if mem_per_param_scale is None : + if mem_per_param_scale is None: self.mem_per_param_scale = 13 if self.iters != 0 else 1 else: self.mem_per_param_scale = mem_per_param_scale @@ -586,12 +584,10 @@ def _adjust_torch_compile(self, enable_torch_compile: bool) -> None: "Enabling it can reduce tuning cost by 20%, but it might throw an exception." ) - if (self.data_type.startswith("fp") or self.act_data_type.startswith("fp")) and self.enable_torch_compile: self.enable_torch_compile = False logger.warning("reset enable_torch_compile to `False` as fp8 is enabled") - def _dq_check(self) -> None: """Reset the default value of super_bits and super_group_size""" if self.data_type.endswith("_dq"): @@ -1436,7 +1432,9 @@ def _quantize_via_rtn_blockwise(self, all_to_quantized_module_names: list[str]) convert_fp8_model_to_16b_model(block, dtype=self.amp_dtype) if self.device_map == "auto" or (isinstance(self.device_map, str) and "," in self.device_map): - set_auto_device_map_for_block(block,self.devcie_map,input_ids, self.low_gpu_mem_usage,self.mem_per_param_scale) + set_auto_device_map_for_block( + block, self.device_map, input_ids, self.low_gpu_mem_usage, self.mem_per_param_scale + ) # Dispatch model if needed if self.device_map is not None: @@ -2450,7 +2448,9 @@ def _quantize_block( set_module(block, n, new_layer) if self.device_map == "auto" or (isinstance(self.device_map, str) and "," in self.device_map): - set_auto_device_map_for_block(block, self.device_map,input_ids,self.low_gpu_mem_usage,self.mem_per_param_scale) + set_auto_device_map_for_block( + block, self.device_map, input_ids, self.low_gpu_mem_usage, self.mem_per_param_scale + ) if self.device_map is not None: for n, m in block.named_modules(): @@ -3085,5 +3085,3 @@ def _sampling_inputs( class LLMCompressor(BaseCompressor): pass - - diff --git a/auto_round/utils_bk/__init__.py b/auto_round/utils_bk/__init__.py index e69de29bb..0d2740cdb 100644 --- a/auto_round/utils_bk/__init__.py +++ b/auto_round/utils_bk/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2025 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py index 7ce247b42..5ea42a5f4 100644 --- a/auto_round/utils_bk/device.py +++ b/auto_round/utils_bk/device.py @@ -1,11 +1,24 @@ +# Copyright (c) 2025 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import re from typing import Union import torch from auto_round.logger import logger - -from auto_round.utils import detect_device, get_module, get_device_memory, estimate_tuning_block_mem, check_to_quantized -import re +from auto_round.utils import check_to_quantized, detect_device, estimate_tuning_block_mem, get_device_memory, get_module def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: @@ -64,13 +77,15 @@ def set_non_auto_device_map(model: torch.nn.Module, device_map, quant_layer_name for info in infos: index = info.find(":") key = info[:index] - value = info[index + 1:] + value = info[index + 1 :] device_map_dict[key] = value device_map = device_map_dict if quant_layer_names is not None: names = quant_layer_names else: - names = [n for n, m in model.model.named_modules() if len(list(m.children())) == 0] # if it's a block, it will be incorrect + names = [ + n for n, m in model.model.named_modules() if len(list(m.children())) == 0 + ] # if it's a block, it will be incorrect for key, device in device_map.items(): if isinstance(device, str) and device.isdigit(): device = int(device) @@ -86,9 +101,9 @@ def set_non_auto_device_map(model: torch.nn.Module, device_map, quant_layer_name logger.warning(f"{key} in `device_map` dose not match any modules, please have a check") - -def set_auto_device_map_for_block(block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], - low_gpu_mem_usage=False,mem_per_param_scale=13.0) -> None: +def set_auto_device_map_for_block( + block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, mem_per_param_scale=13.0 +) -> None: """Automatically sets the device map for the block based on available GPUs and memory constraints.""" if torch.cuda.is_available(): num_gpus = torch.cuda.device_count() @@ -108,14 +123,11 @@ def set_auto_device_map_for_block(block: torch.nn.Module, device_map, input_ids: cuda_devices = [f"cuda:{i}" for i in range(num_gpus)] device_0 = "cuda:0" - device_0_memory = get_device_memory( - device_list[0] if device_list else 0 - ) + device_0_memory = get_device_memory(device_list[0] if device_list else 0) block_memory, input_output_memory = estimate_tuning_block_mem(block, input_ids) if low_gpu_mem_usage: input_output_memory = 0 - if (block_memory * mem_per_param_scale + input_output_memory) < device_0_memory: return # fit in one GPU @@ -150,4 +162,4 @@ def set_auto_device_map_for_block(block: torch.nn.Module, device_map, input_ids: f"Block {block.tmp_name} not fit in available GPU memory. " "Consider using more GPUs or reducing mem_per_param_scale if OOM occurs." ) - set_non_auto_device_map(block,device_map,names) + set_non_auto_device_map(block, device_map, names) From d26bc74aae8f3cc29e7102a2951adc6518eee535 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Mon, 27 Oct 2025 15:08:50 +0800 Subject: [PATCH 05/36] refine device_map code --- auto_round/compressors/base.py | 6 +++--- auto_round/utils_bk/device.py | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index c20f26b36..06bee1702 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -89,7 +89,7 @@ to_dtype, unsupported_meta_device, ) -from auto_round.utils_bk.device import get_major_device, set_non_auto_device_map, set_auto_device_map_for_block +from auto_round.utils_bk.device import get_major_device, set_non_auto_device_map, set_auto_device_map_for_block_with_tuning from auto_round.wrapper import WrapperLinear, WrapperMultiblock, unwrapper_block, unwrapper_layer, wrapper_block @@ -1436,7 +1436,7 @@ def _quantize_via_rtn_blockwise(self, all_to_quantized_module_names: list[str]) convert_fp8_model_to_16b_model(block, dtype=self.amp_dtype) if self.device_map == "auto" or (isinstance(self.device_map, str) and "," in self.device_map): - set_auto_device_map_for_block(block,self.devcie_map,input_ids, self.low_gpu_mem_usage,self.mem_per_param_scale) + set_auto_device_map_for_block_with_tuning(block, self.devcie_map, input_ids, self.low_gpu_mem_usage, self.mem_per_param_scale) # Dispatch model if needed if self.device_map is not None: @@ -2450,7 +2450,7 @@ def _quantize_block( set_module(block, n, new_layer) if self.device_map == "auto" or (isinstance(self.device_map, str) and "," in self.device_map): - set_auto_device_map_for_block(block, self.device_map,input_ids,self.low_gpu_mem_usage,self.mem_per_param_scale) + set_auto_device_map_for_block_with_tuning(block, self.device_map, input_ids, self.low_gpu_mem_usage, self.mem_per_param_scale) if self.device_map is not None: for n, m in block.named_modules(): diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py index 7ce247b42..29d8dcb63 100644 --- a/auto_round/utils_bk/device.py +++ b/auto_round/utils_bk/device.py @@ -87,8 +87,8 @@ def set_non_auto_device_map(model: torch.nn.Module, device_map, quant_layer_name -def set_auto_device_map_for_block(block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], - low_gpu_mem_usage=False,mem_per_param_scale=13.0) -> None: +def set_auto_device_map_for_block_with_tuning(block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], + low_gpu_mem_usage=False, mem_per_param_scale=13.0) -> None: """Automatically sets the device map for the block based on available GPUs and memory constraints.""" if torch.cuda.is_available(): num_gpus = torch.cuda.device_count() @@ -151,3 +151,6 @@ def set_auto_device_map_for_block(block: torch.nn.Module, device_map, input_ids: "Consider using more GPUs or reducing mem_per_param_scale if OOM occurs." ) set_non_auto_device_map(block,device_map,names) + + + From 04697c5df1edb2c5f0706e65824dd0ccaebe5374 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 07:12:51 +0000 Subject: [PATCH 06/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/compressors/base.py | 8 +++++--- auto_round/utils_bk/device.py | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index 012fc5d0e..92e366c81 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -88,9 +88,11 @@ to_dtype, unsupported_meta_device, ) - -from auto_round.utils_bk.device import get_major_device, set_auto_device_map_for_block_with_tuning, set_non_auto_device_map - +from auto_round.utils_bk.device import ( + get_major_device, + set_auto_device_map_for_block_with_tuning, + set_non_auto_device_map, +) from auto_round.wrapper import WrapperLinear, WrapperMultiblock, unwrapper_block, unwrapper_layer, wrapper_block diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py index bc092ca5a..53f8a0463 100644 --- a/auto_round/utils_bk/device.py +++ b/auto_round/utils_bk/device.py @@ -101,7 +101,6 @@ def set_non_auto_device_map(model: torch.nn.Module, device_map, quant_layer_name logger.warning(f"{key} in `device_map` dose not match any modules, please have a check") - def set_auto_device_map_for_block_with_tuning( block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, mem_per_param_scale=13.0 ): From 3d73d47e59f80dd758d4a8c2935911c2c11d2a18 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Mon, 27 Oct 2025 15:17:47 +0800 Subject: [PATCH 07/36] fix adam issue --- auto_round/compressors/__init__.py | 3 ++- auto_round/compressors/{adam_comperssor.py => adam.py} | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename auto_round/compressors/{adam_comperssor.py => adam.py} (100%) diff --git a/auto_round/compressors/__init__.py b/auto_round/compressors/__init__.py index dbf47b9c2..396505214 100644 --- a/auto_round/compressors/__init__.py +++ b/auto_round/compressors/__init__.py @@ -12,7 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from auto_round.compressors.base import * +from auto_round.compressors.adam import AdamCompressor +from auto_round.compressors.base import BaseCompressor,LLMCompressor from auto_round.compressors.mllm.compressor import MLLMCompressor from auto_round.compressors.diffusion.compressor import DiffusionCompressor from auto_round.compressors.config import ( diff --git a/auto_round/compressors/adam_comperssor.py b/auto_round/compressors/adam.py similarity index 100% rename from auto_round/compressors/adam_comperssor.py rename to auto_round/compressors/adam.py From 3d9dbe824a95ae6269bb585c052b102c33ca54f9 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 07:18:17 +0000 Subject: [PATCH 08/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/compressors/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auto_round/compressors/__init__.py b/auto_round/compressors/__init__.py index 396505214..35786b9b8 100644 --- a/auto_round/compressors/__init__.py +++ b/auto_round/compressors/__init__.py @@ -13,7 +13,7 @@ # limitations under the License. from auto_round.compressors.adam import AdamCompressor -from auto_round.compressors.base import BaseCompressor,LLMCompressor +from auto_round.compressors.base import BaseCompressor, LLMCompressor from auto_round.compressors.mllm.compressor import MLLMCompressor from auto_round.compressors.diffusion.compressor import DiffusionCompressor from auto_round.compressors.config import ( From b261a2163c07f5aeba857aab29fbed4058f5b593 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Mon, 27 Oct 2025 15:21:27 +0800 Subject: [PATCH 09/36] tiny change --- auto_round/compressors/__init__.py | 3 ++- auto_round/compressors/base.py | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/auto_round/compressors/__init__.py b/auto_round/compressors/__init__.py index 35786b9b8..03983b2c7 100644 --- a/auto_round/compressors/__init__.py +++ b/auto_round/compressors/__init__.py @@ -13,7 +13,8 @@ # limitations under the License. from auto_round.compressors.adam import AdamCompressor -from auto_round.compressors.base import BaseCompressor, LLMCompressor +from auto_round.compressors.base import BaseCompressor +from auto_round.compressors.base import BaseCompressor as LLMCompressor from auto_round.compressors.mllm.compressor import MLLMCompressor from auto_round.compressors.diffusion.compressor import DiffusionCompressor from auto_round.compressors.config import ( diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index 92e366c81..f0f5051bb 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -3083,7 +3083,3 @@ def _sampling_inputs( current_input_others[key] = input_others[key] return current_input_ids, current_input_others - - -class LLMCompressor(BaseCompressor): - pass From b6dd6fe5b2245243f753dc88f75ac62d3c3d3cff Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Mon, 27 Oct 2025 16:22:48 +0800 Subject: [PATCH 10/36] update --- auto_round/compressors/adam.py | 4 +- auto_round/compressors/base.py | 4 +- auto_round/utils_bk/device.py | 107 ++++++++++++++++++++++++++++++++- 3 files changed, 108 insertions(+), 7 deletions(-) diff --git a/auto_round/compressors/adam.py b/auto_round/compressors/adam.py index 37e14329b..2e6511899 100644 --- a/auto_round/compressors/adam.py +++ b/auto_round/compressors/adam.py @@ -16,8 +16,8 @@ import torch -from auto_round import QuantizationScheme -from auto_round.compressors import BaseCompressor +from auto_round.schemes import QuantizationScheme +from auto_round.compressors.base import BaseCompressor from auto_round.utils import check_is_cpu, htcore, is_hpex_available diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index f0f5051bb..f9bf48001 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -2260,8 +2260,8 @@ def _quantize_layer( best_loss = torch.finfo(torch.float).max scaler = self._get_scaler() # pylint: disable=assignment-from-none init_loss = None - gradient_accumulate_steps = self.batch_size ##Force to low gpu - batch_size = 1 ##Force to low gpu + gradient_accumulate_steps = self.batch_size # Force to low gpu + batch_size = 1 # Force to low gpu pick_samples = batch_size * gradient_accumulate_steps pick_samples = min(nsamples, pick_samples) if self.sampler != "rand": diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py index 53f8a0463..a156aa99d 100644 --- a/auto_round/utils_bk/device.py +++ b/auto_round/utils_bk/device.py @@ -18,8 +18,9 @@ import torch from auto_round.logger import logger -from auto_round.utils import check_to_quantized, detect_device, estimate_tuning_block_mem, get_device_memory, get_module - +from auto_round.utils import check_to_quantized, detect_device, estimate_tuning_block_mem, get_device_memory, \ + get_module, get_block_names, get_layer_features +from itertools import combinations def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: if isinstance(device_map, (str, torch.device, int)): @@ -61,7 +62,9 @@ def set_tuning_device_for_layer(model, name: str, device: str) -> None: module.tuning_device = device -def set_non_auto_device_map(model: torch.nn.Module, device_map, quant_layer_names=None): +def set_non_auto_device_map(model: torch.nn.Module, + device_map:Union[str,int,dict], + quant_layer_names:Union[None,list,tuple]=None)->None: if not device_map: return if device_map == "auto": @@ -164,3 +167,101 @@ def set_auto_device_map_for_block_with_tuning( ) set_non_auto_device_map(block, device_map, names) + + +def set_device_map_for_auto_scheme(model, device_map): + if not device_map: + return + if device_map=="auto" or (isinstance(device_map, str) and "," in device_map): # auto device map + set_avg_auto_device_map(model) + else: + set_non_auto_device_map(model,device_map) + + + + + +def partition_dict_numbers(number_dict, n): + """ + Partition a dictionary of numbers into N groups with approximately equal sums + + Args: + number_dict: dict with string keys and number values + n: number of groups to partition into + + Returns: + list of dictionaries, each representing a group + """ + total_sum = sum(number_dict.values()) + target = total_sum // n + + def find_subset(items, target): + # Find a subset with sum closest to but not exceeding target + keys, values = zip(*items) if items else ([], []) + for r in range(len(items), 0, -1): + for combo in combinations(range(len(items)), r): + subset_sum = sum(values[i] for i in combo) + if subset_sum <= target: + return {keys[i]: values[i] for i in combo} + return {} + + # Convert dict to list of (key, value) tuples for processing + items = list(number_dict.items()) + result = [] + remaining_items = items.copy() + + for i in range(n - 1): + subset_dict = find_subset(remaining_items, target) + result.append(subset_dict) + # Remove allocated items from remaining list + for key in subset_dict.keys(): + remaining_items = [(k, v) for k, v in remaining_items if k != key] + + # Last group contains all remaining items + result.append(dict(remaining_items)) + return result + + + + +def set_avg_auto_device_map(model, device_map): + block_name_list = get_block_names(model) + params_dict = {} + if isinstance(device_map, str) and "," in device_map: + device_list = [int(dev) for dev in device_map.split(",") if dev.isdigit()] + num_devices = len(device_list) + else: + if torch.cuda.is_available(): + num_devices = torch.cuda.device_count() + elif torch.xpu.is_available(): + logger.warning_once("XPU does not support auto device map yet, using device 0 for tuning.") + return + else: + return + + for block_names in block_name_list: + for block_name in block_names: + block_module = get_module(model,block_name) + for n,m in block_module.named_modules(): + in_features,out_features = get_layer_features(m) + params_dict[n] = in_features*out_features + res = partition_dict_numbers(params_dict, num_devices) + + + +if __name__ == "__main__": + # Example usage + number_dict = { + "item1": 90, + "item2": 20, + "item3": 30, + "item4": 40, + "item5": 50, + "item6": 60 + } + + groups = partition_dict_numbers(number_dict, 3) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + + From 06beee364227e25037d164bf9dbb4832825b733a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 08:23:56 +0000 Subject: [PATCH 11/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/compressors/adam.py | 2 +- auto_round/utils_bk/device.py | 49 +++++++++++++++------------------- 2 files changed, 22 insertions(+), 29 deletions(-) diff --git a/auto_round/compressors/adam.py b/auto_round/compressors/adam.py index 2e6511899..4606eab3a 100644 --- a/auto_round/compressors/adam.py +++ b/auto_round/compressors/adam.py @@ -16,8 +16,8 @@ import torch -from auto_round.schemes import QuantizationScheme from auto_round.compressors.base import BaseCompressor +from auto_round.schemes import QuantizationScheme from auto_round.utils import check_is_cpu, htcore, is_hpex_available diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py index a156aa99d..ee24dd1e1 100644 --- a/auto_round/utils_bk/device.py +++ b/auto_round/utils_bk/device.py @@ -13,14 +13,22 @@ # limitations under the License. import re +from itertools import combinations from typing import Union import torch from auto_round.logger import logger -from auto_round.utils import check_to_quantized, detect_device, estimate_tuning_block_mem, get_device_memory, \ - get_module, get_block_names, get_layer_features -from itertools import combinations +from auto_round.utils import ( + check_to_quantized, + detect_device, + estimate_tuning_block_mem, + get_block_names, + get_device_memory, + get_layer_features, + get_module, +) + def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: if isinstance(device_map, (str, torch.device, int)): @@ -62,9 +70,9 @@ def set_tuning_device_for_layer(model, name: str, device: str) -> None: module.tuning_device = device -def set_non_auto_device_map(model: torch.nn.Module, - device_map:Union[str,int,dict], - quant_layer_names:Union[None,list,tuple]=None)->None: +def set_non_auto_device_map( + model: torch.nn.Module, device_map: Union[str, int, dict], quant_layer_names: Union[None, list, tuple] = None +) -> None: if not device_map: return if device_map == "auto": @@ -172,13 +180,10 @@ def set_auto_device_map_for_block_with_tuning( def set_device_map_for_auto_scheme(model, device_map): if not device_map: return - if device_map=="auto" or (isinstance(device_map, str) and "," in device_map): # auto device map + if device_map == "auto" or (isinstance(device_map, str) and "," in device_map): # auto device map set_avg_auto_device_map(model) else: - set_non_auto_device_map(model,device_map) - - - + set_non_auto_device_map(model, device_map) def partition_dict_numbers(number_dict, n): @@ -222,8 +227,6 @@ def find_subset(items, target): return result - - def set_avg_auto_device_map(model, device_map): block_name_list = get_block_names(model) params_dict = {} @@ -241,27 +244,17 @@ def set_avg_auto_device_map(model, device_map): for block_names in block_name_list: for block_name in block_names: - block_module = get_module(model,block_name) - for n,m in block_module.named_modules(): - in_features,out_features = get_layer_features(m) - params_dict[n] = in_features*out_features + block_module = get_module(model, block_name) + for n, m in block_module.named_modules(): + in_features, out_features = get_layer_features(m) + params_dict[n] = in_features * out_features res = partition_dict_numbers(params_dict, num_devices) - if __name__ == "__main__": # Example usage - number_dict = { - "item1": 90, - "item2": 20, - "item3": 30, - "item4": 40, - "item5": 50, - "item6": 60 - } + number_dict = {"item1": 90, "item2": 20, "item3": 30, "item4": 40, "item5": 50, "item6": 60} groups = partition_dict_numbers(number_dict, 3) for i, group in enumerate(groups): print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") - - From 0a2bd4baf1c9feb9e82923a47770397300d19ede Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Mon, 27 Oct 2025 17:06:42 +0800 Subject: [PATCH 12/36] try to fix preci --- auto_round/compressors/base.py | 3 +- auto_round/utils_bk/device.py | 138 +++++++++++++++++++++++---------- 2 files changed, 97 insertions(+), 44 deletions(-) diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index f9bf48001..299c3c77e 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -298,8 +298,7 @@ def __init__( # Set device, must place after model loading self.device = get_major_device(device_map) - - set_non_auto_device_map(self.device_map) + set_non_auto_device_map(self.model, self.device_map) # Tuning hyperparameters self.seed = seed diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py index a156aa99d..0639b98fd 100644 --- a/auto_round/utils_bk/device.py +++ b/auto_round/utils_bk/device.py @@ -169,64 +169,85 @@ def set_auto_device_map_for_block_with_tuning( set_non_auto_device_map(block, device_map, names) -def set_device_map_for_auto_scheme(model, device_map): - if not device_map: - return - if device_map=="auto" or (isinstance(device_map, str) and "," in device_map): # auto device map - set_avg_auto_device_map(model) - else: - set_non_auto_device_map(model,device_map) - - - +# def set_device_map_for_auto_scheme(model, device_map): +# if not device_map: +# return +# if device_map=="auto" or (isinstance(device_map, str) and "," in device_map): # auto device map +# set_avg_auto_device_map(model) +# else: +# set_non_auto_device_map(model,device_map) def partition_dict_numbers(number_dict, n): """ Partition a dictionary of numbers into N groups with approximately equal sums - - Args: - number_dict: dict with string keys and number values - n: number of groups to partition into - - Returns: - list of dictionaries, each representing a group """ + # Edge cases + if n > len(number_dict): + groups = [] + for key, value in number_dict.items(): + groups.append({key: value}) + for _ in range(n - len(number_dict)): + groups.append({}) + return groups + + if n == len(number_dict): + return [{key: value} for key, value in number_dict.items()] + total_sum = sum(number_dict.values()) - target = total_sum // n - - def find_subset(items, target): - # Find a subset with sum closest to but not exceeding target - keys, values = zip(*items) if items else ([], []) - for r in range(len(items), 0, -1): - for combo in combinations(range(len(items)), r): - subset_sum = sum(values[i] for i in combo) - if subset_sum <= target: - return {keys[i]: values[i] for i in combo} - return {} - - # Convert dict to list of (key, value) tuples for processing + # target = total_sum / n # Use float for better precision + items = list(number_dict.items()) result = [] - remaining_items = items.copy() + remaining = items.copy() + + def find_optimal_subset(arr, target): + """Find subset with sum closest to target""" + best_subset = [] + best_diff = float('inf') + # Try all possible subset sizes + for r in range(1, len(arr) + 1): + for combo in combinations(arr, r): + current_sum = sum(value for _, value in combo) + current_diff = abs(current_sum - target) + + # If we found a perfect match, return immediately + if current_diff == 0: + return list(combo) + + # Update the best subset if this is better + if current_diff < best_diff and current_sum <= total_sum: + best_diff = current_diff + best_subset = list(combo) + + return best_subset + + # Distribute items into n-1 groups for i in range(n - 1): - subset_dict = find_subset(remaining_items, target) - result.append(subset_dict) - # Remove allocated items from remaining list - for key in subset_dict.keys(): - remaining_items = [(k, v) for k, v in remaining_items if k != key] - - # Last group contains all remaining items - result.append(dict(remaining_items)) - return result + if not remaining: + break + + # Calculate dynamic target based on remaining items + remaining_target = sum(value for _, value in remaining) / (n - i) + subset = find_optimal_subset(remaining, remaining_target) + result.append(dict(subset)) + + # Remove allocated items + for item in subset: + remaining.remove(item) + + # Last group gets all remaining items + result.append(dict(remaining)) + + return result def set_avg_auto_device_map(model, device_map): block_name_list = get_block_names(model) - params_dict = {} + device_list = None if isinstance(device_map, str) and "," in device_map: device_list = [int(dev) for dev in device_map.split(",") if dev.isdigit()] num_devices = len(device_list) @@ -239,13 +260,29 @@ def set_avg_auto_device_map(model, device_map): else: return + if device_list: + cuda_devices = [f"cuda:{i}" for i in device_list] + else: + cuda_devices = [f"cuda:{i}" for i in range(num_devices)] + for block_names in block_name_list: for block_name in block_names: + params_dict = {} block_module = get_module(model,block_name) for n,m in block_module.named_modules(): in_features,out_features = get_layer_features(m) params_dict[n] = in_features*out_features - res = partition_dict_numbers(params_dict, num_devices) + + res_list = partition_dict_numbers(params_dict, num_devices) + device_index = 0 + for res in res_list: + for key in res.keys(): + tmp_m = get_module(model,key) + set_tuning_device_for_layer(block_module,tmp_m, cuda_devices[device_index]) + + + + @@ -260,8 +297,25 @@ def set_avg_auto_device_map(model, device_map): "item6": 60 } + groups = partition_dict_numbers(number_dict, 10) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + + groups = partition_dict_numbers(number_dict, 6) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + + groups = partition_dict_numbers(number_dict, 4) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + groups = partition_dict_numbers(number_dict, 3) for i, group in enumerate(groups): print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + groups = partition_dict_numbers(number_dict, 2) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + + From 7cfc72b5112920ad3830ccb436a20dd9d957ee88 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:09:53 +0000 Subject: [PATCH 13/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/utils_bk/device.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py index a073a9b0a..9eb197af2 100644 --- a/auto_round/utils_bk/device.py +++ b/auto_round/utils_bk/device.py @@ -187,7 +187,6 @@ def set_auto_device_map_for_block_with_tuning( # set_non_auto_device_map(model, device_map) - def partition_dict_numbers(number_dict, n): """ Partition a dictionary of numbers into N groups with approximately equal sums @@ -214,7 +213,7 @@ def partition_dict_numbers(number_dict, n): def find_optimal_subset(arr, target): """Find subset with sum closest to target""" best_subset = [] - best_diff = float('inf') + best_diff = float("inf") # Try all possible subset sizes for r in range(1, len(arr) + 1): @@ -253,6 +252,7 @@ def find_optimal_subset(arr, target): return result + def set_avg_auto_device_map(model, device_map): block_name_list = get_block_names(model) device_list = None @@ -276,18 +276,17 @@ def set_avg_auto_device_map(model, device_map): for block_names in block_name_list: for block_name in block_names: params_dict = {} - block_module = get_module(model,block_name) - for n,m in block_module.named_modules(): - in_features,out_features = get_layer_features(m) - params_dict[n] = in_features*out_features + block_module = get_module(model, block_name) + for n, m in block_module.named_modules(): + in_features, out_features = get_layer_features(m) + params_dict[n] = in_features * out_features res_list = partition_dict_numbers(params_dict, num_devices) device_index = 0 for res in res_list: for key in res.keys(): - tmp_m = get_module(model,key) - set_tuning_device_for_layer(block_module,tmp_m, cuda_devices[device_index]) - + tmp_m = get_module(model, key) + set_tuning_device_for_layer(block_module, tmp_m, cuda_devices[device_index]) if __name__ == "__main__": From 8dbd3b6ff099edc5b66e64aa494a53e37678f1fd Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Mon, 27 Oct 2025 20:00:09 +0800 Subject: [PATCH 14/36] trigger ut --- auto_round/auto_scheme/gen_auto_scheme.py | 1 + 1 file changed, 1 insertion(+) diff --git a/auto_round/auto_scheme/gen_auto_scheme.py b/auto_round/auto_scheme/gen_auto_scheme.py index dd7d0f0b7..1022e8d43 100644 --- a/auto_round/auto_scheme/gen_auto_scheme.py +++ b/auto_round/auto_scheme/gen_auto_scheme.py @@ -83,6 +83,7 @@ def get_layer_config(self) -> dict[str, dict]: method_func = AUTO_SCHEME_METHODS[method_name] if self.auto_scheme.low_gpu_mem_usage: self.enable_torch_compile = False + layer_config = method_func( self.auto_scheme, self.model, From 7c17f29aa077a8d1516c4cc9aca1cd66ca71c290 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 01:32:51 +0000 Subject: [PATCH 15/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/compressors/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index 44405ff05..3ea3989e6 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -65,8 +65,8 @@ TORCH_VERSION_AT_LEAST_2_6, CpuInfo, check_and_mark_fp8_model, - check_need_act_calibration, check_is_cpu, + check_need_act_calibration, check_seqlen_compatible, check_to_quantized, clear_memory, From c6396a9435cebd02e5439034858f092b431a35a2 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 09:35:53 +0800 Subject: [PATCH 16/36] fix merge issue --- auto_round/compressors/base.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index 3ea3989e6..e8a5fd176 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -35,8 +35,6 @@ check_need_act_calibration, check_skippable_keywords, collect_best_params, - get_fp_layer_names, - get_layer_config_by_gguf_format, get_shared_keys, gguf_args_check, infer_bits_by_data_type, @@ -65,8 +63,6 @@ TORCH_VERSION_AT_LEAST_2_6, CpuInfo, check_and_mark_fp8_model, - check_is_cpu, - check_need_act_calibration, check_seqlen_compatible, check_to_quantized, clear_memory, @@ -79,8 +75,6 @@ find_matching_blocks, flatten_list, get_block_names, - get_device_memory, - get_layer_features, get_layer_names_in_block, get_module, htcore, From abf94a4b1afe553ddd07a3cea179614411355afc Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 10:06:33 +0800 Subject: [PATCH 17/36] merge utils --- auto_round/compressors/base.py | 2 +- auto_round/utils/device.py | 303 +++++++++++++++++++++++++++++- auto_round/utils_bk/__init__.py | 13 -- auto_round/utils_bk/device.py | 314 -------------------------------- 4 files changed, 302 insertions(+), 330 deletions(-) delete mode 100644 auto_round/utils_bk/__init__.py delete mode 100644 auto_round/utils_bk/device.py diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index e8a5fd176..70370b200 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -90,7 +90,7 @@ to_dtype, unsupported_meta_device, ) -from auto_round.utils_bk.device import ( +from auto_round.utils.device import ( get_major_device, set_auto_device_map_for_block_with_tuning, set_non_auto_device_map, diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 53abc57aa..b840510d1 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -14,12 +14,28 @@ import gc import os from functools import lru_cache -from typing import Any, Callable, Dict, List, Tuple, Union +from typing import Callable import cpuinfo + + +import re +from itertools import combinations +from typing import Union + import torch from auto_round.logger import logger +from auto_round.utils import ( + check_to_quantized, + detect_device, + estimate_tuning_block_mem, + get_block_names, + get_device_memory, + get_layer_features, + get_module, +) + # Note on HPU usage: # There are two modes available for enabling auto-round on HPU: @@ -262,7 +278,7 @@ def is_valid_digit(s): return device -def get_device_and_parallelism(device: Union[str, torch.device, int]) -> Tuple[str, bool]: +def get_device_and_parallelism(device: Union[str, torch.device, int]) -> tuple[str, bool]: if isinstance(device, str): devices = device.replace(" ", "").split(",") elif isinstance(device, int): @@ -539,3 +555,286 @@ def get_device_memory(i: int = 0) -> int: else: raise RuntimeError("No supported device found (CUDA or XPU).") return total_memory + +def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: + if isinstance(device_map, (str, torch.device, int)): + device = detect_device(device_map) + return device + + if isinstance(device_map, dict) and device_map: + tmp_devices = [] + for val in device_map.values(): + if isinstance(val, (str, torch.device, int)): # could optimize + tmp_device = detect_device(val) + tmp_device = tmp_device.split(":")[0] + tmp_devices.append(tmp_device) + tmp_devices = list(set(tmp_devices)) + if len(tmp_devices) > 1: + logger.warning( + f"there are multiple device types in the device_map, " + f"please make sure they are correct,use the first none-cpu device {tmp_devices[0]} as the core device " + ) + + for device in tmp_devices: + if device != "cpu": + return device + + device = tmp_devices[0] + return device + logger.warning(f"device_map should be [str, torch.device, int, dict], but got {type(device_map)}") + return "cpu" + + +def set_tuning_device_for_layer(model, name: str, device: str) -> None: + """Sets the device for a module if it matches the given name.""" + module = get_module(model, name) + if hasattr(module, "tuning_device") and module.tuning_device != device: + logger.warning( + f"multiple devices have been set for layer {name}, keeping original device {module.tuning_device}" + ) + else: + module.tuning_device = device + + +def set_non_auto_device_map( + model: torch.nn.Module, device_map: Union[str, int, dict], quant_layer_names: Union[None, list, tuple] = None +) -> None: + if not device_map: + return + if device_map == "auto": + return + if isinstance(device_map, str) and "," in device_map: # auto device map + return + if isinstance(device_map, int): + return + if isinstance(device_map, str): + device_map = device_map.replace(" ", "") + infos = device_map.split(",") + device_map_dict = {} + for info in infos: + index = info.find(":") + key = info[:index] + value = info[index + 1 :] + device_map_dict[key] = value + device_map = device_map_dict + if quant_layer_names is not None: + names = quant_layer_names + else: + names = [ + n for n, m in model.model.named_modules() if len(list(m.children())) == 0 + ] # if it's a block, it will be incorrect + for key, device in device_map.items(): + if isinstance(device, str) and device.isdigit(): + device = int(device) + device = detect_device(device) + if key in names: + module = get_module(model, key) + module.tuning_device = device + else: + matching_names = [name for name in names if re.match(key, name)] + for name in matching_names: + set_non_auto_device_map(model, name, device) + if not matching_names: + logger.warning(f"{key} in `device_map` dose not match any modules, please have a check") + + +def set_auto_device_map_for_block_with_tuning( + block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, mem_per_param_scale=13.0 +): + """Automatically sets the device map for the block based on available GPUs and memory constraints.""" + if torch.cuda.is_available(): + num_gpus = torch.cuda.device_count() + elif torch.xpu.is_available(): + logger.warning_once("XPU does not support auto device map yet, using device 0 for tuning.") + return + else: + raise RuntimeError("No CUDA or XPU devices found.") + device_list = None + if isinstance(device_map, str) and "," in device_map: + device_list = [int(dev) for dev in device_map.split(",") if dev.isdigit()] + + if device_list: + cuda_devices = [f"cuda:{i}" for i in device_list] + device_0 = cuda_devices[0] + else: + cuda_devices = [f"cuda:{i}" for i in range(num_gpus)] + device_0 = "cuda:0" + + device_0_memory = get_device_memory(device_list[0] if device_list else 0) + block_memory, input_output_memory = estimate_tuning_block_mem(block, input_ids) + if low_gpu_mem_usage: + input_output_memory = 0 + + if (block_memory * mem_per_param_scale + input_output_memory) < device_0_memory: + return # fit in one GPU + + device_map = {} + device_memory = {device: get_device_memory(int(device.split(":")[1])) for device in cuda_devices} + device_memory[device_0] = device_0_memory - input_output_memory + + device_idx = 0 + names = [] + # First, fill device 0 to its maximum capacity, then distribute the remaining layers evenly across other devices + for n, m in block.named_modules(): + if check_to_quantized(m): + layer_name = m.tmp_name + names.append(layer_name) + layer_memory = m.weight.nbytes / 1024**3 + if device_idx == 0 and layer_memory * mem_per_param_scale < device_memory[cuda_devices[device_idx]]: + device_map[layer_name] = cuda_devices[device_idx] + device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale + elif device_idx == 0: + device_idx += 1 # Move to the next device once device 0 is full + device_map[layer_name] = cuda_devices[device_idx] + device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale + else: + # Calculate the target device index based on even distribution + sorted_devices = sorted(cuda_devices, key=lambda d: device_memory[d], reverse=True) + device_idx = sorted_devices[0] + if layer_memory * mem_per_param_scale < device_memory[device_idx]: + device_map[layer_name] = device_idx + device_memory[device_idx] -= layer_memory * mem_per_param_scale + else: + logger.warning_once( + f"Block {block.tmp_name} not fit in available GPU memory. " + "Consider using more GPUs or reducing mem_per_param_scale if OOM occurs." + ) + + set_non_auto_device_map(block, device_map, names) + + +# +# def set_device_map_for_auto_scheme(model, device_map): +# if not device_map: +# return +# if device_map == "auto" or (isinstance(device_map, str) and "," in device_map): # auto device map +# set_avg_auto_device_map(model) +# else: +# set_non_auto_device_map(model, device_map) + + +def partition_dict_numbers(number_dict, n): + """ + Partition a dictionary of numbers into N groups with approximately equal sums + """ + # Edge cases + if n > len(number_dict): + groups = [] + for key, value in number_dict.items(): + groups.append({key: value}) + for _ in range(n - len(number_dict)): + groups.append({}) + return groups + + if n == len(number_dict): + return [{key: value} for key, value in number_dict.items()] + + total_sum = sum(number_dict.values()) + # target = total_sum / n # Use float for better precision + + items = list(number_dict.items()) + result = [] + remaining = items.copy() + + def find_optimal_subset(arr, target): + """Find subset with sum closest to target""" + best_subset = [] + best_diff = float("inf") + + # Try all possible subset sizes + for r in range(1, len(arr) + 1): + for combo in combinations(arr, r): + current_sum = sum(value for _, value in combo) + current_diff = abs(current_sum - target) + + # If we found a perfect match, return immediately + if current_diff == 0: + return list(combo) + + # Update the best subset if this is better + if current_diff < best_diff and current_sum <= total_sum: + best_diff = current_diff + best_subset = list(combo) + + return best_subset + + # Distribute items into n-1 groups + for i in range(n - 1): + if not remaining: + break + + # Calculate dynamic target based on remaining items + remaining_target = sum(value for _, value in remaining) / (n - i) + subset = find_optimal_subset(remaining, remaining_target) + + result.append(dict(subset)) + + # Remove allocated items + for item in subset: + remaining.remove(item) + + # Last group gets all remaining items + result.append(dict(remaining)) + + return result + + +def set_avg_auto_device_map(model, device_map): + block_name_list = get_block_names(model) + device_list = None + if isinstance(device_map, str) and "," in device_map: + device_list = [int(dev) for dev in device_map.split(",") if dev.isdigit()] + num_devices = len(device_list) + else: + if torch.cuda.is_available(): + num_devices = torch.cuda.device_count() + elif torch.xpu.is_available(): + logger.warning_once("XPU does not support auto device map yet, using device 0 for tuning.") + return + else: + return + + if device_list: + cuda_devices = [f"cuda:{i}" for i in device_list] + else: + cuda_devices = [f"cuda:{i}" for i in range(num_devices)] + + for block_names in block_name_list: + for block_name in block_names: + params_dict = {} + block_module = get_module(model, block_name) + for n, m in block_module.named_modules(): + in_features, out_features = get_layer_features(m) + params_dict[n] = in_features * out_features + + res_list = partition_dict_numbers(params_dict, num_devices) + device_index = 0 + for res in res_list: + for key in res.keys(): + tmp_m = get_module(model, key) + set_tuning_device_for_layer(block_module, tmp_m, cuda_devices[device_index]) + + +if __name__ == "__main__": + # Example usage + number_dict = {"item1": 90, "item2": 20, "item3": 30, "item4": 40, "item5": 50, "item6": 60} + + groups = partition_dict_numbers(number_dict, 10) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + + groups = partition_dict_numbers(number_dict, 6) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + + groups = partition_dict_numbers(number_dict, 4) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + + groups = partition_dict_numbers(number_dict, 3) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") + + groups = partition_dict_numbers(number_dict, 2) + for i, group in enumerate(groups): + print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") diff --git a/auto_round/utils_bk/__init__.py b/auto_round/utils_bk/__init__.py deleted file mode 100644 index 0d2740cdb..000000000 --- a/auto_round/utils_bk/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2025 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/auto_round/utils_bk/device.py b/auto_round/utils_bk/device.py deleted file mode 100644 index 9eb197af2..000000000 --- a/auto_round/utils_bk/device.py +++ /dev/null @@ -1,314 +0,0 @@ -# Copyright (c) 2025 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import re -from itertools import combinations -from typing import Union - -import torch - -from auto_round.logger import logger -from auto_round.utils import ( - check_to_quantized, - detect_device, - estimate_tuning_block_mem, - get_block_names, - get_device_memory, - get_layer_features, - get_module, -) - - -def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: - if isinstance(device_map, (str, torch.device, int)): - device = detect_device(device_map) - return device - - if isinstance(device_map, dict) and device_map: - tmp_devices = [] - for val in device_map.values(): - if isinstance(val, (str, torch.device, int)): # could optimize - tmp_device = detect_device(val) - tmp_device = tmp_device.split(":")[0] - tmp_devices.append(tmp_device) - tmp_devices = list(set(tmp_devices)) - if len(tmp_devices) > 1: - logger.warning( - f"there are multiple device types in the device_map, " - f"please make sure they are correct,use the first none-cpu device {tmp_devices[0]} as the core device " - ) - - for device in tmp_devices: - if device != "cpu": - return device - - device = tmp_devices[0] - return device - logger.warning(f"device_map should be [str, torch.device, int, dict], but got {type(device_map)}") - return "cpu" - - -def set_tuning_device_for_layer(model, name: str, device: str) -> None: - """Sets the device for a module if it matches the given name.""" - module = get_module(model, name) - if hasattr(module, "tuning_device") and module.tuning_device != device: - logger.warning( - f"multiple devices have been set for layer {name}, keeping original device {module.tuning_device}" - ) - else: - module.tuning_device = device - - -def set_non_auto_device_map( - model: torch.nn.Module, device_map: Union[str, int, dict], quant_layer_names: Union[None, list, tuple] = None -) -> None: - if not device_map: - return - if device_map == "auto": - return - if isinstance(device_map, str) and "," in device_map: # auto device map - return - if isinstance(device_map, int): - return - if isinstance(device_map, str): - device_map = device_map.replace(" ", "") - infos = device_map.split(",") - device_map_dict = {} - for info in infos: - index = info.find(":") - key = info[:index] - value = info[index + 1 :] - device_map_dict[key] = value - device_map = device_map_dict - if quant_layer_names is not None: - names = quant_layer_names - else: - names = [ - n for n, m in model.model.named_modules() if len(list(m.children())) == 0 - ] # if it's a block, it will be incorrect - for key, device in device_map.items(): - if isinstance(device, str) and device.isdigit(): - device = int(device) - device = detect_device(device) - if key in names: - module = get_module(model, key) - module.tuning_device = device - else: - matching_names = [name for name in names if re.match(key, name)] - for name in matching_names: - set_non_auto_device_map(model, name, device) - if not matching_names: - logger.warning(f"{key} in `device_map` dose not match any modules, please have a check") - - -def set_auto_device_map_for_block_with_tuning( - block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, mem_per_param_scale=13.0 -): - """Automatically sets the device map for the block based on available GPUs and memory constraints.""" - if torch.cuda.is_available(): - num_gpus = torch.cuda.device_count() - elif torch.xpu.is_available(): - logger.warning_once("XPU does not support auto device map yet, using device 0 for tuning.") - return - else: - raise RuntimeError("No CUDA or XPU devices found.") - device_list = None - if isinstance(device_map, str) and "," in device_map: - device_list = [int(dev) for dev in device_map.split(",") if dev.isdigit()] - - if device_list: - cuda_devices = [f"cuda:{i}" for i in device_list] - device_0 = cuda_devices[0] - else: - cuda_devices = [f"cuda:{i}" for i in range(num_gpus)] - device_0 = "cuda:0" - - device_0_memory = get_device_memory(device_list[0] if device_list else 0) - block_memory, input_output_memory = estimate_tuning_block_mem(block, input_ids) - if low_gpu_mem_usage: - input_output_memory = 0 - - if (block_memory * mem_per_param_scale + input_output_memory) < device_0_memory: - return # fit in one GPU - - device_map = {} - device_memory = {device: get_device_memory(int(device.split(":")[1])) for device in cuda_devices} - device_memory[device_0] = device_0_memory - input_output_memory - - device_idx = 0 - names = [] - # First, fill device 0 to its maximum capacity, then distribute the remaining layers evenly across other devices - for n, m in block.named_modules(): - if check_to_quantized(m): - layer_name = m.tmp_name - names.append(layer_name) - layer_memory = m.weight.nbytes / 1024**3 - if device_idx == 0 and layer_memory * mem_per_param_scale < device_memory[cuda_devices[device_idx]]: - device_map[layer_name] = cuda_devices[device_idx] - device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale - elif device_idx == 0: - device_idx += 1 # Move to the next device once device 0 is full - device_map[layer_name] = cuda_devices[device_idx] - device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale - else: - # Calculate the target device index based on even distribution - sorted_devices = sorted(cuda_devices, key=lambda d: device_memory[d], reverse=True) - device_idx = sorted_devices[0] - if layer_memory * mem_per_param_scale < device_memory[device_idx]: - device_map[layer_name] = device_idx - device_memory[device_idx] -= layer_memory * mem_per_param_scale - else: - logger.warning_once( - f"Block {block.tmp_name} not fit in available GPU memory. " - "Consider using more GPUs or reducing mem_per_param_scale if OOM occurs." - ) - - set_non_auto_device_map(block, device_map, names) - - -# -# def set_device_map_for_auto_scheme(model, device_map): -# if not device_map: -# return -# if device_map == "auto" or (isinstance(device_map, str) and "," in device_map): # auto device map -# set_avg_auto_device_map(model) -# else: -# set_non_auto_device_map(model, device_map) - - -def partition_dict_numbers(number_dict, n): - """ - Partition a dictionary of numbers into N groups with approximately equal sums - """ - # Edge cases - if n > len(number_dict): - groups = [] - for key, value in number_dict.items(): - groups.append({key: value}) - for _ in range(n - len(number_dict)): - groups.append({}) - return groups - - if n == len(number_dict): - return [{key: value} for key, value in number_dict.items()] - - total_sum = sum(number_dict.values()) - # target = total_sum / n # Use float for better precision - - items = list(number_dict.items()) - result = [] - remaining = items.copy() - - def find_optimal_subset(arr, target): - """Find subset with sum closest to target""" - best_subset = [] - best_diff = float("inf") - - # Try all possible subset sizes - for r in range(1, len(arr) + 1): - for combo in combinations(arr, r): - current_sum = sum(value for _, value in combo) - current_diff = abs(current_sum - target) - - # If we found a perfect match, return immediately - if current_diff == 0: - return list(combo) - - # Update the best subset if this is better - if current_diff < best_diff and current_sum <= total_sum: - best_diff = current_diff - best_subset = list(combo) - - return best_subset - - # Distribute items into n-1 groups - for i in range(n - 1): - if not remaining: - break - - # Calculate dynamic target based on remaining items - remaining_target = sum(value for _, value in remaining) / (n - i) - subset = find_optimal_subset(remaining, remaining_target) - - result.append(dict(subset)) - - # Remove allocated items - for item in subset: - remaining.remove(item) - - # Last group gets all remaining items - result.append(dict(remaining)) - - return result - - -def set_avg_auto_device_map(model, device_map): - block_name_list = get_block_names(model) - device_list = None - if isinstance(device_map, str) and "," in device_map: - device_list = [int(dev) for dev in device_map.split(",") if dev.isdigit()] - num_devices = len(device_list) - else: - if torch.cuda.is_available(): - num_devices = torch.cuda.device_count() - elif torch.xpu.is_available(): - logger.warning_once("XPU does not support auto device map yet, using device 0 for tuning.") - return - else: - return - - if device_list: - cuda_devices = [f"cuda:{i}" for i in device_list] - else: - cuda_devices = [f"cuda:{i}" for i in range(num_devices)] - - for block_names in block_name_list: - for block_name in block_names: - params_dict = {} - block_module = get_module(model, block_name) - for n, m in block_module.named_modules(): - in_features, out_features = get_layer_features(m) - params_dict[n] = in_features * out_features - - res_list = partition_dict_numbers(params_dict, num_devices) - device_index = 0 - for res in res_list: - for key in res.keys(): - tmp_m = get_module(model, key) - set_tuning_device_for_layer(block_module, tmp_m, cuda_devices[device_index]) - - -if __name__ == "__main__": - # Example usage - number_dict = {"item1": 90, "item2": 20, "item3": 30, "item4": 40, "item5": 50, "item6": 60} - - groups = partition_dict_numbers(number_dict, 10) - for i, group in enumerate(groups): - print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") - - groups = partition_dict_numbers(number_dict, 6) - for i, group in enumerate(groups): - print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") - - groups = partition_dict_numbers(number_dict, 4) - for i, group in enumerate(groups): - print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") - - groups = partition_dict_numbers(number_dict, 3) - for i, group in enumerate(groups): - print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") - - groups = partition_dict_numbers(number_dict, 2) - for i, group in enumerate(groups): - print(f"Group {i + 1}: {group}, Sum: {sum(group.values())}") From 7015847fd4335ca97ed1d42a6447f66ab264172b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 02:07:29 +0000 Subject: [PATCH 18/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/utils/device.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index b840510d1..b449c700c 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -13,16 +13,12 @@ # limitations under the License. import gc import os -from functools import lru_cache -from typing import Callable - -import cpuinfo - - import re +from functools import lru_cache from itertools import combinations -from typing import Union +from typing import Callable, Union +import cpuinfo import torch from auto_round.logger import logger @@ -36,7 +32,6 @@ get_module, ) - # Note on HPU usage: # There are two modes available for enabling auto-round on HPU: # 1. Compile Mode @@ -556,6 +551,7 @@ def get_device_memory(i: int = 0) -> int: raise RuntimeError("No supported device found (CUDA or XPU).") return total_memory + def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: if isinstance(device_map, (str, torch.device, int)): device = detect_device(device_map) From 9bdedae1ecd54936d24e73c21b7e6eaf6873da35 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 10:14:32 +0800 Subject: [PATCH 19/36] fix import issues --- auto_round/utils/device.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index b840510d1..f18d35708 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -26,15 +26,8 @@ import torch from auto_round.logger import logger -from auto_round.utils import ( - check_to_quantized, - detect_device, - estimate_tuning_block_mem, - get_block_names, - get_device_memory, - get_layer_features, - get_module, -) +from auto_round.utils.model import get_block_names,get_module,get_layer_features,check_to_quantized + # Note on HPU usage: From 55fcd51ae554937d0767b99553d5b470e525df03 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 02:16:51 +0000 Subject: [PATCH 20/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/utils/device.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 3be483f4f..fcb1ff3d9 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -22,8 +22,7 @@ import torch from auto_round.logger import logger -from auto_round.utils.model import get_block_names,get_module,get_layer_features,check_to_quantized - +from auto_round.utils.model import check_to_quantized, get_block_names, get_layer_features, get_module # Note on HPU usage: # There are two modes available for enabling auto-round on HPU: From ad6ba7a59eeaa9401cb5ebedd603dcc143b7e3be Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 11:45:37 +0800 Subject: [PATCH 21/36] update --- auto_round/auto_scheme/gen_auto_scheme.py | 1 + auto_round/utils/device.py | 28 ++++++++++++----------- test/test_cpu/test_gguf_format.py | 2 +- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/auto_round/auto_scheme/gen_auto_scheme.py b/auto_round/auto_scheme/gen_auto_scheme.py index b2f3b1ab2..fb876da6d 100644 --- a/auto_round/auto_scheme/gen_auto_scheme.py +++ b/auto_round/auto_scheme/gen_auto_scheme.py @@ -95,6 +95,7 @@ def get_layer_config(self) -> dict[str, dict]: device_map=self.device_map, enable_torch_compile=self.enable_torch_compile, disable_opt_rtn=self.disable_opt_rtn, + low_gpu_mem_usage=self.auto_scheme.low_gpu_mem_usage ) layer_config = self.fallback_gguf_layer_config(layer_config) return layer_config diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 3be483f4f..be79b447b 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -203,7 +203,7 @@ def detect_device_count(): return 0 -def detect_device(device: Union[str, int, torch.device] = None) -> str: +def detect_device(device: Union[None, str, int, torch.device] = None) -> str: """Detects the appropriate computation device. This function determines the device to use for computations. It can take @@ -545,8 +545,8 @@ def get_device_memory(i: int = 0) -> int: return total_memory -def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: - if isinstance(device_map, (str, torch.device, int)): +def get_major_device(device_map: Union[None, str, torch.device, int, dict]) -> str: + if device_map is None or isinstance(device_map, (str, torch.device, int)): device = detect_device(device_map) return device @@ -558,19 +558,21 @@ def get_major_device(device_map: Union[str, torch.device, int, dict]) -> str: tmp_device = tmp_device.split(":")[0] tmp_devices.append(tmp_device) tmp_devices = list(set(tmp_devices)) + device=None + for tmp_device in tmp_devices: + if device != "cpu": + device = tmp_device + break + if device is None: + device = tmp_devices[0] if len(tmp_devices) > 1: - logger.warning( + logger.warning_once( f"there are multiple device types in the device_map, " - f"please make sure they are correct,use the first none-cpu device {tmp_devices[0]} as the core device " + f"please make sure they are correct,use the first none-cpu device {device} as the core device " ) - for device in tmp_devices: - if device != "cpu": - return device - - device = tmp_devices[0] return device - logger.warning(f"device_map should be [str, torch.device, int, dict], but got {type(device_map)}") + logger.warning_once(f"device_map should be [str, torch.device, int, dict], but got {type(device_map)}") return "cpu" @@ -622,7 +624,7 @@ def set_non_auto_device_map( else: matching_names = [name for name in names if re.match(key, name)] for name in matching_names: - set_non_auto_device_map(model, name, device) + set_tuning_device_for_layer(model, name, device) if not matching_names: logger.warning(f"{key} in `device_map` dose not match any modules, please have a check") @@ -768,7 +770,7 @@ def find_optimal_subset(arr, target): return result -def set_avg_auto_device_map(model, device_map): +def set_avg_auto_device_map(model:torch.nn.Module, device_map): block_name_list = get_block_names(model) device_list = None if isinstance(device_map, str) and "," in device_map: diff --git a/test/test_cpu/test_gguf_format.py b/test/test_cpu/test_gguf_format.py index c366e264a..be7d663cd 100644 --- a/test/test_cpu/test_gguf_format.py +++ b/test/test_cpu/test_gguf_format.py @@ -339,7 +339,7 @@ def test_qtype_setting(self): # Qwen3-0.6B output q6_k, token_embed q4_0 448M # Qwen3-8B output q6_k, token_embed q4_0 4.5G # Llama-3.2-1B-Instruct o output, token_embed q6_k 736M - from auto_round.compressors import get_layer_config_by_gguf_format, set_layer_config + from auto_round.compressors.utils import set_layer_config from auto_round.export.export_to_gguf.config import ModelType model_name = "/tf_dataset/auto_round/models/Qwen/Qwen2.5-0.5B-Instruct" From 9fe31012a1ec1f77a9f19723b851f95e5c74c181 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 03:47:50 +0000 Subject: [PATCH 22/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/auto_scheme/gen_auto_scheme.py | 2 +- auto_round/utils/device.py | 4 ++-- test/test_cpu/test_gguf_format.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/auto_round/auto_scheme/gen_auto_scheme.py b/auto_round/auto_scheme/gen_auto_scheme.py index fb876da6d..d650bccca 100644 --- a/auto_round/auto_scheme/gen_auto_scheme.py +++ b/auto_round/auto_scheme/gen_auto_scheme.py @@ -95,7 +95,7 @@ def get_layer_config(self) -> dict[str, dict]: device_map=self.device_map, enable_torch_compile=self.enable_torch_compile, disable_opt_rtn=self.disable_opt_rtn, - low_gpu_mem_usage=self.auto_scheme.low_gpu_mem_usage + low_gpu_mem_usage=self.auto_scheme.low_gpu_mem_usage, ) layer_config = self.fallback_gguf_layer_config(layer_config) return layer_config diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 2cbe6532a..00606b5cb 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -557,7 +557,7 @@ def get_major_device(device_map: Union[None, str, torch.device, int, dict]) -> s tmp_device = tmp_device.split(":")[0] tmp_devices.append(tmp_device) tmp_devices = list(set(tmp_devices)) - device=None + device = None for tmp_device in tmp_devices: if device != "cpu": device = tmp_device @@ -769,7 +769,7 @@ def find_optimal_subset(arr, target): return result -def set_avg_auto_device_map(model:torch.nn.Module, device_map): +def set_avg_auto_device_map(model: torch.nn.Module, device_map): block_name_list = get_block_names(model) device_list = None if isinstance(device_map, str) and "," in device_map: diff --git a/test/test_cpu/test_gguf_format.py b/test/test_cpu/test_gguf_format.py index be7d663cd..91789e92a 100644 --- a/test/test_cpu/test_gguf_format.py +++ b/test/test_cpu/test_gguf_format.py @@ -339,7 +339,7 @@ def test_qtype_setting(self): # Qwen3-0.6B output q6_k, token_embed q4_0 448M # Qwen3-8B output q6_k, token_embed q4_0 4.5G # Llama-3.2-1B-Instruct o output, token_embed q6_k 736M - from auto_round.compressors.utils import set_layer_config + from auto_round.compressors.utils import set_layer_config from auto_round.export.export_to_gguf.config import ModelType model_name = "/tf_dataset/auto_round/models/Qwen/Qwen2.5-0.5B-Instruct" From 4af492444fb44abf2e24794460123b15d1358958 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 15:42:01 +0800 Subject: [PATCH 23/36] fix issues --- auto_round/schemes.py | 1 + auto_round/utils/device.py | 2 +- auto_round/utils/model.py | 13 ++++++------ auto_round/wrapper.py | 2 +- test/test_cuda/test_auto_scheme.py | 34 ++++++++++++++++++++++++++++-- 5 files changed, 42 insertions(+), 10 deletions(-) diff --git a/auto_round/schemes.py b/auto_round/schemes.py index 94eb17f2c..1e4dcdf2b 100644 --- a/auto_round/schemes.py +++ b/auto_round/schemes.py @@ -294,6 +294,7 @@ class AutoScheme: shared_layers: Optional[Iterable[Iterable[str]]] = None method: str = "default" ignore_scale_zp_bits: bool = False + batch_size: Optional[int] = None nsamples: Optional[int] = None seqlen: Optional[int] = None dataset: Optional[str] = None # Import Notice no comma for each item diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 00606b5cb..f2d2b58f0 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -611,7 +611,7 @@ def set_non_auto_device_map( names = quant_layer_names else: names = [ - n for n, m in model.model.named_modules() if len(list(m.children())) == 0 + n for n, m in model.named_modules() if len(list(m.children())) == 0 ] # if it's a block, it will be incorrect for key, device in device_map.items(): if isinstance(device, str) and device.isdigit(): diff --git a/auto_round/utils/model.py b/auto_round/utils/model.py index 63cb24a9f..38c9f55b6 100644 --- a/auto_round/utils/model.py +++ b/auto_round/utils/model.py @@ -18,11 +18,12 @@ from collections import UserDict from dataclasses import asdict, fields from pathlib import Path -from typing import Any, Callable, Dict, List, Tuple, Union +from typing import Union import torch import transformers + from auto_round.export.export_to_gguf.config import ModelType from auto_round.logger import logger from auto_round.schemes import QuantizationScheme @@ -263,7 +264,6 @@ def mllm_load_model( **kwargs, ): import transformers - from huggingface_hub import HfApi, HfFileSystem, hf_hub_download from transformers import AutoModel, AutoModelForCausalLM, AutoProcessor, AutoTokenizer from auto_round.utils.device import get_device_and_parallelism, set_fake_cuda_device_capability @@ -732,7 +732,7 @@ def set_nested_attr(module, attr_name: str, value): setattr(module, attrs[-1], value) -def _pad_weight(weight: torch.Tensor, block_size: list) -> Tuple[torch.Tensor, int, int]: +def _pad_weight(weight: torch.Tensor, block_size: list) -> tuple[torch.Tensor, int, int]: """Pads a matrix to make its dimensions multiples of block_size.""" M, N = weight.shape[-2:] block_size_m, block_size_n = block_size @@ -757,7 +757,7 @@ def _unpad_weight(weight: torch.Tensor, original_M: int, original_N: int, keep_f def pad_block_fp8_weight_naive( weight: torch.Tensor, weight_scale: torch.Tensor, block_size: list -) -> Tuple[torch.Tensor, int, int]: +) -> tuple[torch.Tensor, int, int]: assert len(block_size) == 2 block_size_m, block_size_n = block_size @@ -946,8 +946,9 @@ def set_module(model, key, new_module): def get_layer_features(layer): """Extracts input and output feature dimensions for supported layers.""" - from auto_round.utils.common import LinearAllreduce, LinearLayer, deepspeed_exists - + from auto_round.utils import deepspeed_exists + if deepspeed_exists: + from deepspeed.module_inject import LinearAllreduce, LinearLayer if type(layer) == torch.nn.Linear: return layer.in_features, layer.out_features elif type(layer) == transformers.pytorch_utils.Conv1D: # TODO: Verify correctness diff --git a/auto_round/wrapper.py b/auto_round/wrapper.py index 7bb6381e2..48535aeda 100644 --- a/auto_round/wrapper.py +++ b/auto_round/wrapper.py @@ -366,7 +366,7 @@ def _set_dict_attr(attr_dict, attr_name): assert global_scale.numel() == 1 self.orig_layer.weight_global_scale = global_scale.to("cpu") - ##unwrapper bias + # Unwrapper bias if self.enable_norm_bias_tuning and "bias_v" in best_params.keys(): ##fake quant bias_v = best_params["bias_v"].to(self.device) bias = self.orig_layer.bias diff --git a/test/test_cuda/test_auto_scheme.py b/test/test_cuda/test_auto_scheme.py index 5b7116768..ab740ae93 100644 --- a/test/test_cuda/test_auto_scheme.py +++ b/test/test_cuda/test_auto_scheme.py @@ -83,10 +83,40 @@ def test_shared_layers(self): # @multi_card def test_multi_card(self): - model_name = "/models/Qwen3-8B" + model_name = "/models/Qwen3-0.6B" target_bits = 5.254 - # for device_map in ["auto", "0,1", "0", None]: + for device_map in ["auto", "0,1", "0", None]: + scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4")) + ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1,device_map=device_map) + model, layer_config = ar.quantize() + avg_bits, _ = compute_avg_bits_for_model(model) + print(avg_bits) + assert target_bits - 0.1 < avg_bits <= target_bits + 1e-3 + + @multi_card + def test_multi_card_1(self): + model_name = "/models/Qwen3-0.6B" + target_bits = 5.254 + from transformers import AutoModelForCausalLM, AutoTokenizer + tokenizer = AutoTokenizer.from_pretrained(model_name) + model = AutoModelForCausalLM.from_pretrained( + model_name, + torch_dtype="auto", + device_map="auto" + ) scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4")) + ar = AutoRound(model=model,tokenizer=tokenizer, scheme=scheme, iters=0, nsamples=1) + model, layer_config = ar.quantize() + avg_bits, _ = compute_avg_bits_for_model(model) + print(avg_bits) + assert target_bits - 0.1 < avg_bits <= target_bits + 1e-3 + + + def test_non_low_gpu_mem_usage(self): + model_name = "/models/Qwen3-0.6B" + target_bits = 5.254 + # for device_map in ["auto", "0,1", "0", None]: + scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4"),low_gpu_mem_usage=False) ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1) model, layer_config = ar.quantize() avg_bits, _ = compute_avg_bits_for_model(model) From 5057b5ef30826090dc4bb90577bfff4298e505e0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 07:42:41 +0000 Subject: [PATCH 24/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/utils/model.py | 2 +- test/test_cuda/test_auto_scheme.py | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/auto_round/utils/model.py b/auto_round/utils/model.py index 38c9f55b6..7a1c66de8 100644 --- a/auto_round/utils/model.py +++ b/auto_round/utils/model.py @@ -23,7 +23,6 @@ import torch import transformers - from auto_round.export.export_to_gguf.config import ModelType from auto_round.logger import logger from auto_round.schemes import QuantizationScheme @@ -947,6 +946,7 @@ def set_module(model, key, new_module): def get_layer_features(layer): """Extracts input and output feature dimensions for supported layers.""" from auto_round.utils import deepspeed_exists + if deepspeed_exists: from deepspeed.module_inject import LinearAllreduce, LinearLayer if type(layer) == torch.nn.Linear: diff --git a/test/test_cuda/test_auto_scheme.py b/test/test_cuda/test_auto_scheme.py index ab740ae93..663abcba5 100644 --- a/test/test_cuda/test_auto_scheme.py +++ b/test/test_cuda/test_auto_scheme.py @@ -87,7 +87,7 @@ def test_multi_card(self): target_bits = 5.254 for device_map in ["auto", "0,1", "0", None]: scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4")) - ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1,device_map=device_map) + ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1, device_map=device_map) model, layer_config = ar.quantize() avg_bits, _ = compute_avg_bits_for_model(model) print(avg_bits) @@ -98,25 +98,21 @@ def test_multi_card_1(self): model_name = "/models/Qwen3-0.6B" target_bits = 5.254 from transformers import AutoModelForCausalLM, AutoTokenizer + tokenizer = AutoTokenizer.from_pretrained(model_name) - model = AutoModelForCausalLM.from_pretrained( - model_name, - torch_dtype="auto", - device_map="auto" - ) + model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto") scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4")) - ar = AutoRound(model=model,tokenizer=tokenizer, scheme=scheme, iters=0, nsamples=1) + ar = AutoRound(model=model, tokenizer=tokenizer, scheme=scheme, iters=0, nsamples=1) model, layer_config = ar.quantize() avg_bits, _ = compute_avg_bits_for_model(model) print(avg_bits) assert target_bits - 0.1 < avg_bits <= target_bits + 1e-3 - def test_non_low_gpu_mem_usage(self): model_name = "/models/Qwen3-0.6B" target_bits = 5.254 # for device_map in ["auto", "0,1", "0", None]: - scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4"),low_gpu_mem_usage=False) + scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4"), low_gpu_mem_usage=False) ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1) model, layer_config = ar.quantize() avg_bits, _ = compute_avg_bits_for_model(model) From dcb7ff2a3f5f4b2172d8680818911cc36d599164 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 16:56:27 +0800 Subject: [PATCH 25/36] fix issues --- auto_round/autoround.py | 2 +- auto_round/wrapper.py | 2 +- test/test_cuda/test_auto_scheme.py | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/auto_round/autoround.py b/auto_round/autoround.py index 4716f173b..a78c94737 100644 --- a/auto_round/autoround.py +++ b/auto_round/autoround.py @@ -13,7 +13,7 @@ # limitations under the License. from __future__ import annotations -from typing import Any, Callable, Union +from typing import Union import torch diff --git a/auto_round/wrapper.py b/auto_round/wrapper.py index 48535aeda..67072d762 100644 --- a/auto_round/wrapper.py +++ b/auto_round/wrapper.py @@ -236,7 +236,7 @@ def _qdq_weight(self, value, min_scale, max_scale): quant_kwargs["super_group_size"] = self.orig_layer.super_group_size weight_q, scale, zp = self.weight_quant_func( - weight, + weight.to(self.device), bits=self.orig_layer.bits, group_size=self.orig_layer.group_size, v=value, diff --git a/test/test_cuda/test_auto_scheme.py b/test/test_cuda/test_auto_scheme.py index ab740ae93..a6d339469 100644 --- a/test/test_cuda/test_auto_scheme.py +++ b/test/test_cuda/test_auto_scheme.py @@ -84,7 +84,7 @@ def test_shared_layers(self): @multi_card def test_multi_card(self): model_name = "/models/Qwen3-0.6B" - target_bits = 5.254 + target_bits = 5.265 for device_map in ["auto", "0,1", "0", None]: scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4")) ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1,device_map=device_map) @@ -96,7 +96,7 @@ def test_multi_card(self): @multi_card def test_multi_card_1(self): model_name = "/models/Qwen3-0.6B" - target_bits = 5.254 + target_bits = 5.265 from transformers import AutoModelForCausalLM, AutoTokenizer tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained( @@ -114,7 +114,7 @@ def test_multi_card_1(self): def test_non_low_gpu_mem_usage(self): model_name = "/models/Qwen3-0.6B" - target_bits = 5.254 + target_bits = 5.265 # for device_map in ["auto", "0,1", "0", None]: scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4"),low_gpu_mem_usage=False) ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1) From c91bbaef3018b5f3ee713bf017df1a730d00a5b8 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 17:40:16 +0800 Subject: [PATCH 26/36] fix bug --- auto_round/utils/device.py | 26 +++++++++++++++----------- test/test_cuda/test_auto_scheme.py | 2 +- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index f2d2b58f0..19fad4888 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -24,6 +24,7 @@ from auto_round.logger import logger from auto_round.utils.model import check_to_quantized, get_block_names, get_layer_features, get_module + # Note on HPU usage: # There are two modes available for enabling auto-round on HPU: # 1. Compile Mode @@ -82,7 +83,7 @@ def compile_func_on_cuda_or_cpu(func): def compile_func( - fun: Union[torch.nn.Module, Callable], device: Union[str, torch.device, int] + fun: Union[torch.nn.Module, Callable], device: Union[str, torch.device, int] ) -> Union[torch.nn.Module, Callable]: """Compile function on the specified device.""" if "hpu" in str(device): @@ -480,10 +481,10 @@ def estimate_tuning_block_mem(block: torch.nn.Module, input_ids: list[torch.Tens if check_to_quantized(module): param_size = module.weight.nbytes total_param_mem += param_size - block_memory = total_param_mem / 1024**3 # Convert to GB + block_memory = total_param_mem / 1024 ** 3 # Convert to GB # Assuming bfloat16 or float32, input and output - input_output_memory = 2 * sum(tensor.nbytes for tensor in input_ids) / 1024**3 + input_output_memory = 2 * sum(tensor.nbytes for tensor in input_ids) / 1024 ** 3 return block_memory, input_output_memory @@ -511,13 +512,13 @@ def get_max_vram(ratio: float = 0.9) -> dict: num_devices = torch.cuda.device_count() for i in range(num_devices): total_mem = torch.cuda.get_device_properties(i).total_memory - max_mem_gb = int(total_mem / 1024**3 * ratio) + max_mem_gb = int(total_mem / 1024 ** 3 * ratio) max_memory[i] = f"{max_mem_gb}GiB" elif torch.xpu.is_available(): # TODO need verification num_devices = torch.xpu.device_count() for i in range(num_devices): total_mem = torch.xpu.get_device_properties(i).total_memory - max_mem_gb = int(total_mem / 1024**3 * ratio) + max_mem_gb = int(total_mem / 1024 ** 3 * ratio) max_memory[i] = f"{max_mem_gb}GiB" else: @@ -587,7 +588,7 @@ def set_tuning_device_for_layer(model, name: str, device: str) -> None: def set_non_auto_device_map( - model: torch.nn.Module, device_map: Union[str, int, dict], quant_layer_names: Union[None, list, tuple] = None + model: torch.nn.Module, device_map: Union[str, int, dict], quant_layer_names: Union[None, list, tuple] = None ) -> None: if not device_map: return @@ -604,7 +605,7 @@ def set_non_auto_device_map( for info in infos: index = info.find(":") key = info[:index] - value = info[index + 1 :] + value = info[index + 1:] device_map_dict[key] = value device_map = device_map_dict if quant_layer_names is not None: @@ -629,7 +630,8 @@ def set_non_auto_device_map( def set_auto_device_map_for_block_with_tuning( - block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, mem_per_param_scale=13.0 + block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, + mem_per_param_scale=13.0 ): """Automatically sets the device map for the block based on available GPUs and memory constraints.""" if torch.cuda.is_available(): @@ -669,7 +671,7 @@ def set_auto_device_map_for_block_with_tuning( if check_to_quantized(m): layer_name = m.tmp_name names.append(layer_name) - layer_memory = m.weight.nbytes / 1024**3 + layer_memory = m.weight.nbytes / 1024 ** 3 if device_idx == 0 and layer_memory * mem_per_param_scale < device_memory[cuda_devices[device_idx]]: device_map[layer_name] = cuda_devices[device_idx] device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale @@ -795,14 +797,16 @@ def set_avg_auto_device_map(model: torch.nn.Module, device_map): block_module = get_module(model, block_name) for n, m in block_module.named_modules(): in_features, out_features = get_layer_features(m) + if in_features is None: + continue params_dict[n] = in_features * out_features res_list = partition_dict_numbers(params_dict, num_devices) device_index = 0 for res in res_list: for key in res.keys(): - tmp_m = get_module(model, key) - set_tuning_device_for_layer(block_module, tmp_m, cuda_devices[device_index]) + set_tuning_device_for_layer(block_module, key, cuda_devices[device_index]) + device_index += 1 if __name__ == "__main__": diff --git a/test/test_cuda/test_auto_scheme.py b/test/test_cuda/test_auto_scheme.py index a6d339469..498c0a3fd 100644 --- a/test/test_cuda/test_auto_scheme.py +++ b/test/test_cuda/test_auto_scheme.py @@ -116,7 +116,7 @@ def test_non_low_gpu_mem_usage(self): model_name = "/models/Qwen3-0.6B" target_bits = 5.265 # for device_map in ["auto", "0,1", "0", None]: - scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4"),low_gpu_mem_usage=False) + scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4"),low_gpu_mem_usage=False,device_map="auto") ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1) model, layer_config = ar.quantize() avg_bits, _ = compute_avg_bits_for_model(model) From 8e0bfa49b2ff42c181137cc30db218348b4fbcf5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 09:41:52 +0000 Subject: [PATCH 27/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/utils/device.py | 20 +++++++++----------- test/test_cuda/test_auto_scheme.py | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 19fad4888..b92ab2074 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -24,7 +24,6 @@ from auto_round.logger import logger from auto_round.utils.model import check_to_quantized, get_block_names, get_layer_features, get_module - # Note on HPU usage: # There are two modes available for enabling auto-round on HPU: # 1. Compile Mode @@ -83,7 +82,7 @@ def compile_func_on_cuda_or_cpu(func): def compile_func( - fun: Union[torch.nn.Module, Callable], device: Union[str, torch.device, int] + fun: Union[torch.nn.Module, Callable], device: Union[str, torch.device, int] ) -> Union[torch.nn.Module, Callable]: """Compile function on the specified device.""" if "hpu" in str(device): @@ -481,10 +480,10 @@ def estimate_tuning_block_mem(block: torch.nn.Module, input_ids: list[torch.Tens if check_to_quantized(module): param_size = module.weight.nbytes total_param_mem += param_size - block_memory = total_param_mem / 1024 ** 3 # Convert to GB + block_memory = total_param_mem / 1024**3 # Convert to GB # Assuming bfloat16 or float32, input and output - input_output_memory = 2 * sum(tensor.nbytes for tensor in input_ids) / 1024 ** 3 + input_output_memory = 2 * sum(tensor.nbytes for tensor in input_ids) / 1024**3 return block_memory, input_output_memory @@ -512,13 +511,13 @@ def get_max_vram(ratio: float = 0.9) -> dict: num_devices = torch.cuda.device_count() for i in range(num_devices): total_mem = torch.cuda.get_device_properties(i).total_memory - max_mem_gb = int(total_mem / 1024 ** 3 * ratio) + max_mem_gb = int(total_mem / 1024**3 * ratio) max_memory[i] = f"{max_mem_gb}GiB" elif torch.xpu.is_available(): # TODO need verification num_devices = torch.xpu.device_count() for i in range(num_devices): total_mem = torch.xpu.get_device_properties(i).total_memory - max_mem_gb = int(total_mem / 1024 ** 3 * ratio) + max_mem_gb = int(total_mem / 1024**3 * ratio) max_memory[i] = f"{max_mem_gb}GiB" else: @@ -588,7 +587,7 @@ def set_tuning_device_for_layer(model, name: str, device: str) -> None: def set_non_auto_device_map( - model: torch.nn.Module, device_map: Union[str, int, dict], quant_layer_names: Union[None, list, tuple] = None + model: torch.nn.Module, device_map: Union[str, int, dict], quant_layer_names: Union[None, list, tuple] = None ) -> None: if not device_map: return @@ -605,7 +604,7 @@ def set_non_auto_device_map( for info in infos: index = info.find(":") key = info[:index] - value = info[index + 1:] + value = info[index + 1 :] device_map_dict[key] = value device_map = device_map_dict if quant_layer_names is not None: @@ -630,8 +629,7 @@ def set_non_auto_device_map( def set_auto_device_map_for_block_with_tuning( - block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, - mem_per_param_scale=13.0 + block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, mem_per_param_scale=13.0 ): """Automatically sets the device map for the block based on available GPUs and memory constraints.""" if torch.cuda.is_available(): @@ -671,7 +669,7 @@ def set_auto_device_map_for_block_with_tuning( if check_to_quantized(m): layer_name = m.tmp_name names.append(layer_name) - layer_memory = m.weight.nbytes / 1024 ** 3 + layer_memory = m.weight.nbytes / 1024**3 if device_idx == 0 and layer_memory * mem_per_param_scale < device_memory[cuda_devices[device_idx]]: device_map[layer_name] = cuda_devices[device_idx] device_memory[cuda_devices[device_idx]] -= layer_memory * mem_per_param_scale diff --git a/test/test_cuda/test_auto_scheme.py b/test/test_cuda/test_auto_scheme.py index f6ea23e85..ac486fef4 100644 --- a/test/test_cuda/test_auto_scheme.py +++ b/test/test_cuda/test_auto_scheme.py @@ -112,7 +112,7 @@ def test_non_low_gpu_mem_usage(self): model_name = "/models/Qwen3-0.6B" target_bits = 5.265 # for device_map in ["auto", "0,1", "0", None]: - scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4"),low_gpu_mem_usage=False,device_map="auto") + scheme = AutoScheme(avg_bits=target_bits, options=("NVFP4"), low_gpu_mem_usage=False, device_map="auto") ar = AutoRound(model=model_name, scheme=scheme, iters=0, nsamples=1) model, layer_config = ar.quantize() From c5223a732dabdaa1a055119c2c8600bee327c257 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 21:03:25 +0800 Subject: [PATCH 28/36] update --- auto_round/auto_scheme/default_alg.abi3.so | Bin 346072 -> 499128 bytes auto_round/compressors/base.py | 22 ++++++---------- docs/step_by_step.md | 28 +++++++++++++++++---- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/auto_round/auto_scheme/default_alg.abi3.so b/auto_round/auto_scheme/default_alg.abi3.so index 83da28647bce2eac676c827a3f2149eaf34e2b9a..02045ecd67c14cfa9ac335d0aec6e6bddab8fe5b 100644 GIT binary patch literal 499128 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 B^s98{M1YFbfUYw+B4;Mjcqc2auA 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 z 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 Y4) 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 aKEYRgl%q|Nv4g_?-M9EB>1g__D}MnJC%F#* literal 346072 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
+Cost w/o low_gpu_mem_usage + +| Models | Scheme | VRAM Cost
(torch compile) | Time Cost
torch compile | VRAM Cost
wo torch compile | Time Cost
wo torch compile | +| --------- | ----------------- | ------------------------------- | ----------------------------- | -------------------------------- | -------------------------------- | +| Qwen3-8B | W2A16/W4A16/W8A16 | 34G | 30s * len of options | 61G | 40s * len of options | +| Qwen3-8B | MXFP4/MXFP8 | 36G | 60s * len of options | 54G | 120s * len of options | +| Qwen3-8B | GGUF* | 54G | 30s * len of options | 50G | 23S * len of options | +| Qwen3-32B | W2A16/W4A16/W8A16 | OOM with 240G | --- | OOM with 240G | --- | +| Qwen3-32B | MXFP4/MXFP8 | 160G | 200s * len of options | 200G | 240s * len of options | +| Qwen3-32B | GGUF* | 210G | 80s * len of options | 200G | 60s * len of options | +
+ | Models | Scheme | VRAM Cost
(torch compile) | Time Cost
torch compile | VRAM Cost
wo torch compile | Time Cost
wo torch compile | | --------- | ----------------- | ------------------------------- | ----------------------------- | -------------------------------- | -------------------------------- | From 3ab18ffd280f337d423905beccc67a6eab482fce Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 21:19:52 +0800 Subject: [PATCH 29/36] update --- auto_round/auto_scheme/default_alg.abi3.so | Bin 499128 -> 499128 bytes docs/step_by_step.md | 23 ++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/auto_round/auto_scheme/default_alg.abi3.so b/auto_round/auto_scheme/default_alg.abi3.so index 02045ecd67c14cfa9ac335d0aec6e6bddab8fe5b..48bccb692c8d3325f558f847596466f7817f3ef7 100644 GIT binary patch delta 32582 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 N0jT7hooe35{{c&IZ@>Tm delta 32888 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
#?8in^(2_6Hi}8&3z8F)%!4xE*xH@ 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 diff --git a/docs/step_by_step.md b/docs/step_by_step.md index c28c7d9cf..02c99ead0 100644 --- a/docs/step_by_step.md +++ b/docs/step_by_step.md @@ -318,7 +318,7 @@ ar.quantize_and_save() `batch_size (Optional[int])` could be set to 1 to reduce VRAM but increase time cost -`low_gpu_mem_usage(bool=True)` whether to reduct gpu memory usage +`low_gpu_mem_usage(bool=True)` whether to reduce gpu memory usage at the cost of more time cost In some serving frameworks, certain layers (e.g., QKV or MoE) are fused to accelerate inference. These fused layers may require the same data type and bit configuration. The shared_layers option simplifies this setup by supporting both regex and full-name matching. **Note that regex matching is applied in a block-wise manner.** @@ -357,6 +357,16 @@ We tested it on Nvidia A100 80G using torch v2.8. We will try to optimize the RAM usage in the future. The RAM usage is about 1.1-1.5x of the model's BF16 size +| Models | Scheme | VRAM Cost | Time Cost | +| ------------- | --------------------- | --------- | --------------------- | +| Qwen3-8B | W2A16 / W4A16 / W8A16 | 14G | 60s * len of options | +| Qwen3-8B | MXFP4 / MXFP8 | 18G | 60s * len of options | +| Qwen3-8B | GGUF* | 14G | 80s * len of options | +| Qwen3-32B | W2A16 / W4A16 / W8A16 | 29G | 180s* len of options | +| Qwen3-32B | MXFP4 / MXFP8 | 29G | 180s* len of options | +| Qwen3-32B | GGUF* | 18G | 300s * len of options | +| Llama-3.3-70B | W2A16 / W4A16 / W8A16 | 32G | 420s * len of options | +
Cost w/o low_gpu_mem_usage @@ -371,17 +381,6 @@ We will try to optimize the RAM usage in the future. The RAM usage is about 1.1-
-| Models | Scheme | VRAM Cost
(torch compile) | Time Cost
torch compile | VRAM Cost
wo torch compile | Time Cost
wo torch compile | -| --------- | ----------------- | ------------------------------- | ----------------------------- | -------------------------------- | -------------------------------- | -| Qwen3-8B | W2A16/W4A16/W8A16 | 34G | 30s * len of options | 61G | 40s * len of options | -| Qwen3-8B | MXFP4/MXFP8 | 36G | 60s * len of options | 54G | 120s * len of options | -| Qwen3-8B | GGUF* | 54G | 30s * len of options | 50G | 23S * len of options | -| Qwen3-32B | W2A16/W4A16/W8A16 | OOM with 240G | --- | OOM with 240G | --- | -| Qwen3-32B | MXFP4/MXFP8 | 160G | 200s * len of options | 200G | 240s * len of options | -| Qwen3-32B | GGUF* | 210G | 80s * len of options | 200G | 60s * len of options | - - - #### Limitations Embedding layer is not supported in AutoScheme, it will use the best scheme in options. From 9e67c158a008bf92ac7ded77292f021bd1732024 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 21:22:33 +0800 Subject: [PATCH 30/36] clean code --- auto_round/utils/device.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index b92ab2074..374dfab00 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -693,16 +693,6 @@ def set_auto_device_map_for_block_with_tuning( set_non_auto_device_map(block, device_map, names) -# -# def set_device_map_for_auto_scheme(model, device_map): -# if not device_map: -# return -# if device_map == "auto" or (isinstance(device_map, str) and "," in device_map): # auto device map -# set_avg_auto_device_map(model) -# else: -# set_non_auto_device_map(model, device_map) - - def partition_dict_numbers(number_dict, n): """ Partition a dictionary of numbers into N groups with approximately equal sums From 3fe8d087868066d898907736ef9baa92966a53e9 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 21:27:02 +0800 Subject: [PATCH 31/36] Update auto_round/utils/device.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- auto_round/utils/device.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 374dfab00..35a56ee6d 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -559,7 +559,7 @@ def get_major_device(device_map: Union[None, str, torch.device, int, dict]) -> s tmp_devices = list(set(tmp_devices)) device = None for tmp_device in tmp_devices: - if device != "cpu": + if tmp_device != "cpu": device = tmp_device break if device is None: From cb560f355f1786d32f940b7a11cc43318118a781 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 21:27:59 +0800 Subject: [PATCH 32/36] Update auto_round/utils/device.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- auto_round/utils/device.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 35a56ee6d..c5af8a269 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -631,7 +631,28 @@ def set_non_auto_device_map( def set_auto_device_map_for_block_with_tuning( block: torch.nn.Module, device_map, input_ids: list[torch.Tensor], low_gpu_mem_usage=False, mem_per_param_scale=13.0 ): - """Automatically sets the device map for the block based on available GPUs and memory constraints.""" + """ + Automatically sets the device map for the block based on available GPUs and memory constraints. + + Args: + block (torch.nn.Module): The model block whose device map is to be set. + device_map (str | int | dict): Specifies the device mapping. Can be a string (e.g., "0,1"), integer, or dictionary mapping layer names to devices. + input_ids (list[torch.Tensor]): List of input tensors used for estimating memory requirements. + low_gpu_mem_usage (bool, optional): If True, reduces memory usage estimation by ignoring input/output memory. Defaults to False. + mem_per_param_scale (float, optional): Scaling factor for estimating memory usage per parameter in the block. + Typical values range from 10.0 to 20.0 depending on model size and GPU memory characteristics. + Higher values are more conservative and help avoid out-of-memory errors. Defaults to 13.0. + + Returns: + None + + Raises: + RuntimeError: If no CUDA or XPU devices are found. + + Note: + This function is intended for internal use in device memory management and tuning. + The mem_per_param_scale parameter should be adjusted based on empirical memory usage observations. + """ if torch.cuda.is_available(): num_gpus = torch.cuda.device_count() elif torch.xpu.is_available(): From 8987254d02cf65bf65c336ec5486bbb71cc4cb54 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 21:28:35 +0800 Subject: [PATCH 33/36] Update docs/step_by_step.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/step_by_step.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/step_by_step.md b/docs/step_by_step.md index 02c99ead0..f692543b7 100644 --- a/docs/step_by_step.md +++ b/docs/step_by_step.md @@ -306,7 +306,7 @@ ar.quantize_and_save() ~~~ #### Hyperparameters in AutoScheme -`avg_bits(float)` Target average bits for the whole model, only to be quantized layer will be counted in the average bits calculation. +`avg_bits(float)` Target average bits for the whole model; only layers to be quantized will be counted in the average bits calculation. `options(Union[str, list[Union[QuantizationScheme, str]])` the options of quantization schemes to choose from. It could be a string like "W4A16", or a list of strings or QuantizationScheme objects. From c3c082399252de5ae81b15947e739dc4142a4fac Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 13:28:44 +0000 Subject: [PATCH 34/36] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- auto_round/utils/device.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index c5af8a269..58bb5f27d 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -639,8 +639,8 @@ def set_auto_device_map_for_block_with_tuning( device_map (str | int | dict): Specifies the device mapping. Can be a string (e.g., "0,1"), integer, or dictionary mapping layer names to devices. input_ids (list[torch.Tensor]): List of input tensors used for estimating memory requirements. low_gpu_mem_usage (bool, optional): If True, reduces memory usage estimation by ignoring input/output memory. Defaults to False. - mem_per_param_scale (float, optional): Scaling factor for estimating memory usage per parameter in the block. - Typical values range from 10.0 to 20.0 depending on model size and GPU memory characteristics. + mem_per_param_scale (float, optional): Scaling factor for estimating memory usage per parameter in the block. + Typical values range from 10.0 to 20.0 depending on model size and GPU memory characteristics. Higher values are more conservative and help avoid out-of-memory errors. Defaults to 13.0. Returns: @@ -650,7 +650,7 @@ def set_auto_device_map_for_block_with_tuning( RuntimeError: If no CUDA or XPU devices are found. Note: - This function is intended for internal use in device memory management and tuning. + This function is intended for internal use in device memory management and tuning. The mem_per_param_scale parameter should be adjusted based on empirical memory usage observations. """ if torch.cuda.is_available(): From bde5f2096d61f6520959834897f04f5ac29f9096 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 21:35:26 +0800 Subject: [PATCH 35/36] fix line too long issue --- auto_round/utils/device.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/auto_round/utils/device.py b/auto_round/utils/device.py index 58bb5f27d..850c95343 100644 --- a/auto_round/utils/device.py +++ b/auto_round/utils/device.py @@ -636,9 +636,9 @@ def set_auto_device_map_for_block_with_tuning( Args: block (torch.nn.Module): The model block whose device map is to be set. - device_map (str | int | dict): Specifies the device mapping. Can be a string (e.g., "0,1"), integer, or dictionary mapping layer names to devices. + device_map (str | int | dict): Specifies the device mapping. input_ids (list[torch.Tensor]): List of input tensors used for estimating memory requirements. - low_gpu_mem_usage (bool, optional): If True, reduces memory usage estimation by ignoring input/output memory. Defaults to False. + low_gpu_mem_usage (bool, optional): If True, ignoring input/output memory. Defaults to False. mem_per_param_scale (float, optional): Scaling factor for estimating memory usage per parameter in the block. Typical values range from 10.0 to 20.0 depending on model size and GPU memory characteristics. Higher values are more conservative and help avoid out-of-memory errors. Defaults to 13.0. From 035c04648b6856f0c19bb37cfc1570e90c93b8e3 Mon Sep 17 00:00:00 2001 From: Wenhua Cheng Date: Tue, 28 Oct 2025 22:01:22 +0800 Subject: [PATCH 36/36] fix ut --- auto_round/auto_scheme/default_alg.abi3.so | Bin 499128 -> 499128 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/auto_round/auto_scheme/default_alg.abi3.so b/auto_round/auto_scheme/default_alg.abi3.so index 48bccb692c8d3325f558f847596466f7817f3ef7..220fb3ce50652fb00a1beb87c87f2d20f4e9b2e8 100644 GIT binary patch delta 141941 zcmZ^Md07rG5<+A{>>;V`2|*O4mWt9=(Kgzsy@^Wjh-h?LL$yR} zEhQQy_E<_U z;e8*K`RuGWtKfI@7=ItTCQf>Flj)XzQ^>~$dZiaBJ?+$QqjVig40vE`9WOQD$$mOs zVZc*-bljAtU+w(kz4WrXj(0WL2}K?{A<)nuL*dZ|Jf5>4uXK~5CL5@wjdX4)20TyU zsRlen;TZ-zPjw^LfSdGgq?_^#gd%rcaJ~_5s^dilJVVtlG2r?Bdi_!Z-b;;7g~Y>6 zRrX75qc<>3*ROWF#w)?@e0&S9^gshOS`A;c0e5e!bBQp)(eV@mp4wc; zQ*}JOO5F@koseN@P!g=;xdyyg^*hgiCkN{F^9^{avR_dxJl$kE8KE~QsYSq)@YL~A z13ooU$14nYbTb_{y{%vE_I6hj#od4xH9@_)kQ2x~LcP+X4dl(rfbj-=pXztA0WVZ| ziUHrP@Kghyr|=9N=Wm2KCz_P1xrVwXHTZc3yj0=&2K*vF65^G1fVcdZou3sJV(=vH|a*@Du~SS8+=< z;O@!+GYoha#V1$Ct3AIWOz&5op+T;iiundSgB%C{iVS$XJ#rXucVE4JX)U~)$&{-+ zwxSlnWOBEA^32)>&sB`v`Sn(a90qDdfL=S=faj|T9B;r&RQ+TFp4v+1lVZS2l^dk$ zc%!Pwu~_+82Hy#_at+OjRI@w-UeZDrlW)MIgLJ&efS0OKDly>6%4X<+AA^D zKuuQN$S~mfYWQ*uc$k{qd37}a=NTHjtQMtw1D>MrA_JbR_>>s%FI7-0t%bv>+SmRk&%6 zuCd*lLly4M*M)nrKpxZ9%Ol!QCxg!q_u{E-ometo-qtHU#X#R`kFW+jQ1Q+%;L&RE za}9XDJ-{09V*B!?KQk38l1DkmaFgmlyaE40SuUA-#K7JLs=KmBssWEz?weu2SE}yi8t|D)N}d5vwkH=l zUTyDuMJO^fi1yd*Q)0l~)#_Vnz$?`9RAIn#RiH4X*R(fgmV0v@aIZx$nf_9C4K&~x zicz!yuTWcrcmrOnLT0i7FQIi;Miv7hRS8Hn;O@#XG7NaU@}yh?{)g&7o&hgZ3grWL zrI~D>xqW#;JFoN#yTJ|3a_tUoz*AJ{uQ1^8O1vqfrom07H02rY2Hd9C=RdXca4uDC zqxt;yUM!yPZ13fhY^dK=)k)#k+k2&_8mP(2h#3YvRY}h^;476;@(lQ5yRi)TOobQe zI6vFoIk7}}K#8Gl2c>DL0l%#93IiU=gF1NmoUq$zer@|r4GU50_0p`;`m@Gxbk6a((A zVp^&JFKw)AnPI@)l}G04c$=yaIaYa0o}od!a)5lkyfaRU4b&9X`4R(Op|)P72E0V= z?J5lTQN_oUS=+dUs@v{5UcI*)X?Ji#gH&a|XagP?qBD-?L%MjSCmX1pl~bh{@cbaX zRjL6WqNHaS@IuwSTmv4hjF_k6)$=-7^)KJhAW$_ZGTFxhbo*!QGW$cLQ$XL%MpU`zbNe2I?3kCfAa=)56-O z%vZR(5!X9u#vyP}cdvwK19`Kual8R9wIAge@Dd)=-OFdB8i7;;br>Jt9l5YlJ=Z|3 zP&=JG1D>IxN4^0sb>SToh@1<;ST2$MX$*KeH2Haio z2{hn&%J$I`uknPWzTLWp21R!3@|Yf8ty2ut61B%lHQ>qodK`kHvVE?BT35-+GvK*u z?aVje?rK&P8Ss2HN+kxoNY6T8T?4^AM7Lgr0k2R=k7;pj>vmUGcQ@eCs@s7EJXcNA zXo+K$w&&Rh%`@Qn zYPjz=lo;?wx?Fg>fw0(aY6D)OoX)hQwyAwo2iy&KuIg-{0q?AaCR*Y+7p?Mk z<&E)%21&}RlMT3q$2{Zp>OCbs)j-WqcFHi|scMrCMv#(%L4js|fA}{1QLc8zDmVG}=Htq%0Y4z%M9n$p-vMTV-Jb z{y^cW20T#5DMh>92g#LzT&|ks8SsnBTKNY2O=Ybj172*mt^q%zx>2g*)qZzC^}E8* zKx?b_&y-W!y6gFnzES2+i)Da~qK5eAa+yb0tpO2lVx>l-4tuR@H9% zH+N2o_I|1p!wkgLd`MD1?mp0o=Ox9n?fiOD6x+`|21c=yJORHK_%!^M@^$#V!_VRO zFU|%<@uERayz?M;Gkd`M4~nE>qr#7B%We38zYkJ0Y8DT2Xa4->LH$?+4;nlJW4;Q% z-MB|`6rNTkB+oFH*5~_@BhBvr@;k|qF(rTN+K&9BHp}??I-X&`JM+XL<9PHCCy!DC zWhOr|WQI@aUwXTgHMRK_@gdL7@X1ruQUeuF=AVt?c|)DJ_fU6p$vxg?XrzxxsgSa^ zHmi|*+R!NOj>?;dy2HKq4(-SCI2$&@H_+Z9uXYQq0e^p3WV@orx^62CLazWF(Kb85n;bnGD;{8WNnv)0d*|-G0%|FK_V+g;5OY|&WeLafTg*bfbEKC!{wMw|>SjF0ALEj{p0{}(%wOT7aEYGEm*7&w`954K8uL52lq7NA zQDFXr_s1orkk7^?^$!1hRHScmg;d;haeZx36`%5Zqh1)2x?0zyVwp~+?(4SEn?0(5 zH_##d_r2=+4Qt>|eBEd-zIb#4*9|pLZ+;GFA<(up&@j%%cySGA#~Ns79s|^SOas^W z8mNVj2WkQOYz=fIUk-F8&=EDzN&E=V%|KtTfzITA0=)?Its3ZJ9yHdAJB@ANI89 zR2P<5&>(e+6CW|#ojcBQFAy^~IfXoMbu?LWVgshvGg-1bYiIwdtSmb;(E3~1nt@q2 zr#mKPhyLeU@Zx+==IKc_QDq>iWED*hv}8LxZcwoF-7bu+MGUN=sHz+O0AVNP6T{&|~2Tb%Oe0Rdk8#jo(D8W+|Kx2EB{TrunxkF$FEzu8sI# z*1o>i!l~9({GwKp^|vbWmwf1wh|q1wWG&X-A?{#I&y?ui8~00*>d`%QEt+pw67Fk} zjQajBqh|chk_dK?duNCH{(xpKap&=CkhYnR&5mIGd3JWV~$BCMVk0SF-W0Vq7&8ce(en=3yO? zyjp^;k*ZE;(}{|>CyworchWtL%p(56vJl4=u#8LG2i&^M-}4h1ZqJKknj^PeEzT!V z>r1|WS$LOrvKGB}VX)7@Kvb44Q$JX?POH`W0S|aDxXVx2f55uCws8-jzE_(i zn)k`=#)k3vxn68NUzHnRNrCgY#JzxDgPKEW1Pbdqm`t5A&7|h1IO(o7(Zt&J_I!VN zix?j@XyhwbYYd=G4M1n$KdAe7-0$SWmWQP0!NXkQ*5KEm!DrIUq`~M?slg3Az^>L{ zJxQqUnuB6YBR&nsHue#ZRri6wkKnX`a8fXixZ~cRT+BmhOB(vu(C|;*_J)T|BXp z)8EI9rvD5nWqOqqm${2O7Rj~aWKDbL zNbbWLaxe4X4_mO?yzhryd{@EBkd9x289(N$K5QQL2{o%W<5Q&{=`>mOigb$P*FFqz z^p(84xxo&#tgIzJu<$#LeaFR>UN}OP#5%++Ov^U3y zrt#&%j~(XQMS$Y~blD{?kzWuk!iH1*YCT_8O{h~haLz)_$r@{Tz{(b`lNEDf*qjeu z8Rm0U86gG8&+2{>?w|17l@UzvLo1(g|5)Kdl+@%;+!mPrt zq1&rTk3xoYFWZx$m1ljjS5=_C$*rp*`;M2b$5pkq6y_qk;|Ckq*O{vNQ%JSyUQShp zq+TZTC##}j=t~E?soK`?^O*`Ke@jw$GVW*cu^)N4j>Oya)QWnX#^-<3At_y2C^KZS z-q(w=LS_ghTd3o#ij-xcI2*@n7Heimo?hIqsLD=LIa}S074o>%ZCMLGd3A93QmE|` zw*}29M}T;tS2#*?3Qu9?_E0$*K`H5xIJVXGz|A9^k1ICqGV9 zc%ZgRlk>2+KH5=kG^bppL%t- z5H;I%77b#yXRwnrM@WV~cvB>sDj#aA6jnYI$8$ej#~K&3`)mSZgZYZ}DcD*(Tp!HB zx$lPG*)s09@q*Ly8a84%vA+D*jUTglJY!QUr|GvP)R*tr0i{;>Ux|otAoQ6BF&$~E4NrXugA1aw4RhRcVZWl>7JXrLv&U>lQ!p^ zoYqV2(>e*e^_WU6O^4_4qR)L|r`UxTx|BZI~(+-%9IdPZ!zzjo3>m1Meyz#ac&E(|EiQNl= z#aga~{Y?Asv}>Rr=R>ynu#J4mHlJpTiBC@K`>NKZi?Y^o)SArKZu7^E&jPt5rX5xgI_d%!P!hs7<*J+;u^yjwaBx?$8B-TN*oM)0|5gE zks2qp4IscGY0WL!aYr0bvq=x=Z*};AJe(|b|0!Ao!lzFWk`vp6ciA42{+^w@8)P(H zR2NP6#mS~q?6i+`T6P`K*66f;cG^2St&-ZktJ7N8X)o%u2@JHCby{UTrA}W-<5#vf z^`A|AV|DroJKYm>98f&R-F6Jbw*g~!w8o+Aq8+WBKE8$yXGeU+3wK;yAP_uAPUxl_lTJ#f4{eP;-pz(2xo4}KWGKKv$r z?{nubL)cj!iQmupQ2b``nP1*zoA}EG34Sj@e;VnvXDTZbt;eM`{|KUB9owHDD;UZa za<5(6eAZRMQ!>AseAI1ao}$69b@*HY%x`(M)AwGU6-eU?q<@q2vPC_Z{mC~M2- z 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

fdZN|A|J@Uu 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 vk$Kp@;Q&rpH8fyne8V8B)wJov}Ar)5mi}p5O@G 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 I_kDTh|JL{*-2eap

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 delta 141690 zcmZ^Md0>sl_xGJk2oX0yWF?D>ShC?(EFrPp5E@&>R#B=gs-aP_vkCA79y<^7y_<|gud-=9D3edcq{oH=vm%$YMY&y8Js8}8cM zFekZ2;W&f%SGee%h?=%()kMKIZPD8BxT=#hlJnc(p_LiFh_7&TbpaH&FO5;mZ zJejv=#30w_0=SvtiyvOo}$AIbu~E|I=rBc zhUe(;3=K~=8lIxVub4GF zLx<-y)bJb~p6gZJ(1%NaHV5CWXMkb=1pY8nsl12YG3@ z;REg4Y44fgTG>N~r}%4lkPZ)$6D3l^$CVFgQ9Z3ftgb?mv|pkQKOyaxtiw;rZl~z* z6Urj9clH0>bae-@D$m- zARV44hK*>=^!1xRpOC4JWuKttHYZ} z`H31{;o2F_1VUF~nXHha!%sM^tHX0-M9k6QMH0`ggkufJm9Cvvi2$dT4HxL}0*M#u z@NrJJ)!`Yk;Zhx*LMbh!um-ukDv!be+K_nY@D0u((BUaEMRjh|oN^MSoLC)yspL-t zF4`}zAPLF33dyo(DLOn-M&}G29xN@Cqr-h9o?C%;qW&9J%bw*`5Cop*r&*#vhbPML zRj8Z~$Ev5J7D&%1)#1A&ZuqFO%jZelLx-nGj||e`k#aspYIubUdpOe!T?JR!??fH$ zA?=r}!}m-66dj%@7qN^=IEFA%+9RhD!C*+1uAQsHH_9I8>F{~7;Q}3=;>4m zu`kjQ5*uhHE>-$PBF3awHn@i~&CubwGG+wn@W_T*{YV{NMXDRC!*iVBTEi;_$lx@% zuEG^(1lQpn(*H7ac!q2sM~4SV&&aKW`(q%aE9F%p7z{6zNv*uoPsrvAb=23K5k-f4 zNPCp(@LZ>ZXH>R#id@n>baD3zOz93{B5ce7j_HAAYKr^7cY4_bRG1+87<3U!nsDX&O}cat3{)!`*d zzc${!og~#`R%Mf3Qf9UBj-Tl?nvQx~){52P%VeBO)ZvSiU)y*qd2L+NQ*@L>Y0eBC zp69RWlcU3vovWMyb*4o{Y@pRB`6gER$Gba<@Xx@J_u5n?aO zq0Xs9Fc_{#g>rSc!I`w_@VA`?*WqbWexVLeq{vZ~LaY+}3bJ7xd6{#{$iJZTRP z9iA$i3DV(-av&mgc&x-@HN3(iMwkaXKz z9saH}VbJiQ~@e2 zf7|KKIy^%fF;<7inzi;4HN3+8OM^8+vaUjsGrH>VLdl<@!$(Pla&-6!X{Ovtcq4-$ zR@ybM62V|-C3{?;Y-@*ovX1H@hp$M7AC|RBb@(1>S3_21d*?VaG#wr!wF=U3Wnudo z=^he`)bX~IZN}>G39`*Z9X?OCnXJR}8fm(v=x~offe$rg=m`5|!#O(K;Ph=BZf&eJ zkf*~-l}Q~CiDg_V)KT-~NEhkwp>m{4b$Es|aLlc2>Ov{sLx&e=_)tTTj!@`K&UCmz zjzg>t-zCkFsKYVSI(qvSIS+hv)VGyI9lg`X$g#@NQB!1Ra&>s5OhfZ@c&@x}DbV2t z=XHn8vg|;R4iA!YA_YFa;(#}=sU|p9 zSHaI|T^(NN%zX8@a~;&-9*Sot?{+!PEJH^vl;e=A!|Tb`^OW;3-suH8YNVVwg*v=c z?o*3&c#*f($5I_0Y1VMVyvoLnbncrqydr8QNUI0wDx}CDAF0Fhq)W%@@F3Z6q8^tW zORj_?X-JlKN~uIJ7?R|0XXx-`>6bY=yu0i`t`3iGtXUvWhZoRj)7HK~M<|v4TByTQ zn#durRUU#)PX7i@?N_YJP6yXjXe%p3>hO)Sfmj`$BZn+ehnGq` zxdLxU?HlrC4^k=!0{>d^jPp+4B&j(%YNXTPI^09LSe_2gZK~O!K!@kaX;-MjOSOrG zfTAO~It{MFmpKhSzp}wSq)U3}@Mf|DK{`BF%8wLyhl&BR$^nYiRS1$UnW)2uE2Fx2 zrzbfbTt_v^W-@emjMr7igiu&rqNv%#(I1RDOkeMLKGZjCQ3u zJVaW{V6SZ5SZNdw9iAh*7o@|VJH1)MD_$4KRkn5Y?w8YC6Q8K7wo_U$S%)V#)A&<# zc(gNoDCfI+d*`?! zl>Sm74;@}lVcosc|8yEoM~#&hh}Gd|rNt6;_$?_XS%-~Qd2)i zhr3F9vZBZ9zJ@Xp9}UZ1W&req;@Q(%@#yKQMD`5z&3K`473jDk zl}SCljd%W5=JyQuee}2XF49vSQ!V9u&j{wNFsrw3Vhv4?c}rf>2eQpdlr@62R7P37 zqdGs*813G zk6=m4EPT#Ww#AS1&CQl=@ya?RD$RN=1n2Hv5x%3Pp2^E9^GsG)?}coJvZ!~Y(ZG}= zy?gi=G--zAl{s%J!3mK*as)zk#4P2Vgr01nvJIchlxGPMN?rm+qfaQ?rVQy5!44=k ze4bQxej|N@{?>Skbkt?a&;6zg_;pqpQ2} z)xhvp9!{p*%JMQEYVB;);f0TsnuEgqwn`UQ_2kP+|3N+cwn%d5n#xjxzEZXi3J=cv zSsR&T9r^u-n!~@X9D2=L@p&yaJ=#qZuu;cZ5MM>;SD?eWZ1{u@F9@WwB!i(yhtHKQ zsyaNcwa`$x{90VE#Oj(3p=&F5Ci03=$c)wDJs!(xtHYCfDQ^r8H|8cNi}96`svO2w z;j79+d}T~kLXrT&eE3Q}smx9aZ&i@2nJM;*$_=N;PFi(%&QHp3s9iWvsWT+pShQB@ zg0I{+mC5+Z7^keom&an|0={DFD8`}T#-QFxD|{vYtGt1)yzi97_$pA9!$ZUUVjqak z8Lq6W+<5F7rRK2Ly$Y6Vx)~N~Wa@HNW$Q3+_gY##@#&$g8Ro61!)m#kUP6PE^FV!u z*K%+C5*n$n;ogcBsO2RzR*3?d2DIHvXreL-=tiK4FQLiGBA{1*;*E&%e<{i#pspio zxxZD884S442O14jzA7qcICLN3t-K9%`b)gINfM&de<|(s)o&Y-cB@_ojK%W9# z@Dhr&3~1=;{p zG>?3q_NA-2TJ7ovYqrHSrJBKNk5>K6SoN%^Lc{JxO3(YnNd@xxPxb1OSS@)=0j(gAw z!lp;z)xWG;sWsxus+t`?0|f8gl>9}RR>rO=SF`$f@1Io7P*O{+{iLkSnpKecM~Np| za;=fyY3`?0f;(Ypc8lqV&v=_^-8BmWx}7i@W)+uVE?e#HHI=_?J^U`WAg-VA39ba& z?Q-&0%7FP{jn^TQw%WRxJs>zORD1Tpb0%_3!l`Sa%KG^&{OIV;EvD1|3aYF8IX{ej ztN7Sk_?G5(;O;xx7IiguCJ86pR{P#TyTZr zQ`chmAnFUbOpOpxJGD~ndrIKKkap*=34(R;sjK}b&M39obz6zrzLjc!p-f*GVonvc zC;xBlGGZ2O$0-F1>tT)kX<v`NY3|`oeXlS}sM0;B14~e5<#@AI z%JQ5*D;-+9#k_`3otnLA1a?(*F&Nrr8p%X!acxjxqT!Y8?Y?+XqbN@~XyhwDy)=No z$^nQ5envjW;(3!YaFIEE8IoMfj9P#e_Q-ZboZw&FQZww;LQ7Ezn za|fR~i#$*|Dh-D|BuN#`4v@N&s~?mN`rvtvd=65NJrvV_c0JUi>FREyAf+Yn5T2nyW8@YHl$L zmARibYW#(?3(d~K(iWuhjQUzFQn|Bo_EYbesj{s|Afshl)UFdJYdSke?cRT>-5-^Z zC5_lkrN@$Xev4pbw2n`m89!B)FKHOMgsN4T@v+p8bb3SfigaqC+*}e^y^fIOp|~uK z3aCxgii%BT2dJXI(toM7`UmKqTTH65W@%LXbm~k6a|_uY4|VK)F(|$8YXmVUyYYgb zJ;o%ey5m!)^GU^@H)L)~d+ryL{E~VLXimWBMG88s5)6=sS>!Xk^37`I0>w;yt*vZ_a|wD zWFY6|^V@iSq~t6M!*=PwvMwH<3OSkPjkH+XUA|X5mN$SV;mbqX6~IcERru6(dnM_y zi}p_Qy%=hF)g*hB2kPsJZFzW)A)@x+^4iv2IkgRj#fNG+*O_wu(WF{MFULqjQZKE_ zf6F7Ho=V-RXXcmuJVn}o{H>eB6Y-p)j9B6Ao`@d;kcFtn6O>si+9XUB7Rofw)B0K{ z7&6T{T9L`(GOair$9q;=ra4zD=1Z!y(-?)V?7;Grn3XM=zcOxRNQ+FU?G`f|pPIF- zyNvDz!@cfR|EIqR4~=G2SCY`@_oHx9)NaG#G-Flb;2;4|_@ItIFfg8nF(F-{%qObtO)g zXwK@ z^H(?U_)IG1gXsyiYb!ffH%Kp%V5A1d38QD4qqX91HMAyTwc@{0AFEcJDVYKUOy6 zwq%QyA9GvAysL>bpU_C*Qd*%_d`nWVXvJh%EYgZ`O2;)(4Zc8&ZZT`{>71qWYv2ce zb6kO@EA!WcxGxjcH0NBP>|WCdXC=R^iHO=IeT4idKt7WnMN5A2qjlA(yIROWY*_2v zF_x%y_h~eUcCQduVGeVKHh80jm~tO7ONFHmS(Kc$Ygm>1R$q)}tf#VcT{5;7Pu7L7 zMvCA1J8Z5}eZxi9cT{Y|vMn{0-#4scQBiLD`>Bj4| z+YP8@*iDBb{jJ$v0~OCr(_Z=K58`dm`y{?>?x&yQYu2Gq7%U;XaqY1Jyh-4kLq6E5 ztfR;5O-V|@re^i4+!o}cgxOqN{v*9CG z7t=b^Ijs|3F&LuC)Km?gq7;1PYZ>h%`h$3o&QH`>jo!~mVML*hs7*9VXQlRLUrU&i zeg?+_2N5w0>cc|OpudxnPZTIHkcpTG1t1o4E;#!Y%ilycS|GxtHhCQ z*$sl#c3%zsnfBkQH$mU0^xNXgK3B$X@%7KpxE4#Ut5*cqB5=K-tlrW9JC6NZ`m*Ip zt*z}?Q>Dk&P!_Jdhffz}*;X@4R`zdg_&PI^6I%9&uNXJ@q8fgVI|Y4^1`{bMKjJCIQ| zy(+5ii4j#tJ83I4+MFt&eXh|uJ82(jv?o+=wnp=J(%#T$!x(5|HQJMEQk@=xrdz147us!U1W!E=X8~%f4``CW% zV=F4Ne2!Xzl=PSxVe0nOk z@Oek6vE9s$E8+NDs|>*Bhf3P^yKJ>GHa{+41oWqoUVXN#EZ%lhSo2;mMNdl?RbqGgvHr@iosF4U znT6*X%Br2ud=5UVCUkfI{2$`>`VwU{Gf&yNt247IcX#=*FvWFuV-~1{@AhL=m3Ta# zRo=sMzA_)r>yap*}C74{iK}O-&nw6YD)+mzD>o?&-$>|k8LXK0<|c0ODow~@b)J3GHo!P`c*NLg?=ml^WIj+{2K z*7^T@KiP=3-aQe(?D_LgWHHu2@i=+ecZvg}pGRIHt-IMH>JRp6{_RtHnd^^- zsFRi*%BC}K;abDuSFu>ZZPGofEUJ5KmJg z5gh(1LY1ttR1fQMm*4SB|I`ij#B`ezb5RNU$tP%LQ`q5~o(4n7UiImha0Z-Bp214n zZ4c^ZTSnw3{q#nSyjU&&*P>p=^!ca}w+|l%$7y`* zeW|<;Wwg0>aRtjJVtJ{&T(XcFQp#LFQFo~xDWicUsV^7aBBD360kJK(O9nejR6u9S zgs!q`dn%LVWVv}C+x@-OlwW_(!ZP&MtytV?ZM@aYSaY-TX00uBMQz4lfYBezBwuC8XAl;>(w z-ytBIJ}t0zh=~wShg}a(sew{ErK2N)MJW>;y%9loIigvn^1u<;dct~$m}6i^Oo18b z21L8GtAJt+f0-KoW3@fBW<5@=XSKb6tG$um_0J$9g3g#b!K||~_l}wMQa0ad&u-@5 zzB7fnJ90_Efux{iiSqWnY3xVkw|iY!j?(ykru)j(n)*SYa^<`GsqTIP(fIEvZA)7z zH6A=uCYSR3XAf>vVV@~i9(86T6rabPF`tw0`HQmb@n|+J|M}zUj7?IiJ{`$C^T#~B z$c(j?(p%f{Yx&viDyXC>9-6pdOkHV9rsGZnmPh;T1ji zI;7lso`6f+sQ=z@-L?p|vn_R$mH(x=Mrnn^ivNpHHbm+6V$70I7F=h*3@qGtb6~Sc zIfA>Da_vPQWn)=zogb$=Ne>nZ(r?PJGLT+`c$QNpX%tifCA2KWb6R)5MGj?)npe3U1a_2fqpE)ZbXM&r zt48sTRFxS~HAqwq)~cT5EsX5#8rv2KK@XqsRYn$A!=@Ggd9w4Uk)hFxd`(q$ll{GO zmJ3TYvYs4+5yiUi40UDI&?Jwj!E$P3WmPi_fVzElo~XeVRjKVi8_t=zM02xF{4IC3 zjIIB!HXB%#CGH$lhplETgFmXvny@uIpdK6O)@BA`tsMc*r3;@?k9Dg5{&Z+{ygPX+ zCYBu7x%^x`W@hm_|E|YIG8WGV)@OFMgcsFkA6JyhPBQwh~{(XsmWoA+C%g0qS9H4_Dq`u#B z)yz7v&w10vY_`X#cSy!XYrDg#t*~r=%8_jZxmCIBVkqfG&bf%+YRo#g-n~RlY$=bWt98EkiUHSBuY%W{JSr|LZ2Jyl$)+@64DA2Mko6l*U{#Qa- znPWRL&#|V!ZX!%=5)57;N5O!}&3lD23+v7^!r4OC2FX;}s|ojxV7J*|{vv`!u%)dIYPq@8e3VP(UOEWWNGRz|gy8tE<=GTjSKsyBJNhH$19&-(jN@1P<8pY}weU9)Atyn~hVrvC+ zF&t8gbk#)0iFW^?c0aN%ZOyzxK1`(m0Bfr)P?Itx4^!s*#BIBe8)0=&Ja5;U`8SOP zA1M{d{O<~7cGE<$Tect=C)k8Ci+b|Aty!bN zTe`q;GoXabN66cj0gJce7W_Kg;UzqScrO7o3>mD(Kymr4dgUrA%gN(A(T9|h{ zX>Q7ThG~llL!D|ujsJ`?nZcI|*F~XBt%X9oy}F|eni1#oSP-dzn)|c)S+taXhOi;R zKE-MQ6-vM$?BkdwQOwX@1=JI6#=a-j-`I=RPF~^15s=LCuj<)Iu4;goeQA`+H3MUk-Tin zIZRO}ABis`mPO9Wj*syqB4BDy(It{LUkISc5%W)3>oPSPRRqrztZ(<#1D&ZD!34i4 zYbvCrST6tBAZyi&v#^T zY%#AJ!)ft8L^`&hgJW|v`Hs~n2>+Jl z_fc2#_iGSEqjn4fJD5+5W8bhRykQr{UE^rdX2%rq{ax6~Mt6GCAbGX>MofT5TVI+0 zRe@pre&aK`vftP@{Pk{Zg=-D1_8&{TGqut1cu{%p7E$@l%`a6>1%}G~xmypG>8#b4 z^Byd{R$nAK6nTTJVUawfCu`B+21%XsuhEqGEj?vjGi9z4G3kyg^#8eMH7sl(ki=Wx zxfljuweu1UxR>&IJz3LWcM%q6;_eT-=b9o6WI9mefCU49-oD8Tdomy6ma6>Eo-D$c zZ{+?~7UYRnJj&MrT(?*}d4iSsge6lYdyMT}8kVp>$K#8V%1Oj+yQjX>mS%x=OqE%M zFS0VvGOT$nS`3t2RatYwXVUM{oL1@>Ea-^(us3(>NsJH8t3ibSjUA*p&#MuxeKm+X1 z)VZzU95Na46C6M(Upa1_V`OU6Hew~qI)@rj7tmvx+1o87^?Tvnrp#{8L8{Y?R7}sh zo9Z2PA?h*B&lA_cO0&R}`5#0aXpaw!!8;f^HQ+~zH8b(TOT|DX5gix}o+WIJhZuGS&8wi@6VJP^`Wc#Xla%ny23%M~PAIjcB-N zEoSJDxS_N}ZzoI4`In`KSm(^V?g6V`Lg<9sP4NVPByumcV#+Kaly(`86{J9pIz9r* zxR)!V4x_RITyj;x(9%)4!SNHY_&Gkv0w`n^tF6I!pdF+-&Lb|5<)I0zLHcK3$|VHJ z1GF1D1iIMlYJCvMsib1=GWf_!1=1Ap@D2w?1 zfxt3IG14W6_{{&6!Dql&o^{cnIG+7W)w^koZxiEiO(2bH5|tl2%f+gd$|oxtjHdE8 zT3PKa$0zGP)Wjq{(v{pbTFo!FMEW+cs;L-X(zaG^xz}cmM$a9)ME4A86{nyN!45$) zq#zm#;aZM&NKQ*B=jiGRIj2cZ4^1J>TeG53A|qsnmARKWT2RfdP}>y9U+v3cjoGdE zqQ1!W-xhgzCg=qpYyqitaqJ%o5K_t<^H3V zH0Qr3vR3XR!6ed{C+hXjct}6i#`r;Vp41O(o<|G*Q9stTAvrlIJ?}7u3iwMTd6Krt z3LMRE_CtRBN$Ar4Fw@~qFPZ5KdQOr0#adyepVv6e)C>U3^h-FI$x?j-))^Js?$7$O z4#w2x{Az#Jpy43sOHGim;;3Ec1W&MAY-70B0M^Jjumx{FfCaRE3^Rc*t2X%J=Tv9N zMa#p)RY`k@C>3=9iEx7LiTY+3w+&#io-48MNf0sFHryPl{=I=;9l$yoYsYY(fh^j8 zW>cs6yOQB@%7y+O%Eu3cmmCkJFcVq*3<3mZv9nEuT>iJN)i#8*u>`FB$ zcMB3&h8PjM3+sSMmTlSixiGc*o0LDL7RkQYn0zSKaNsW*zU-JbSV7f=C%EY~=2dSa zh>qJ@gW9fWX=5J!8jCa5ZNg`~#$t?Pn)5xcF+U&IA!vhEZ?P_≥m*Ya8)9uVG`> zt_k-VjE&jbpH*zk@;L81n1$A?h6I6jWDSq=jKP>}3mWsogIQ!qbL9{(-8LyYb!h#j>QRfE;R=JnPo7C7#lL|AN@i&rKy8#TWu6`y2a{pkg&Il;2Cjv=J%+G) zmbYOm=koa-B*f3Dijy5IJin2)HDPq}#^u;a%GI+>UDA{f8Nzz|6w)S{7Su|KK%F&w z-w^gngOjg05BP{>jQOQp;b1N|4aF#w2JyZ_SzC8++OpgJq<(fZ^Tk84*r~`yseFY- zUH1Duttal_))Emqpa`x|e<%{zp(ctsvOhcWSlgJ)CLJG3e85LTU#%;8kP zD9kd;l-D$`4Yk5M3}f{>%s~g^=TyVKR=nVvM(eyOvyrAoI1O|&sOPkv1$Y9|V`z0a zkS`dx)GmUw8#OPU3D_-PRb6Q~P1W^RE-Bf=Lga_9~f%XEY zsnAF)pki*QdkGkb)lII{a{qT4sv~euTc(|$EOlw{(h&-$xMewv2#N5HfTf!GYr}DZ z(gNJh6O_e#{%|(2dL|;jy7~|=8_puqKW~V(`q8`0c9-^A1CumaRm)}liS8ZvQk#ek zQJLn&D~E8DvWbRpI3$#;CSUJQvZ_FDa>VXbD1l(=Vl)c2dzi;J*P-oy3d+j*WZgAo zjxFO`M=-PL-v;0(!*0OAV9aSAw%VJ%PmM;QQAal{O{D2S$PxpUnvKrvr@oaaq;&^s9XiUu^LQ;0#UfH)}um@=<0p7Itn7dF#x3M;{Z_S%X$tfSfy32qae-|ngKxXMANiC zq|~cS-4Ajf+aGkW$^AyMy07+ZB|7@i60*9+jbW~#El(Kc`#&5^8W z&HBRGpQxV%bB|=!D0mWfV`Q>Xq=MXG92Wj9P76;4^MT1Mv}K|{G`I*2)Ujw*M$If= z36{{}l$@(NH?p5|a9+kop*I#CwcFlJJ%ve`^$L z*s>=PZ)(zij}X%RH0fKhaK-H-Nt)MX2l8#BSWw6p8rRjuH1V{iFl29P%N*?4JCOf1 ziiLF^sPWka-#r`~fy)P6`zsvz87$_Qq-o~#QwK*`jqu|m-(asBM>gaK-@xkLs6W5< z28-~Y?M+6Z<>sT1_&Lw3nm!Jqge2R`v6(j>jXb2PAMZ69N20fV`P-wBG#>ZmAJg|n zU%p{9jBi3ekGH8F03u#_Zvv#;_!#;=}ijfs&~{ z{3^a14)VchQ?|8={7q(CVpDiuZRf+i-egVd&RB>rY5Ub`yDHYOC+asg{_2}7Ci3kT zG>Yz@ejjhb>IttpT&i3c~-efIX-||9}bB?%L+m%eYMcM6H z!5MRXm8R;ayD(If;V1I2P|f$^{$p9o$gRzV)4YS`&`K%3;s!d~aX*qRlvuOe+1znI zK6Nb1HlC=*tG&e?je`C6@<_ul?XwI;< zj&lfg&d}gX%^A#Inln`M(ww2Vp5_c_T{uGornqp1doXxqXE=>!|G&=ge*JQ1c-lwj z41+ZqIfFS==L{VLt+F$i-+?py2jh@4jQCb_hWxskGkjWCbA~B(|8Hj)Qde_^mGgDZ za4u7GhIvhdGwiU5aafEnE1cml_??5~)f5HI8P?X3v6o$nbUhJhggK84aU_N2`|2sn-;ldfldhpN* z$X0jML>5%n6{5s-7Ui_Wc-hXMOvEW$eRm%E9^zx1 ziT8Pr1$h4sn^I;xS!BiuwilG@O!VX#?;)|>*_|JJkJUFmna?l3$9j9Mh^1C=fL3u{ z#^>|4DeM*FxtjdF6y(5lAg*PK8DPI#V)r29=M3SUJ00&=3Z~;qGiPHI`)11VnVF zP`z%Jm>9DuSc-|U5xt;ur_iLKj`4ida2DWR0v?&?wwcLKPG+r4g|29*IU1&+JL1aS z-e+B_zmkJoFn%*1^ge538b};oBBU0pJze?7?=!O{7+?t}&Ao{{0x>=68hi+gx#~i+ zYz;&>Ev@@y)Dobp5qZ+!P3V(q67owD4uWBwSz|2t(SL3y&uqMV8)p(mJENDU+sE#$F zt>fx=!HNds?FL7>03nzZ=;x$3s%iaG{YC$f%2EHeBg`QxzTCfsaA|Sw0L{dFtzC^5 zOu_VXxbQ!wFmw8NO~Trbgaiu(%7gRD&ErMYeK2ksC{8(rm@OC|>JH`#c9o{AB$yEP zZUAXyNGU;e5hlXz9-Wm?VmZ(S0((-Q?4#)pzOE_LM5%?{Viy6VSgqp5SAM|!!|!2_ z1XGFFakVB@sHL@r@N^PYU|11f$S&>O_^l6EMDXsake&?b-J=Sm#&pXJ7ZYMuROM}^ zvJm43Re91>)^P9(UtvAVhobK%uqu>mj`Wen(^2KQ=+{M!(@o?2TyWaTt@IIb&e9xF zWmWl^smx+LS%p_kV~vM?QAM+q8^cNGz7!#Vy$7zXo&D=wYt!a3q2-^cS7D31Mx&XV<_W? zry&Xttiu19#-eI0n@%g8dNP%_na-jk=GDhwX1iYi8n+7>tzi(N&4y{DvR4OyP#69? zJxd$`eo>9DoX%oG{x(24kqQ2yWrCMUx9pfZuo-n?-530y>8z8no{_hofu!{j<3s5C z660wzSgWSn;SH4HS2blm5v$>SHL&c3SZoH@q^z18@(knWXRsDSquY_Y-B*{vL7joP zRxRr5arGzy1T9fVNy_nKh(*Ge-(|F19O*+BQ+4ngCV30;x+@;-E>E!N;6f%en!h%a zg&O;Q#4~2H<}v>OrsGIlAq_^8;vnQ1owDGx=@Jx1Xcg;Ews>9CG8)@b=Tf_~DleYN z!fRa?12e&FRkwb~gFj@E9S4ZE!gherC+i2CtWae-Ejp)0z9f@tG9R_Akm*^KXMe~7 zJ3giE+bu(!621Z}R)3Q46PyR#6k6@nBz%R#mIT|)1Y3Yv{jLgEKV+e1&=J!djI-!Q znHp@QcI#0L!T6dor_x~BEnkTS@iIg`v-*PZ+;rC1uPLhU(e_UR&9OqJZ6?fpe>%UJ z&RUzB)8^Oyp{p7P4QLK7>8h@C< zIyG6z?ryvsifD)Ntw$u6hz|I1Ps- z{(8=@&0_w>a1(zzi?uce|I5Q>V`>@y}|}BNGyBu%C5}T z#;op_cvB~i_coS8c`>W~M0hVZ?4idzW-jygPD35Xv`0dhsJmD{;%#@-(U17}xvYE3 z01#<9IWo~35uxBV)t%s*05ML&mmdDjug_&Z4X)s)FjRx`HXlb*aHtkCDN?30W4Y(Y zY`QV-Z=U@zdKdIJ|N3LryzSqAQI%R|N8n>=k#i#ZxGr#{6-%8slA8pY5|}Or|Kg^3 zY*5WBP=+FW%A0)RJoxfxm~0-iSZblNBL+54uw7Qm9?EX`03hyrPT&GWW5`4oetyUw z&0~QzL#4=qF}$IT^)b$R#NV~CkeXYmYv@P!F?>1jdbb~-iPs?jFWEa@fd$pS|K|VL zFynF_@J{pb&cO!{c+z~%`qc9w-#;H`O@Ed0Yx7yN@hQXsJXv%GcFL#T*uAjff$v0$;Ln7P)w~*=wcX@O+8|ptF_5&?#n03xmTs@433AGmv9^B_! zvsp;v|L)RAB2g`AD7RvEmmiE`5PjYfkx0FIkN=&``WY`jz`7QaTshpclVpZ(ASO)ngc5a09; zZ@Umzg9A(W^o4lwE#(3KdLi?!_ZAGV-8`kf1y!ORt5fdspBJ(Y^>(4LlHa9CkW;#< z$L{ga92OkB*+9cEC=#-Z-gkEE2HZ&76OJk2<8oMRx*ynZ_e9~VgUcVHK)VTbr~|zd zN2;dGkBFLeEp?JuYcik=x+K#=`XRO&2C*19qbW-fBS$@64)bfra9G*FBu-k1kRb@# z_2F>dY!Mq^^l`IAK$N>^$U?$Ic|-LVf}i_h+X zcX|*RAIIa(9@U@hEi|2S6d`{XMx)Guq}+K=yi)T6`hB6-lNU4`_!BR!)PaAB30$b2 zLVeW3a9qG}V3^cVJN7R!ALJn#oM^~Q`W#_CknlrLTn!u^F)B@>98G{5djcycez}7PK`vW z(WncknfeVns2vGqyH9?dh%O1llWqA0Zm!KRJGlX3Ga`=GUUx%krZwyClm(6yG^hGk zZX;E;aS{6Xp^@*^-e?5(z<3QQ8E^7`MtwSQn^#-Hf{pIad9x*$MQ|+>;uiUO7`a1@TGERIhTGRuJ9zO@)^bEUp;fdx>bB@z z=2>#4daw`nEh5=RR`#v1qIRYKHR$xJ26De+>MB@I?6xpRQ>Tg>&QFA^Vao%v^y4X< z)l0YDf?2TmjRQ&Bn`MopN85c$6PinEf~fdJ^+VZ#tqy$UKl*jtUB}lnl3$QZ*^W4Z zL7`Fl>vyot6l`VcZ7Pr(s;f}D{5^L3&rflK<9L;2%u>H9)yFlD*yvGk!d!Y=p*I$lR=|VB@xSaJI zwdM&`pf}d5I3l5j2;*vNRCHix;*24UsElo(vs?vQ!wJ*H#;6$Y#i()M5DQeieF}y= z4VN!3QfsKqi}|hPtY!7#0odAoT+F>!u;^A>iy&=0jONVY)$zYVQH3&pSM?hVCuWvu z-XV-PUYxUst$)mCt-wq2)qm%F1&dF=L-nu1w9fmRYXsnRE~k2@s7yz4+QOjjrSjN{ z@@6V`L0Mgcr;?@W3Ib?IwEY)eA#_ojBx*%hH9$P!o~xJzqyhPHGY`J z53OXK!_1G!MZXgh%<{xX_`CWsrh(?>_@hG@IBg3$>Ng&?iUriwj5uYae3|2ky7(3! zzKTWHiN+mf$yrTz$_Ybna{S4GhOzVDAuvp4d!guut_M1!IkgM8;Z|jZIN~pv>oh55 z?X$ncOs(^pn5pW?o4o30EXZ%;6m(*#us%|NaB-WBwr{*B;~wi+(}D4-1*2ij#$Haf zi(@3j3cLt`3q-Xy>N-ti%8Y~%?TyMNc*5#iOKlD@NKXCH=P%6n&f4aeUf5wt) z{Fs77;etBh1`qk1jSMPzNC!>DeP}(3RKvhao%@zdh*|P(8ej7{i;Vmiue2kIbk8bF ztDRtbh*xT8f_9&Wrjg8LBbXt8I$t(a&%Dp^GqC{Ux%YVBY8LGs=1R-^L2X!4aD+sn zBY)!)SF^^(A;0n^tJ$lq)N2_1qnbs?Zl#*t21vU>f$mX1IO>ysiRiZL8n2(r!j1E; z@gBLXb&~<84;58^bb;*VqfQdZaw_e2{L~s8!M?b` zOYz-!_s_Dn0|x>KKVmQAs;+gyC8yNauJY)$SR3y3=fl?G$g9zHzH%+L6W{#IZ?0uS zYTda@y{4S|pA_Eh3%r&zZ#*CS1#4CNP8Gb39-=v0+7-Ux3l`SWS8!Wey{c*d=M|9~ z&OqZ@#E%kmdMEhYL|*mE<*`Zdy!arWe z-e}SqmJsv*21X4&t=55govGMK8p&*z`zCH$kKX}W`77(0rSUTC(dn!#^rvxO`pDYE^%LwOKu##xJaAU5#De;rB~0LP3{#_y%qEK-mD=BMI)J+xu^{ca#6P7P%P#Tn==+09{0e;!yu|<6fGco| zQ^ExL9k`T`L6x)J`}X0MFX0b4@AKEcWVemEWxU5m*4H@iN4|6;;`DE|`M!;;P2j4Z zD$>dGb!mr%A5`LS4Zps{qIrp%HnBkOhG+h)w0zdP z!sl;dO-Bp^v-7C%T~weKl7p}qH^Q!lk{irtAN4yhiQP5@WPeg0$1QY|kgSe(lCa!T zG8}|;$dq{llGLEiy!Kb@eWTk&KIbb;v~?HxS6|^qFGMu?eZ@O84+{A&U%}5W7xE`x zvBVl9aN>g3=?>K7iJO^!NR;5$-re&f6{%s$C-B2&>Wb$jp1qkh_S%l0?oxltC=et= z7i=Yd;>S0$@S5ImUJ4kif8u4ES^XwAvGGx7!Zk;IuYYiQ?Yt%Mvk|03_Og^jI$ z?F`sx(Zr~_vXBED43&!?QAO7tE#uLp45kE9PwN zKD=Nn3u<(<3<)cOKeWG*U|VM{pvU8x<`ej)f9k0OUgc}nrO9QnaZK}2`~FBHbCf1Q z=G&fRb4zQ)F&gRCKl1TkvjEc>2o*;rG)S)Sm9JS);43hTINTF0?GP!X&13azd|Bi|DO*7ipNOJIE{dkiZLqJ%;?MC<^Oz;n4uQBcp7|KO z*)f*C@nv`K3+rpY47XdxA>&iGcHj^4SYV%{&Nk*0YU7qDOw)ke5gw6*VQGh9c6Qx4 z!(@+c+=N(Xk0!2+JDo-7e;%7rO`7zHr}!&@u>3X{MBQ9Sy!-&cZ zKU^GZxM&;_xGIkxvRn*Y{wV!_6cp&mq?G#(>eU#7H$(DI;J3;|>j5*P< z6Q)G@G`XN*jWn78slyAyfSw-^oBaK%NwU?2O)@4}C;S+-?bTN;+TaR*kD-H^t8b )v(T;? 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 diff --git a/auto_round/compressors/base.py b/auto_round/compressors/base.py index 70370b200..297f8a50e 100644 --- a/auto_round/compressors/base.py +++ b/auto_round/compressors/base.py @@ -431,7 +431,7 @@ def _gen_auto_scheme( # mainly using quant_layers and fixed by users from auto_round.auto_scheme.gen_auto_scheme import GenScheme - if not self.enable_torch_compile and self.super_bits is None: + if not self.enable_torch_compile and self.super_bits is None and not scheme.low_gpu_mem_usage: logger.warning("we strongly recommend to set `enable_torch_compile` to True for AutoScheme to save VRAM") gen_scheme = GenScheme( scheme, @@ -1207,24 +1207,19 @@ def _quantize_layer_via_rtn(self, name: str) -> None: if is_fp8_linear(m): m = convert_fp8_layer_to_linear(m, self.amp_dtype) set_module(self.model, name, m) - # - # # Step 1: Use optimized RTN data type if available - # if not self.disable_opt_rtn: - # rtn_data_type = self._check_rtn_dytpe(m.data_type, m.bits, m.sym) - # if rtn_data_type is not None: - # m.data_type = rtn_data_type - # self.layer_config[name]["data_type"] = m.data_type - - # Step 2: Try quantization on GPU first, fall back to CPU if OOM + + # Step 1: Try quantization on GPU first, fall back to CPU if OOM # if only export gguf, using gguf-packing instead of rtn if self.is_packing_immediate and self.iters == 0 and "gguf" in self.formats[0] and not self.disable_opt_rtn: m.scale = None m.zp = None else: try: - m = m.to(m.tuning_device if hasattr(m, "tuning_device") else self.device) + tuning_device = m.tuning_device if hasattr(m, "tuning_device") else self.device + m = m.to(tuning_device) m = WrapperLinear( m, + device=tuning_device, enable_minmax_tuning=False, enable_norm_bias_tuning=False, enable_round_tuning=False, @@ -1251,7 +1246,7 @@ def _quantize_layer_via_rtn(self, name: str) -> None: except Exception as e: raise - # Step 3: Optional immediate packing/export + # Step 2: Optional immediate packing/export if self.is_packing_immediate: from auto_round.export import PACKING_LAYER_WITH_FORMAT @@ -1277,9 +1272,6 @@ def _quantize_layer_via_rtn(self, name: str) -> None: ) else: PACKING_LAYER_WITH_FORMAT[target_backend](name, self.model, self.formats[0], device=self.device) - - # if self.low_gpu_mem_usage: - # clear_memory() else: set_module(self.model, name, m) diff --git a/docs/step_by_step.md b/docs/step_by_step.md index 4f2a8e9bd..c28c7d9cf 100644 --- a/docs/step_by_step.md +++ b/docs/step_by_step.md @@ -306,16 +306,20 @@ ar.quantize_and_save() ~~~ #### Hyperparameters in AutoScheme -`avg_bits(float)`: Target average bits for the whole model, only to be quantized layer will be counted in the average bits calculation. +`avg_bits(float)` Target average bits for the whole model, only to be quantized layer will be counted in the average bits calculation. -`options(Union[str, list[Union[QuantizationScheme, str]])`: the options of quantization schemes to choose from. It could be a string like "W4A16", or a list of strings or QuantizationScheme objects. +`options(Union[str, list[Union[QuantizationScheme, str]])` the options of quantization schemes to choose from. It could be a string like "W4A16", or a list of strings or QuantizationScheme objects. -`ignore_scale_zp_bits(bool)`: Whether to ignore the bits of scale and zero point in average bits calculation. Default is False. +`ignore_scale_zp_bits(bool)` Whether to ignore the bits of scale and zero point in average bits calculation. Default is False. `device_map (Optional[str,dict,torch.device])` only supported in API now, as auto-scheme used more VRAM than auto-round tuning, so you could set a different device_map for it. `shared_layers (Optional[Iterable[Iterable[str]]])` only supported in API now +`batch_size (Optional[int])` could be set to 1 to reduce VRAM but increase time cost + +`low_gpu_mem_usage(bool=True)` whether to reduct gpu memory usage + In some serving frameworks, certain layers (e.g., QKV or MoE) are fused to accelerate inference. These fused layers may require the same data type and bit configuration. The shared_layers option simplifies this setup by supporting both regex and full-name matching. **Note that regex matching is applied in a block-wise manner.** @@ -348,10 +352,24 @@ ar.quantize_and_save() ``` #### AutoScheme Cost -The tuning cost of AutoScheme is approximately 2 to 4 times that of model's bf16 size, depending on the options. + We tested it on Nvidia A100 80G using torch v2.8. -We will try to optimize the VRAM usage in the future. +We will try to optimize the RAM usage in the future. The RAM usage is about 1.1-1.5x of the model's BF16 size + +