Skip to content

feat: rust cpu support in v6 - #871

Merged
drbh merged 4 commits into
mainfrom
support-rust-cpu-v6
Oct 6, 2026
Merged

drbh merged 4 commits into
mainfrom
support-rust-cpu-v6

Conversation

@drbh

@drbh drbh commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

this pr updates v6 to support rust cpu

@drbh
drbh changed the base branch from main to config-v6 October 2, 2026 13:14
@drbh drbh changed the title Support rust cpu v6 feat: rust cpu support in v6 Oct 2, 2026
@drbh
drbh added this pull request to stack #872 October 2, 2026 13:16
@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 Oct 2, 2026 •

Copy link
Copy Markdown

Coverage report — kernels/

Measured on: Python 3.10 / Torch 2.13.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: 87.4% — threshold: 80% — ✅

Per-file breakdown
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 213 62 71% 42, 46, 50-53, 70, 92, 110, 119, 123, 127-129, 150, 159, 163, 167-169, 190, 201, 203, 210-213, 226, 230, 234-254, 262, 285-305
src/kernels/compat.py 9 1 89% 5
src/kernels/deps.py 70 1 99% 56
src/kernels/hf_hub.py 63 2 97% 21, 23
src/kernels/importer.py 44 5 89% 80, 84, 87, 101-102
src/kernels/install.py 21 7 67% 76-100
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 85 6 93% 90, 115, 191, 311, 338, 368
src/kernels/layer/globals.py 5 0 100%
src/kernels/layer/kernelize.py 82 8 90% 259, 297, 305-306, 312, 316, 332-334
src/kernels/layer/layer.py 232 14 94% 207, 254, 281, 415, 495-496, 517, 525, 536, 576, 580, 593, 646, 676
src/kernels/layer/mode.py 14 0 100%
src/kernels/layer/repos.py 144 42 71% 27, 33, 36-43, 63-64, 70, 73-76, 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 156 2 99% 220, 226
src/kernels/status.py 50 2 96% 25, 79
src/kernels/validate.py 88 5 94% 9, 100, 167, 190-191
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 127 6 95% 46, 202-204, 318-319
TOTAL 2262 286 87%

Updated by the Test kernels workflow on commit 7627ca3bf67197595b54ff5310e12f4acc9203ed.

@drbh
drbh force-pushed the support-rust-cpu-v6 branch from bdf6056 to d7750b3 Compare October 2, 2026 14:04
Base automatically changed from config-v6 to main October 2, 2026 15:13
@drbh
drbh force-pushed the support-rust-cpu-v6 branch from d7750b3 to 1075538 Compare October 2, 2026 15:13
Comment on lines +151 to +155
${if rustSupport then "cargoDeps" else null} = rustPlatform.importCargoLock {
lockFile = cargoLock;
allowBuiltinFetchGit = true;
};

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.

null = ...

is strange. I'd just tack this at the end of the derivation:

} // lib.optionalAttrs rustSupport {
  cargoDeps = ...;
}

(needs to before the closing parenthesis)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

ah yea thats much better, updated in latest commit. thanks!

name = "relu_rust"

[dependencies]
tvm-ffi = { git = "https://github.com/apache/tvm-ffi.git", rev = "2af558e255ff2f398095835ae18e6457635b0262" }

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.

Maybe we can ask the tvm-ffi project if they can upload a crate corresponding to v0.1.14-post1?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

yea great idea, just dropped a comment on apache/tvm-ffi#595

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.

Cool, they already uploaded!


${if rustSupport then "cargoDeps" else null} = rustPlatform.importCargoLock {
lockFile = cargoLock;
allowBuiltinFetchGit = true;

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.

builtin fetchers should not be used. They block evaluation, get re-evaluated every tarball-ttl seconds, etc. If this is a common occurrence that a kernel has Rust dependencies, we should have a nice way to generate and provide their Nix hashes.

E.g., we could add a flake command (only when it's a Rust kernel). hash-rust or something like that that would generate a rust-git-hashes.json or something like that and have our build read it.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

great point, updated to add a step to hash the deps and can be run like nix run .#hash-rust this calls the new hash-rust.py script that fetches the hash for each and write it to rust-git-hashes.json thanks!

danieldk
danieldk previously approved these changes Oct 6, 2026

@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.

Looks great, thanks for the changes!

I think we can bump up tvm-ffi to the stable version from crates.io now as well

@drbh
drbh merged commit 775bc20 into main Oct 6, 2026
53 checks passed
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.

3 participants