From 6f62d415955f5d7056e70d1aae3d6aaad8848602 Mon Sep 17 00:00:00 2001 From: henryruhs Date: Mon, 10 Mar 2025 16:16:01 +0100 Subject: [PATCH] Introduce resolve_cudnn_conv_algo_search --- facefusion/execution.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/facefusion/execution.py b/facefusion/execution.py index 328e9e0..a4ec1d4 100644 --- a/facefusion/execution.py +++ b/facefusion/execution.py @@ -36,7 +36,7 @@ def create_inference_session_providers(execution_device_id : str, execution_prov inference_session_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), { 'device_id': execution_device_id, - 'cudnn_conv_algo_search': 'DEFAULT' if is_geforce_16_series() else 'EXHAUSTIVE' + 'cudnn_conv_algo_search': resolve_cudnn_conv_algo_search() })) if execution_provider == 'tensorrt': inference_session_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), @@ -68,6 +68,17 @@ def create_inference_session_providers(execution_device_id : str, execution_prov return inference_session_providers +def resolve_cudnn_conv_algo_search() -> str: + execution_devices = detect_static_execution_devices() + product_names = ('GeForce GTX 1630', 'GeForce GTX 1650', 'GeForce GTX 1660') + + for execution_device in execution_devices: + if execution_device.get('product').get('name').startswith(product_names): + return 'DEFAULT' + + return 'EXHAUSTIVE' + + def resolve_openvino_device_type(execution_device_id : str) -> str: if execution_device_id == '0': return 'GPU' @@ -76,13 +87,6 @@ def resolve_openvino_device_type(execution_device_id : str) -> str: return 'GPU.' + execution_device_id -def is_geforce_16_series() -> bool: - execution_devices = detect_static_execution_devices() - product_names = ('GeForce GTX 1630', 'GeForce GTX 1650', 'GeForce GTX 1660') - - return any(execution_device.get('product').get('name').startswith(product_names) for execution_device in execution_devices) - - def run_nvidia_smi() -> subprocess.Popen[bytes]: commands = [ shutil.which('nvidia-smi'), '--query', '--xml-format' ] return subprocess.Popen(commands, stdout = subprocess.PIPE)