diff --git a/modules/shared.py b/modules/shared.py index c986333cb..c2e53df94 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -17,6 +17,7 @@ from modules import errors, shared_items, shared_state, cmd_args, theme from modules.paths import models_path, script_path, data_path, sd_configs_path, sd_default_config, sd_model_file, default_sd_model_file, extensions_dir, extensions_builtin_dir # pylint: disable=W0611 from modules.dml import memory_providers, default_memory_provider, directml_do_hijack from modules.onnx_impl import initialize_onnx, execution_providers +from modules.zluda import initialize_zluda import modules.interrogate import modules.memmon import modules.styles @@ -922,6 +923,8 @@ mem_mon = modules.memmon.MemUsageMonitor("MemMon", devices.device) max_workers = 4 if devices.backend == "directml": directml_do_hijack() +elif devices.backend == "cuda": + initialize_zluda() initialize_onnx() diff --git a/modules/zluda.py b/modules/zluda.py new file mode 100644 index 000000000..09e67d6e8 --- /dev/null +++ b/modules/zluda.py @@ -0,0 +1,8 @@ +import torch +from modules import shared, devices + + +def initialize_zluda(): + if devices.cuda_ok and torch.cuda.get_device_name(devices.get_optimal_device()).endswith("[ZLUDA]"): + torch.backends.cudnn.enabled = False + shared.opts.cross_attention_optimization = "Batch matrix-matrix"