executorch
executorch copied to clipboard
Return "platform not supported" when using PyTorch on intel-based Macbooks
🚀 The feature, motivation and pitch
Currently, when a user installs requirements for ExecuTorch on their Intel-chip Macbook by running the ./install_requirements.sh after git-cloning the ExecuTorch repo, the installation fails for torch versions, throwing an error and a stack trace.
ERROR: Could not find a version that satisfies the requirement torch==2.7.0.dev20250310 (from versions: 1.11.0, 1.12.0, 1.12.1, 1.13.0, 1.13.1, 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2, 2.2.0, 2.2.1, 2.2.2) ERROR: No matching distribution found for torch==2.7.0.dev20250310
Alternatives
- Return a message stating "this platform is not supported" while running PyTorch on Intel Macbooks
- Updating documentation to add a disclaimer or in pre-requisites that PyTorch does not work anymore on Intel Macbooks.
Additional context
No response
RFC (Optional)
No response
cc @larryliu0820 @jathu @lucylq
See https://github.com/pytorch/executorch/issues/6691#issuecomment-2619823071 . In short, PyTorch officially deprecated Intel Macs back in January 2024. ExecuTorch is PyTorch, so I imagine we will follow suit.
Right. I don't think the goal is to add support. But instead to make documentation/errors more human readable, as suggested in the Alternative section above:
- Return a message stating "this platform is not supported" while running PyTorch on Intel Macbooks
- Updating documentation to add a disclaimer or in pre-requisites that PyTorch does not work anymore on Intel Macbooks.
I’d be down to work on this!
@swolchok @keyprocedure @ali-khosh
ExecuTorch itself actually works with Intel Macs -- as in users should be able to install ExecuTorch from source. The reason it is "not working" is that torch package is not available on Intel Mac via pypi. However, we should be able to compile torch from source and install on Intel Mac first.
Instead of upright saying, "we don't support Intel Macs", what's your thought on adding a documentation on how-to do compile torch and ExecuTorch from source on Intel Macs.
I’d be happy to help with documentation for building from source if that’s the direction we move in.
@keyprocedure
Yes, I agree with this direction for improving documentation and scripts for such use cases. For reference, these past issues provide context:
https://github.com/pytorch/executorch/issues/6691 https://github.com/pytorch/executorch/issues/6689 https://github.com/pytorch/executorch/issues/7732
And the current documentation: https://pytorch.org/executorch/0.6/using-executorch-building-from-source.html
Currently, ./install_executorch.sh script first downloads and installs the torch pip package. I'd like the documentation to include instructions similar to:
"If you want to compile torch version, here's what you can do:
- Compile and install torch from source: https://github.com/pytorch/pytorch?tab=readme-ov-file#from-source
- Compile executorch from source, but use the already installed torch like this: ./install_executorch.sh --use-pt-pinned-commit' "
For Intel Mac support, we should clarify: "We don't officially support prebuilt binaries for PyPI on Intel Macs, but here's how you can compile from source." This applies to any scenario where developers need to compile from source (e.g., needing the latest version).
Your task would be to:
- Verify this workflow works in clean conda environments
- Update the docs to reflect this process
@mergennachin Sounds good! I'll look into this and follow up soon.
@mergennachin
After building PyTorch from source on an Intel-Mac and adding a --no-deps flag to the pip install command, I'm getting some build errors when I run ./install_executorch.sh --use-pt-pinned-commit. Since torch is downgraded to torch-2.2.2-cp310-none-macosx_10_9_x86_64.whl, it looks like some components are missing and I'm getting the following errors:
error: use of undeclared identifier 'C10_FALLTHROUGHATen/native/cpu/Gelu.h not foundno matching conversion for static_cast from 'c10::complex<c10::Half>' to 'c10::complex<double>'use of undeclared identifier 'overflows'
Do you have any suggestions on how to move forward?
I was able to prevent pip from changing the installed PyTorch build when running install_executorch.sh --use-pt-pinned-commit by adding the no-deps flag to the pip install command in install_requirements.sh. After debugging some issues (TorchConfig.cmake not found, missing omp.h, and a libomp.dylib link error), I was able to install executorch with a prebuilt PyTorch build on both an Intel and ARM64 macOS system.
I opened a draft PR. If it looks good, I'd be happy to publish it.
What do you all think about next steps?