Repository navigation
feat: rust cpu support in v6 - #871
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 | 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.
bdf6056 to
d7750b3
Compare
d7750b3 to
1075538
Compare
| ${if rustSupport then "cargoDeps" else null} = rustPlatform.importCargoLock { | ||
| lockFile = cargoLock; | ||
| allowBuiltinFetchGit = true; | ||
| }; | ||
|
|
There was a problem hiding this comment.
null = ...
is strange. I'd just tack this at the end of the derivation:
} // lib.optionalAttrs rustSupport {
cargoDeps = ...;
}
(needs to before the closing parenthesis)
There was a problem hiding this comment.
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" } |
There was a problem hiding this comment.
Maybe we can ask the tvm-ffi project if they can upload a crate corresponding to v0.1.14-post1?
There was a problem hiding this comment.
yea great idea, just dropped a comment on apache/tvm-ffi#595
|
|
||
| ${if rustSupport then "cargoDeps" else null} = rustPlatform.importCargoLock { | ||
| lockFile = cargoLock; | ||
| allowBuiltinFetchGit = true; |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
Looks great, thanks for the changes!
I think we can bump up tvm-ffi to the stable version from crates.io now as well
this pr updates v6 to support rust cpu