intel-extension-for-pytorch icon indicating copy to clipboard operation
intel-extension-for-pytorch copied to clipboard

IPEX xpu wheel files for windows using the wrong version of Pytorch? Also no torchvision

Open Mindset-Official opened this issue 2 years ago • 18 comments

Describe the issue

python -m pip install torch==2.0.0a0 intel_extension_for_pytorch==2.0.110+gitba7f6c1 -f https://developer.intel.com/ipex-whl-stable-xpu

wheel files seem to include torch 2.0.0a0 but notes say that xpu is only available for torch 2.0.1a0

Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch Traceback (most recent call last): File "", line 1, in File "C:\Users\mymin\AppData\Local\Programs\Python\Python310\lib\site-packages\intel_extension_for_pytorch_init_.py", line 89, in raise err OSError: [WinError 126] The specified module could not be found. Error loading "C:\Users\mymin\AppData\Local\Programs\Python\Python310\lib\site-packages\intel_extension_for_pytorch\bin\intel-ext-pt-gpu.dll" or one of its dependencies. torch.xpu.is_available() Traceback (most recent call last): File "", line 1, in AttributeError: module 'torch' has no attribute 'xpu'

Also there seems to be no version of torchvision for windows? Not sure if this is a mistake or just part of the expiremental nature? as is xpu is not detected and doesn't work on windows so it defaults to cpu still.

Mindset-Official avatar Aug 04 '23 18:08 Mindset-Official

Because of the experimental nature, the pytorch wheel shipped is 2.0.1 code base, but didn't get version updated in its version.txt file. torchvision wheels are not available at this moment as well.

@min-jean-cho could you check the error above?

OSError: [WinError 126] The specified module could not be found. Error loading "C:\Users\mymin\AppData\Local\Programs\Python\Python310\lib\site-packages\intel_extension_for_pytorch\bin\intel-ext-pt-gpu.dll" or one of its dependencies.

jingxu10 avatar Aug 04 '23 20:08 jingxu10

Thanks @Mindset-Official for trying out. Could you please double check if you have activated oneAPI environment, call "{YOUR_PATH_TO_ONEAPI}\setvars.bat" (e.g., call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat")?

min-jean-cho avatar Aug 04 '23 20:08 min-jean-cho

Okay, thanks. I was able to get it to run by deleting python and installing miniconda as default, I then ran everything in oneapi environment and

Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch torch.xpu.is_available() True

appreciate the help and response. I will give it a shot and see how everything works in windows.

Mindset-Official avatar Aug 04 '23 21:08 Mindset-Official

Glad to hear that! Let us know if any other questions.

min-jean-cho avatar Aug 04 '23 21:08 min-jean-cho

Since Intel hasn't released a corresponding torchvision wheel for windows, the SD Web UI tries to install the latest torchvision == 0.15.2, which requires torch == 2.0.1. So pip install torchvision will uninstall the intel torch because of incompatible version and install torch == 2.0.1 instead. Then intel_extension_for_pytorch bails out because of wrong dll version from torch 2.0.1.

I have to hack torchvision-0.15.1.dist-info/METADATA in the python site-packages to force it compatible with torch == 2.0.0a0.

Metadata-Version: 2.1
Name: torchvision
Version: 0.15.1
Summary: image and video datasets and models for torch deep learning
Home-page: https://github.com/pytorch/vision
Author: PyTorch Core Team
Author-email: [email protected]
License: BSD
Requires-Python: >=3.8
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: requests
- Requires-Dist: torch (==2.0.0)
+ Requires-Dist: torch (==2.0.0a0)
Requires-Dist: pillow (!=8.3.*,>=5.3.0)
Provides-Extra: scipy
Requires-Dist: scipy ; extra == 'scipy'

Nuullll avatar Aug 07 '23 14:08 Nuullll

So we really need an intel torchvision wheel for windows. Is that planned in the near future?

Nuullll avatar Aug 07 '23 14:08 Nuullll

Since Intel hasn't released a corresponding torchvision wheel for windows, the SD Web UI tries to install the latest torchvision == 0.15.2, which requires torch == 2.0.1. So pip install torchvision will uninstall the intel torch because of incompatible version and install torch == 2.0.1 instead. Then intel_extension_for_pytorch bails out because of wrong dll version from torch 2.0.1.

I have to hack torchvision-0.15.1.dist-info/METADATA in the python site-packages to force it compatible with torch == 2.0.0a0.

Metadata-Version: 2.1
Name: torchvision
Version: 0.15.1
Summary: image and video datasets and models for torch deep learning
Home-page: https://github.com/pytorch/vision
Author: PyTorch Core Team
Author-email: [email protected]
License: BSD
Requires-Python: >=3.8
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: requests
- Requires-Dist: torch (==2.0.0)
+ Requires-Dist: torch (==2.0.0a0)
Requires-Dist: pillow (!=8.3.*,>=5.3.0)
Provides-Extra: scipy
Requires-Dist: scipy ; extra == 'scipy'

Try this <@323514682155466753> 'torch==2.0.0a0 torchvision==0.15.2a0 intel_extension_for_pytorch==2.0.110+gitba7f6c1 -f https://developer.intel.com/ipex-whl-stable-xpu' 0.15.2a0 seems to install correctly for me. It should atleast install without error

Mindset-Official avatar Aug 07 '23 16:08 Mindset-Official

Thanks @Mindset-Official. torchvision-0.15.2a0+cxx11.abi-cp310-cp310-linux_x86_64.whl seems to be a linux wheel, I doubt it would work as expected on native windows. Anyway I'd give it a try.

Update:

ERROR: torchvision-0.15.2a0+cxx11.abi-cp310-cp310-linux_x86_64.whl is not a supported wheel on this platform.

Nuullll avatar Aug 08 '23 01:08 Nuullll

Okay, thanks. I was able to get it to run by deleting python and installing miniconda as default, I then ran everything in oneapi environment and

Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch torch.xpu.is_available() True

appreciate the help and response. I will give it a shot and see how everything works in windows.

Hi, Mindset-Official, Could you tell me how you fix that issue? Did you get this fixed on native Windows?

charygu avatar Nov 27 '23 21:11 charygu

Okay, thanks. I was able to get it to run by deleting python and installing miniconda as default, I then ran everything in oneapi environment and Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch torch.xpu.is_available() True

appreciate the help and response. I will give it a shot and see how everything works in windows.

Hi, Mindset-Official, Could you tell me how you fix that issue? Did you get this fixed on native Windows?

Yeah, what I did in that post fixed it. You can probably run it without miniconda but I left it as is. Definitely make sure to run the environment and call those variables every time you run.

Mindset-Official avatar Nov 27 '23 22:11 Mindset-Official

Okay, thanks. I was able to get it to run by deleting python and installing miniconda as default, I then ran everything in oneapi environment and Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch torch.xpu.is_available() True

appreciate the help and response. I will give it a shot and see how everything works in windows.

Hi, Mindset-Official, Could you tell me how you fix that issue? Did you get this fixed on native Windows?

Yeah, what I did in that post fixed it. You can probably run it without miniconda but I left it as is. Definitely make sure to run the environment and call those variables every time you run.

Thank you for your reply. I think my oneapi is not good, I am using 2024 as 2023.2 is not available to download from intel. Could you tell me where to download oneapi-basekit 2023.2?

charygu avatar Nov 27 '23 23:11 charygu

Okay, thanks. I was able to get it to run by deleting python and installing miniconda as default, I then ran everything in oneapi environment and Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch torch.xpu.is_available() True

appreciate the help and response. I will give it a shot and see how everything works in windows.

Hi, Mindset-Official, Could you tell me how you fix that issue? Did you get this fixed on native Windows?

Yeah, what I did in that post fixed it. You can probably run it without miniconda but I left it as is. Definitely make sure to run the environment and call those variables every time you run.

I found the solution finally. Thank you very much.

charygu avatar Nov 28 '23 01:11 charygu

Okay, thanks. I was able to get it to run by deleting python and installing miniconda as default, I then ran everything in oneapi environment and Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch torch.xpu.is_available() True

appreciate the help and response. I will give it a shot and see how everything works in windows.

Hi, Mindset-Official, Could you tell me how you fix that issue? Did you get this fixed on native Windows?

Yeah, what I did in that post fixed it. You can probably run it without miniconda but I left it as is. Definitely make sure to run the environment and call those variables every time you run.

I found the solution finally. Thank you very much.

Hi @charygu, could you share your solution? It is killing me. Thanks!

makejiang avatar Nov 30 '23 04:11 makejiang

Okay, thanks. I was able to get it to run by deleting python and installing miniconda as default, I then ran everything in oneapi environment and Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch torch.xpu.is_available() True

appreciate the help and response. I will give it a shot and see how everything works in windows.

Hi, Mindset-Official, Could you tell me how you fix that issue? Did you get this fixed on native Windows?

Yeah, what I did in that post fixed it. You can probably run it without miniconda but I left it as is. Definitely make sure to run the environment and call those variables every time you run.

I found the solution finally. Thank you very much.

Hi @charygu, could you share your solution? It is killing me. Thanks!

I didn't stick to oneAPI of windows installer. Instead, I installed it by using conda in my conda env. Then you may get the 2023.2.0 version which includes the dependencies "intel-ext-pt-gpu.dll" needs.

charygu avatar Nov 30 '23 20:11 charygu

Okay, thanks. I was able to get it to run by deleting python and installing miniconda as default, I then ran everything in oneapi environment and Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

import torch import intel_extension_for_pytorch torch.xpu.is_available() True

appreciate the help and response. I will give it a shot and see how everything works in windows.

Hi, Mindset-Official, Could you tell me how you fix that issue? Did you get this fixed on native Windows?

Yeah, what I did in that post fixed it. You can probably run it without miniconda but I left it as is. Definitely make sure to run the environment and call those variables every time you run.

I found the solution finally. Thank you very much.

Hi @charygu, could you share your solution? It is killing me. Thanks!

I didn't stick to oneAPI of windows installer. Instead, I installed it by using conda in my conda env. Then you may get the 2023.2.0 version which includes the dependencies "intel-ext-pt-gpu.dll" needs.

Thanks charygu, 2023.2 works!

makejiang avatar Dec 01 '23 02:12 makejiang

Can anyone give or link me to a proper guide to use this on Windows?

Cyberavater avatar Jan 19 '24 19:01 Cyberavater

Hi@charygu, could you tell me how to activate oneAPI in conda environment? I can use conda install the 2023.2.0 version, but don't know how to load it.

YimingLiu000 avatar Feb 26 '24 15:02 YimingLiu000

Hi, here is an amazing blog that I found to configure the intel-ipex to your pytorch on a windows: https://christianjmills.com/posts/intel-pytorch-extension-tutorial/native-windows/

karthika-ml avatar Jul 06 '24 02:07 karthika-ml