Skip to content

feat: implement kernels info#685

Open
sayakpaul wants to merge 5 commits into
mainfrom
kernels-describe
Open

feat: implement kernels info#685
sayakpaul wants to merge 5 commits into
mainfrom
kernels-describe

Conversation

@sayakpaul

@sayakpaul sayakpaul commented Jul 2, 2026

Copy link
Copy Markdown
Member

Fixes #674

Example:

kernels info kernels-community/flash-attn3 
Repository: kernels-community/flash-attn3
Revision: v1
Name: flash-attn3
Version: 1
License: BSD-3-Clause
Upstream: -
Source: -
Python dependencies: -
Backends: cuda
Variants:

torch-stable-abi29-cu128-x86_64-linux: CPU (x86_64) does not match system CPU (aarch64)
torch-stable-abi29-cu126-x86_64-linux: CPU (x86_64) does not match system CPU (aarch64)
torch-stable-abi29-cu130-x86_64-linux: CPU (x86_64) does not match system CPU (aarch64)
torch211-cxx11-cu128-x86_64-linux: CPU (x86_64) does not match system CPU (aarch64)
torch210-cxx11-cu128-x86_64-linux: CPU (x86_64) does not match system CPU (aarch64)
torch212-cxx11-cu130-x86_64-linux: CPU (x86_64) does not match system CPU (aarch64)
torch211-cxx11-cu130-x86_64-linux: CPU (x86_64) does not match system CPU (aarch64)
torch210-cxx11-cu130-x86_64-linux: CPU (x86_64) does not match system CPU (aarch64)

(tested on a Macbook)

I decided to add info on the supported/unsupported variants for comprehensive info reporting. Can drop it if needed.

@HuggingFaceDocBuilderDev

Copy link
Copy Markdown

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.

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

Coverage report — kernels/

Measured on: Python 3.10 / Torch 2.12.0.
Other CI configurations are not included in this number.
Hardware-gated code paths (ROCm/XPU/NPU/Darwin/Windows) are excluded or unreachable on the Linux+CUDA runner.

Total coverage: 84.6% — threshold: 80% — ✅

Per-file breakdown
Name Stmts Miss Cover Missing
src/kernels/__init__.py 10 0 100%
src/kernels/_system.py 6 1 83% 10
src/kernels/_versions.py 63 7 89% 46, 49, 52-53, 56-57, 100
src/kernels/backends.py 194 55 72% 40, 44, 48-51, 68, 90, 108, 117, 121, 125-127, 148, 170, 181, 188-191, 201, 205-225, 233, 256-276
src/kernels/compat.py 8 1 88% 5
src/kernels/deps.py 54 4 93% 58-59, 95, 98
src/kernels/layer/__init__.py 6 0 100%
src/kernels/layer/_interval_tree.py 103 4 96% 23, 52, 147, 150
src/kernels/layer/device.py 48 14 71% 42, 47-49, 91, 96-98, 101, 149, 152, 155-157
src/kernels/layer/func.py 81 7 91% 81, 111, 183, 301, 307, 320, 338
src/kernels/layer/globals.py 5 0 100%
src/kernels/layer/kernelize.py 74 8 89% 255, 281, 289-290, 296, 300, 316-318
src/kernels/layer/layer.py 210 16 92% 167, 210, 216, 229, 337, 417-418, 430, 439, 447, 458, 487, 491, 504, 557, 587
src/kernels/layer/mode.py 14 0 100%
src/kernels/layer/repos.py 130 34 74% 27, 33, 36-41, 61-62, 68, 71-74, 88, 92, 101-102, 108, 111-114, 121-122, 128, 131-134, 141-142, 148, 151-154, 235
src/kernels/lockfile.py 71 46 35% 37-104, 108-131
src/kernels/status.py 49 2 96% 23, 81
src/kernels/utils.py 301 55 82% 65, 77-81, 87-88, 218, 222, 225, 287, 295, 334-335, 373, 404, 409, 444, 673, 676, 678, 684, 697-698, 719-731, 735-742, 750, 754-764, 768-775, 813, 817, 836, 838
src/kernels/variants.py 262 19 93% 56, 87, 108, 138, 247-248, 289, 291, 371-378, 384-390, 421-427, 439-445, 534-536
src/kernels/verify.py 88 1 99% 32
TOTAL 1777 274 85%

Updated by the Test kernels workflow on commit 0708d5cdc98ce364bf701b5d83241d614a800d97.

@danieldk danieldk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Added some comments.

Comment thread kernels/src/kernels/cli/info.py Outdated
Comment on lines +126 to +131
"variants": [
{
"variant": decision.variant.variant_str,
"compatible": isinstance(decision, VariantAccepted),
"reason": None if isinstance(decision, VariantAccepted) else decision.reason,
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has strong overlap with the existing kernels versions subcommand, I would therefore leave it out (always make orthogonal functions). Also, since some kernels accumunate(d) a lot of variants over time, it would push away all the other information.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you elaborate more on this suggestion? Didn't quite get what's wanted.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah got it.

Comment thread kernels/src/kernels/cli/info.py Outdated
Comment thread kernels/uv.lock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a kernels info <name> command to describe a kernel

3 participants