in optimum_benchmark/backends/onnxruntime/config.py [0:0]
def __post_init__(self):
super().__post_init__()
if self.device not in ["cpu", "cuda"]:
raise ValueError(f"ORTBackend only supports CPU and CUDA devices, got {self.device}")
if not self.no_weights and not self.export and self.torch_dtype is not None:
raise NotImplementedError("Can't convert an exported model's weights to a different dtype.")
if self.provider is None:
self.provider = DEVICE_PROVIDER_MAP[self.device]
if self.use_io_binding is None:
self.use_io_binding = self.provider in IO_BINDING_PROVIDERS and self.library in IO_BINDING_LIBRARIES
if self.provider == "TensorrtExecutionProvider" and self.task in TEXT_GENERATION_TASKS:
raise NotImplementedError("we don't support TensorRT for text generation tasks")
if self.quantization:
self.quantization_config = {**QUANTIZATION_CONFIG, **self.quantization_config}
# raise ValueError if the quantization is static but calibration is not enabled
if self.quantization_config["is_static"] and self.auto_calibration is None and not self.calibration:
raise ValueError(
"Quantization is static but calibration is not enabled. "
"Please enable calibration or disable static quantization."
)
if self.auto_quantization is not None:
self.auto_quantization_config = {**AUTO_QUANTIZATION_CONFIG, **self.auto_quantization_config}
if self.auto_quantization_config["is_static"] and self.auto_calibration is None and not self.calibration:
raise ValueError(
"Quantization is static but calibration is not enabled. "
"Please enable calibration or disable static quantization."
)
if self.calibration:
self.calibration_config = {**CALIBRATION_CONFIG, **self.calibration_config}