diff --git a/installer.py b/installer.py index 8833d8652..c44e27a63 100644 --- a/installer.py +++ b/installer.py @@ -442,41 +442,12 @@ def check_torch(): torchvision_pip = 'https://github.com/Nuullll/intel-extension-for-pytorch/releases/download/v2.0.110%2Bxpu-master%2Bdll-bundle/torchvision-0.15.2a0+fa99a53-cp310-cp310-win_amd64.whl' ipex_pip = 'https://github.com/Nuullll/intel-extension-for-pytorch/releases/download/v2.0.110%2Bxpu-master%2Bdll-bundle/intel_extension_for_pytorch-2.0.110+gitc6ea20b-cp310-cp310-win_amd64.whl' torch_command = os.environ.get('TORCH_COMMAND', f'{pytorch_pip} {torchvision_pip} {ipex_pip}') + uninstall('openvino-nightly') install('openvino', 'openvino', ignore=True) install('onnxruntime-openvino', 'onnxruntime-openvino', ignore=True) # TODO numpy version conflicts with tensorflow and doesn't support Python 3.11 elif allow_openvino and args.use_openvino: log.info('Using OpenVINO') - if "linux" in sys.platform: - if sys.version_info[1] == 11: - pytorch_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torch-2.1.0.dev20230820+cpu-cp311-cp311-linux_x86_64.whl' - torchvision_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torchvision-0.16.0.dev20230820+cpu-cp311-cp311-linux_x86_64.whl' - elif sys.version_info[1] == 10: - pytorch_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torch-2.1.0.dev20230820+cpu-cp310-cp310-linux_x86_64.whl' - torchvision_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torchvision-0.16.0.dev20230820+cpu-cp310-cp310-linux_x86_64.whl' - elif sys.version_info[1] == 8: - pytorch_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torch-2.1.0.dev20230820+cpu-cp38-cp38-linux_x86_64.whl' - torchvision_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torchvision-0.16.0.dev20230820+cpu-cp38-cp38-linux_x86_64.whl' - else: - log.error('Unsupported Python version') - #Will error when generating an image: - pytorch_pip = 'torch==2.1.0' - torchvision_pip = 'torchvision==0.16.0 --index-url https://download.pytorch.org/whl/cpu' - else: - if sys.version_info[1] == 11: - pytorch_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torch-2.1.0.dev20230820+cpu-cp311-cp311-win_amd64.whl' - torchvision_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torchvision-0.16.0.dev20230820+cpu-cp311-cp311-win_amd64.whl' - elif sys.version_info[1] == 10: - pytorch_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torch-2.1.0.dev20230820+cpu-cp310-cp310-win_amd64.whl' - torchvision_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torchvision-0.16.0.dev20230820+cpu-cp310-cp310-win_amd64.whl' - elif sys.version_info[1] == 8: - pytorch_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torch-2.1.0.dev20230820+cpu-cp38-cp38-win_amd64.whl' - torchvision_pip = 'https://github.com/Disty0/automatic/releases/download/openvino_pre_release_pytorch/torchvision-0.16.0.dev20230820+cpu-cp38-cp38-win_amd64.whl' - else: - log.error('Unsupported Python version') - #Will error when generating an image: - pytorch_pip = 'torch==2.1.0' - torchvision_pip = 'torchvision==0.16.0 --index-url https://download.pytorch.org/whl/cpu' - torch_command = os.environ.get('TORCH_COMMAND', f'{pytorch_pip} {torchvision_pip}') + torch_command = os.environ.get('TORCH_COMMAND', 'torch==2.1.0 torchvision==0.16.0 --index-url https://download.pytorch.org/whl/cpu') else: machine = platform.machine() if sys.platform == 'darwin': @@ -546,7 +517,8 @@ def check_torch(): if opts.get('cuda_compile_backend', '') == 'hidet': install('hidet', 'hidet') if args.use_openvino or opts.get('cuda_compile_backend', '') == 'openvino_fx': - install('openvino==2023.2.0.dev20230922', 'openvino') + uninstall('openvino') + install('openvino-nightly==2023.2.0.dev20231102', 'openvino-nightly') install('onnxruntime-openvino', 'onnxruntime-openvino', ignore=True) # TODO numpy version conflicts with tensorflow and doesn't support Python 3.11 os.environ.setdefault('PYTORCH_TRACING_MODE', 'TORCHFX') os.environ.setdefault('NEOReadDebugKeys', '1') diff --git a/modules/intel/openvino/__init__.py b/modules/intel/openvino/__init__.py index 5e62dbbc0..34f575e3e 100644 --- a/modules/intel/openvino/__init__.py +++ b/modules/intel/openvino/__init__.py @@ -126,10 +126,16 @@ def cached_model_name(model_hash_str, device, args, cache_root, reversed = False inputs_str = "" for input_data in args: - if reversed: - inputs_str = "_" + str(input_data.type()) + str(input_data.size())[11:-1].replace(" ", "") + inputs_str + if isinstance(input_data, torch.SymInt): + if reversed: + inputs_str = "_" + "torch.SymInt" + inputs_str + else: + inputs_str += "_" + "torch.SymInt1" else: - inputs_str += "_" + str(input_data.type()) + str(input_data.size())[11:-1].replace(" ", "") + if reversed: + inputs_str = "_" + str(input_data.type()) + str(input_data.size())[11:-1].replace(" ", "") + inputs_str + else: + inputs_str += "_" + str(input_data.type()) + str(input_data.size())[11:-1].replace(" ", "") inputs_str = sha256(inputs_str.encode('utf-8')).hexdigest() file_name += inputs_str @@ -196,8 +202,12 @@ def openvino_compile(gm: GraphModule, *args, model_hash_str: str = None, file_na input_shapes = [] input_types = [] for input_data in args: - input_types.append(input_data.type()) - input_shapes.append(input_data.size()) + if isinstance(input_data, torch.SymInt): + input_types.append(torch.SymInt) + input_shapes.append([1]) + else: + input_types.append(input_data.type()) + input_shapes.append(input_data.size()) decoder = TorchFXPythonDecoder(gm, gm, input_shapes=input_shapes, input_types=input_types) @@ -339,6 +349,7 @@ def partition_graph(gm: GraphModule, use_python_fusion_cache: bool, model_hash_s def openvino_fx(subgraph, example_inputs): executor_parameters = None inputs_reversed = False + maybe_fs_cached_name = None if not shared.opts.openvino_disable_model_caching: os.environ.setdefault('OPENVINO_TORCH_MODEL_CACHING', "1") # Create a hash to be used for caching diff --git a/modules/shared.py b/modules/shared.py index 5e3846b26..9998133ef 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -286,7 +286,7 @@ options_templates.update(options_section(('cuda', "Compute Settings"), { "cuda_compile_sep": OptionInfo("

Model Compile

", "", gr.HTML), "cuda_compile": OptionInfo(True if cmd_opts.use_openvino else False, "Enable model compile"), - "cuda_compile_upscaler": OptionInfo(False, "Enable upscaler compile"), + "cuda_compile_upscaler": OptionInfo(True if cmd_opts.use_openvino else False, "Enable upscaler compile"), "cuda_compile_backend": OptionInfo("openvino_fx" if cmd_opts.use_openvino else "none", "Model compile backend", gr.Radio, {"choices": ['none', 'inductor', 'cudagraphs', 'aot_ts_nvfuser', 'hidet', 'ipex', 'openvino_fx']}), "cuda_compile_mode": OptionInfo("default", "Model compile mode", gr.Radio, {"choices": ['default', 'reduce-overhead', 'max-autotune']}), "cuda_compile_fullgraph": OptionInfo(False, "Model compile fullgraph"),