flash-attention family prebuilt wheels (mirror)
Byte-identical mirror of prebuilt attention wheels that Odyssey training projects install,
re-hosted on the Hugging Face CDN because the GitHub release-asset endpoint they used to be
fetched from times out mid-download often enough to break uv sync.
Nothing here is rebuilt or repackaged. Each file is the exact upstream artifact, so a
uv.lock hash pinned against the original GitHub URL keeps validating after the URL swap.
Consuming
Reference a wheel by direct URL in [tool.uv.sources]:
flash-attn = [
{ url = "https://huggingface.co/gueraf/flash-attn-wheels/resolve/main/wheels/v2.8.3/flash_attn-2.8.3+cu12torch2.9cxx11abiTRUE-cp312-cp312-linux_x86_64.whl", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" },
]
The repo is public, so no HF_TOKEN is needed at install time.
Paths keep the upstream release tag as a directory (wheels/<upstream-tag>/<filename>).
That is load-bearing: dev-c914365-p1 and dev-c914365-p2 both publish a wheel named
flash_attn-2.8.3+cu12torch2.9cxx11abiTRUE-cp310-cp310-linux_x86_64.whl, and a flat layout
would silently collapse the two into one.
Contents
| wheel |
upstream source |
sha256 |
bytes |
integrity |
wheels/v2.8.3/flash_attn-2.8.3+cu12torch2.9cxx11abiTRUE-cp312-cp312-linux_aarch64.whl |
Dao-AILab/flash-attention @ v2.8.3 |
db81083bcc579753140c647fecfb082919b0cce746f9c355af4e37e965e9c224 |
253,510,452 |
lock-pinned |
wheels/v2.8.3/flash_attn-2.8.3+cu12torch2.9cxx11abiTRUE-cp312-cp312-linux_x86_64.whl |
Dao-AILab/flash-attention @ v2.8.3 |
4e2f9e39313266b1544b68138b15b91ee6221eccf14f7902b7c6620351340810 |
253,780,426 |
lock-pinned |
wheels/build_block_sparse_attn-9790137a9e8a41497c8dc6ba77b69d3bbda443ec/block_sparse_attn-0.0.2-cp310-cp310-linux_x86_64.whl |
gueraf/block_sparse_attn_wheels @ build_block_sparse_attn-9790137a9e8a41497c8dc6ba77b69d3bbda443ec |
6740e88f22c76c37b56279524c2a646ba5808403696f2dd2b93a1da7b9523a3c |
146,569,645 |
lock-pinned |
wheels/build_block_sparse_attn-c07912b9d5a5edf7cbbc6a5f52cb74c0f2e28539/block_sparse_attn-0.0.2-cp310-cp310-linux_aarch64.whl |
gueraf/block_sparse_attn_wheels @ build_block_sparse_attn-c07912b9d5a5edf7cbbc6a5f52cb74c0f2e28539 |
87927036c66e7a4d50c9868acbea7e8cdec23a2bf117d594be657262b2045616 |
146,521,114 |
lock-pinned |
wheels/dev-3200363/flash_attn_cute-0.1.0+cu12torch2.9cxx11abiTRUE-py3-none-any.whl |
gueraf/flash-attention @ dev-3200363 |
bd83bc4beb7d5362fe9ed3da61fccd29b1af9f9ae7004b01499a4b7b46be7215 |
182,051 |
lock-pinned |
wheels/dev-6d2aa14/flash_attn_3-3.0.0b1+cu12torch2.9cxx11abiFALSE-cp39-abi3-linux_aarch64.whl |
gueraf/flash-attention @ dev-6d2aa14 |
a53829c72541af41ac1e913ae297af645b78b4733db88b193278b3cf80cdff8d |
136,313,327 |
CRC-only |
wheels/dev-800184d/flash_attn-2.8.3+cu12torch2.9cxx11abiFALSE-cp312-cp312-linux_aarch64.whl |
gueraf/flash-attention @ dev-800184d |
2ccc609a128edd7765451546748ff3ea69bc97a21a786560cbeacfba5de356e3 |
431,304,990 |
lock-pinned |
wheels/dev-800184d/flash_attn-2.8.3+cu12torch2.9cxx11abiFALSE-cp312-cp312-linux_x86_64.whl |
gueraf/flash-attention @ dev-800184d |
8883f73ae90b07d3b852f71ee54097e2be19f79689b8c52fd668484dd87f9509 |
431,435,070 |
lock-pinned |
wheels/dev-a4613c2/flash_attn_3-3.0.0b1+cu12torch2.9cxx11abiFALSE-cp39-abi3-linux_x86_64.whl |
gueraf/flash-attention @ dev-a4613c2 |
872b4038c08bebf142b421fde991202b3c4e118c7a58a1d94df157af1883f27c |
440,103,608 |
lock-pinned |
wheels/dev-a4613c2/flash_attn_3-3.0.0b1+cu12torch2.9cxx11abiTRUE-cp39-abi3-linux_x86_64.whl |
gueraf/flash-attention @ dev-a4613c2 |
5a3f9fbe85984b4a85ae6d4da6c9807b1d1aa3df734dc50584c9e9792e5f2450 |
440,102,686 |
lock-pinned |
wheels/dev-c914365-p1/flash_attn-2.8.3+cu12torch2.9cxx11abiTRUE-cp310-cp310-linux_x86_64.whl |
gueraf/flash-attention @ dev-c914365-p1 |
a22647dc014c4da15e5418bcd05f4a82ea6c9e86e4351df7be32e82a262ece1c |
431,372,399 |
lock-pinned |
wheels/dev-c914365-p2/flash_attn-2.8.3+cu12torch2.9cxx11abiTRUE-cp310-cp310-linux_x86_64.whl |
gueraf/flash-attention @ dev-c914365-p2 |
decd5fb84253cefdb2d766458085fbe31d7cda0567024f3506174d045bd10183 |
431,370,887 |
lock-pinned |
wheels/dev-c914365-p2/flash_attn-2.8.3+cu12torch2.9cxx11abiTRUE-cp312-cp312-linux_x86_64.whl |
gueraf/flash-attention @ dev-c914365-p2 |
00aa9b64bdb1cab24186d3839307b3bec8fbe6c234c60f3147f09fce9e075cb6 |
431,390,042 |
lock-pinned |
integrity records how each file was checked when mirrored:
- lock-pinned โ the sha256 above equals the hash an existing
uv.lock in the odyssey
repo already pinned for the upstream URL, so the bytes are provably the ones every
project was already resolving.
- CRC-only โ no
uv.lock pinned this URL (the pyprojects referencing it resolve
x86_64-only, so the aarch64 wheel never entered a lock). It was verified by a full zip
CRC pass instead. Flagged rather than filled in from the row beside it, because an
unfalsifiable check is worse than a named gap.
An HTTP 200 is not integrity evidence here: one wheel in this set first arrived truncated
(209,605,440 of 253,510,452 bytes) with a 200 status, and only the sha256 comparison caught it.
Adding a wheel
Download from upstream, verify its sha256 against the upstream checksum or an existing lock
pin, upload under wheels/<upstream-tag>/ keeping the original filename, and add a row above.