Wheel variants are a mechanism for publishing platform-dependent Python wheels and selecting the most suitable package variant for a given platform.
This approach removes the need for manual selection of local identifiers in PyTorch packaging and greatly enhances the user experience when installing PyTorch.
For technical details and ongoing discussion, please see PEP-817 and associated discourse thread
What is currently supported?
The following variants are supported for PyTorch 2.10.0:
CUDA 12.6, 12.8 and 13.0: Linux x86, Linux aarch64, Windows x86
ROCm 7.0 and 7.1
XPU: Windows x86 and Linux x86
CPU only: Linux, Linux aarch64, MacOS (including M1/M2), Windows (CPU only)
How to test it?
You can start using Wheel Variants today by installing the PyTorch 2.10.0 release with the variant-enabled uv installer, which will automatically select the best PyTorch build for your machine’s hardware.
@atalman, thank you for posting this! I wonder 2 things:
Is CI/CD now covering the variant wheels at least for release procedure to make sure things are working on the real hardware? I believe you were working on the automation…
Are releases with variant wheels now automated? Will we see 2.10.1, 2.11.0, etc. coming out per Pytorch release schedule or there is still manual work which needs to happen for variant wheels releases?
HI @dvrogozh
The release of the variants is automated and done by this workflow:
The validations of these wheels are done using following workflow:
We do relay on the override flags for all GPU types, here:
Functionality wise these wheels are exactly the same as our regular wheels released to pypi and download.pytorch.org and these are covered by PyTorch CI system.