AutoExecutionProvider

pull/2784/head
Seunghoon Lee 2024-01-14 03:19:24 +09:00
parent d55d92bab4
commit 0fac69cbf5
No known key found for this signature in database
GPG Key ID: 436E38F4E70BD152
10 changed files with 22 additions and 21 deletions

View File

@ -115,7 +115,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -132,7 +132,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -122,7 +122,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -122,7 +122,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -130,7 +130,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -170,7 +170,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -120,7 +120,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -130,7 +130,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -110,7 +110,7 @@
}
}
},
"pass_flows": [["optimize"]],
"pass_flows": [["optimize_AutoExecutionProvider"]],
"engine": {
"search_strategy": {
"execution_order": "joint",

View File

@ -274,22 +274,23 @@ class OnnxRawPipeline(OnnxPipelineBase):
log.info(f"\nProcessing {submodel}")
with open(os.path.join(sd_configs_path, "olive", 'sdxl' if self._is_sdxl else 'sd', f"{submodel}.json"), "r") as config_file:
olive_config = json.load(config_file)
pass_key = f"optimize_{shared.opts.onnx_execution_provider}"
olive_config: Dict[str, Dict[str, Dict]] = json.load(config_file)
for flow in olive_config["pass_flows"]:
for i in range(len(flow)):
if flow[i] == "optimize":
flow[i] = pass_key
flow[i] = flow[i].replace("AutoExecutionProvider", shared.opts.onnx_execution_provider)
olive_config["input_model"]["config"]["model_path"] = os.path.abspath(os.path.join(in_dir, submodel, "model.onnx"))
olive_config["engine"]["execution_providers"] = [shared.opts.onnx_execution_provider]
if pass_key in olive_config["passes"]:
float16 = shared.opts.olive_float16 and not (submodel == "vae_encoder" and shared.opts.olive_vae_encoder_float32)
olive_config["passes"][pass_key]["config"]["float16"] = float16
if shared.opts.onnx_execution_provider == ExecutionProvider.CUDA or shared.opts.onnx_execution_provider == ExecutionProvider.ROCm:
if version.parse(ort.__version__) < version.parse("1.17.0"):
olive_config["passes"][pass_key]["config"]["optimization_options"] = {"enable_skip_group_norm": False}
if float16:
olive_config["passes"][pass_key]["config"]["keep_io_types"] = False
for pass_key in olive_config["passes"]:
if olive_config["passes"][pass_key]["type"] == "OrtTransformersOptimization":
float16 = shared.opts.olive_float16 and not (submodel == "vae_encoder" and shared.opts.olive_vae_encoder_float32)
olive_config["passes"][pass_key]["config"]["float16"] = float16
if shared.opts.onnx_execution_provider == ExecutionProvider.CUDA or shared.opts.onnx_execution_provider == ExecutionProvider.ROCm:
if version.parse(ort.__version__) < version.parse("1.17.0"):
olive_config["passes"][pass_key]["config"]["optimization_options"] = {"enable_skip_group_norm": False}
if float16:
olive_config["passes"][pass_key]["config"]["keep_io_types"] = False
run(olive_config)