diff --git a/bitsandbytes/backends/cpu_xpu_common.py b/bitsandbytes/backends/cpu_xpu_common.py index 87ffc7360..2a29604ba 100644 --- a/bitsandbytes/backends/cpu_xpu_common.py +++ b/bitsandbytes/backends/cpu_xpu_common.py @@ -369,8 +369,9 @@ def quantize_4bit_impl( out_uint8[abs_scaled_A > key] = val out_uint8 += sign.to(torch.uint8) * 8 elif quant_type == "int8": - for i in range(len(INT8_QUANT_TABLE)): - out_uint8[scaled_A > INT8_QUANT_TABLE[i]] = i + map = torch.tensor(INT8_QUANT_TABLE, device=scaled_A.device) + diff = torch.abs(scaled_A.unsqueeze(-1) - map) + out_uint8 = torch.argmin(diff, dim=-1).to(torch.uint8).to(scaled_A.device) if quant_type == "int8": out = out_uint8