Repository navigation
kernels: implement kernels cache ls - #932
Conversation
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
Coverage report —
|
| Name | Stmts | Miss | Cover | Missing |
|---|---|---|---|---|
| src/kernels/__init__.py | 14 | 0 | 100% | |
| src/kernels/_system.py | 6 | 1 | 83% | 10 |
| src/kernels/_versions.py | 130 | 14 | 89% | 53, 59-60, 63-64, 102, 165-170, 199, 219 |
| src/kernels/archs.py | 56 | 1 | 98% | 94 |
| src/kernels/backends.py | 215 | 63 | 71% | 42, 46, 50-53, 70, 92, 110, 119, 123, 127-129, 150, 159, 163, 167-169, 190, 201, 203, 210-213, 222, 226, 230-255, 263, 286-306 |
| src/kernels/compat.py | 9 | 1 | 89% | 5 |
| src/kernels/deps.py | 70 | 1 | 99% | 56 |
| src/kernels/digest.py | 58 | 5 | 91% | 71-73, 136-137 |
| src/kernels/hf_hub.py | 63 | 2 | 97% | 21, 23 |
| src/kernels/importer.py | 74 | 5 | 93% | 158, 162, 165, 179-180 |
| src/kernels/install.py | 21 | 7 | 67% | 76-100 |
| src/kernels/layer/__init__.py | 7 | 0 | 100% | |
| src/kernels/layer/_interval_tree.py | 103 | 4 | 96% | 23, 52, 147, 150 |
| src/kernels/layer/device.py | 48 | 12 | 75% | 42, 47-49, 91, 96-98, 101, 149, 152, 156 |
| src/kernels/layer/func.py | 93 | 5 | 95% | 94, 119, 195, 315, 390 |
| src/kernels/layer/globals.py | 5 | 0 | 100% | |
| src/kernels/layer/inspect.py | 27 | 0 | 100% | |
| src/kernels/layer/kernelize.py | 82 | 8 | 90% | 259, 297, 305-306, 312, 316, 332-334 |
| src/kernels/layer/layer.py | 320 | 14 | 96% | 212, 259, 435, 575-576, 597, 605, 616, 657, 661, 674, 729, 770, 845 |
| src/kernels/layer/mode.py | 14 | 0 | 100% | |
| src/kernels/layer/repos.py | 144 | 36 | 75% | 33, 36-43, 74, 90, 94, 103-104, 110, 113-116, 123-124, 130, 133-136, 143-144, 150, 153-156, 163-164, 170, 173-176, 257 |
| src/kernels/load.py | 71 | 2 | 97% | 338, 378 |
| src/kernels/locking.py | 89 | 64 | 28% | 35-83, 91-98, 102-125, 137, 152-159, 165-175, 179-186 |
| src/kernels/python_deps.py | 58 | 6 | 90% | 59-60, 64-65, 101, 104 |
| src/kernels/resolver.py | 162 | 1 | 99% | 248 |
| src/kernels/status.py | 50 | 2 | 96% | 25, 79 |
| src/kernels/validate.py | 104 | 7 | 93% | 9, 101, 172, 195-196, 232-233 |
| src/kernels/variants.py | 278 | 17 | 94% | 65, 96, 117, 147, 256-257, 299-302, 304, 388-394, 400-406, 455-461 |
| src/kernels/verify.py | 102 | 6 | 94% | 44, 170-172, 260-261 |
| TOTAL | 2473 | 284 | 89% |
Updated by the Test kernels workflow on commit 697a666052cfdc51481642207a9dbdc4f177e834.
| get the latest kernel build from the `v1` branch. | ||
|
|
||
| You can check whether a kernel was downloaded with `hf cache ls`: | ||
| You can check which kernels and build variants are cached with |
There was a problem hiding this comment.
We can remove this when we overhaul this page soon and have a dedicated caching page.
| Each row includes variants from all cached revisions of that repository. | ||
| Use `kernels cache ls --no-truncate` or `--json` to see full values when the | ||
| table is shortened to fit your terminal. |
There was a problem hiding this comment.
Closely follows hf cache ls.
| requires-python = ">= 3.10" | ||
| dependencies = [ | ||
| "huggingface-hub>=1.31.0", | ||
| "huggingface-hub>=1.32.0", |
There was a problem hiding this comment.
So that we can rely on huggingface_hub utilities as much as possible.
| `VARIANTS` contains a sorted, comma-separated list of all build variants present | ||
| in the repository's cached snapshots. Repeated variant names appear once. |
There was a problem hiding this comment.
Hmmm. If they were duplicated, they were different versions. I think it'd be better to list different refs on different lines, so that one can see what variants are stored for a particular version.
| ```text | ||
| ID SIZE LAST_ACCESSED LAST_MODIFIED REFS VARIANTS | ||
| ----------------------------------- ---- -------------- -------------- ---- -------------------------------- | ||
| kernel/kernels-community/activation 2.5M 45 minutes ago 45 minutes ago v1 torch28-cxx11-cu128-x86_64-linux |
There was a problem hiding this comment.
I am not sure about using refs. We use and promote versions everywhere, so I think the default column rendering should be versions. Maybe a --refs argument could be used to override it.
There was a problem hiding this comment.
I changed to VERSION. I didn't do any option for REFS, though. I don't think it's that useful in the context of kernels.
| Like `hf cache ls`, the table shortens long values to fit the terminal width. | ||
| Use `--no-truncate` or `--json` to see all values in full. Cache inconsistencies | ||
| produce a short summary by default; use `--show-warnings` to see their details. |
There was a problem hiding this comment.
I think it would be nicer if the row got multiple lines in this case, so that all variants can always be listed. Truncation is not nice, but lines wider than the terminal is also not nice.
danieldk
left a comment
There was a problem hiding this comment.
Really cool! Definitely going to use this frequently for my cache spelunking! 🚀
| rows.append( | ||
| [ | ||
| f"kernel/{repo.repo_id}", | ||
| revision.size_on_disk_str, | ||
| format_timesince(last_accessed), | ||
| revision.last_modified_str, | ||
| version, | ||
| variants[0] if variants else "-", | ||
| ] | ||
| ) | ||
| rows.extend(["", "", "", "", "", variant] for variant in variants[1:]) |
Fixes #930
I have taken the approach of using
huggingface_hubutilities as much as possible to make it like ahf cache ls+ variants.