kernel-abi-check: add support for checking that a kernel does not use non-stable Torch ABI symbols#591
kernel-abi-check: add support for checking that a kernel does not use non-stable Torch ABI symbols#591danieldk wants to merge 2 commits into
Conversation
Coverage report —
|
| Name | Stmts | Miss | Cover | Missing |
|---|---|---|---|---|
| src/kernels/__init__.py | 9 | 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, 79, 95 |
| 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 | 91 | 7 | 92% | 72, 100, 154, 257, 263, 272, 290 |
| src/kernels/layer/globals.py | 5 | 0 | 100% | |
| src/kernels/layer/kernelize.py | 73 | 8 | 89% | 255, 273, 281-282, 288, 292, 308-310 |
| src/kernels/layer/layer.py | 174 | 15 | 91% | 156, 199, 205, 214, 306-307, 319, 328, 336, 347, 376, 380, 393, 446, 476 |
| 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 | 69 | 44 | 36% | 37-98, 102-125 |
| src/kernels/status.py | 49 | 2 | 96% | 23, 81 |
| src/kernels/utils.py | 281 | 54 | 81% | 57, 69-73, 79-80, 205, 209, 212, 274, 299-300, 338, 367, 372, 406, 578, 581, 583, 589, 602-603, 624-631, 635-642, 650, 654-664, 668-675, 713, 717, 736, 738 |
| src/kernels/variants.py | 262 | 19 | 93% | 56, 87, 108, 138, 247-248, 289, 291, 371-378, 384-390, 421-427, 439-445, 533-535 |
| TOTAL | 1639 | 269 | 84% |
Updated by the Test kernels workflow on commit 8c0742f191cc99828c5c2aef48f6387b9cb5705e.
sayakpaul
left a comment
There was a problem hiding this comment.
Not a merge blocker but would it make sense to add check_torch_stable_abi() to the Python bindings?
|
|
||
| use crate::version::Version; | ||
|
|
||
| // https://raw.githubusercontent.com/pytorch/pytorch/refs/heads/main/torch/csrc/stable/c/shim_function_versions.txt |
There was a problem hiding this comment.
(nit): Could use the permalink.
There was a problem hiding this comment.
I didn't make it a permalink, because we typically want to use the URL to get the latest version and update our copy.
| @@ -0,0 +1,114 @@ | |||
| # Auto-generated file listing shim functions and their minimum required versions | |||
There was a problem hiding this comment.
How do we ensure this is also the latest stable?
There was a problem hiding this comment.
Same question for the manylinux and Python ABI3 files. We should probably have a CI job to check for this and maybe make a PR automatically one one of the files is outdated.
| print_torch_stable_abi_violations(&torch_stable_abi_violations, &torch_stable_abi); | ||
|
|
||
| if !torch_stable_abi_violations.is_empty() { | ||
| return Err(eyre::eyre!("Torch stable ABI compatibility issues found")); |
There was a problem hiding this comment.
| return Err(eyre::eyre!("Torch stable ABI compatibility issues found")); | |
| return Err(eyre::eyre!("❌ Torch stable ABI compatibility issues found")); |
There was a problem hiding this comment.
Already printed with an stop sign below.
| Ok(()) | ||
| } | ||
|
|
||
| fn print_torch_stable_abi_violations( |
And wire up in the nix-builder.