Repository navigation
[FuncRepository] Add ability of detecting flags - #607
Conversation
|
Hi @vasqu, thanks for your interest in contributing! This project requires that pull request authors are vouched, and you are not in the list of vouched users. This PR will be closed automatically. See https://github.com/huggingface/kernels/blob/main/CONTRIBUTING.md for more details. |
| class Func(nn.Module): | ||
| # Same flags as possible with normal `nn.Module` objects that are exchanged | ||
| can_torch_compile = getattr(func, "can_torch_compile", False) | ||
| has_backward = getattr(func, "has_backward", True) |
There was a problem hiding this comment.
I took the defaults from the getattr checks so this should be BC
There was a problem hiding this comment.
Should these be documented as well? Otherwise, they feel too specific to me.
|
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 | 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, 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 | 93 | 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% | 166, 209, 215, 228, 320-321, 333, 342, 350, 361, 390, 394, 407, 460, 490 |
| 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 | 287 | 59 | 79% | 59, 71-75, 81-82, 207, 211, 214, 276, 301-302, 340, 369, 374, 408, 585-590, 616, 619, 621, 627, 640-641, 662-669, 673-680, 688, 692-702, 706-713, 751, 755, 774, 776 |
| 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 |
| TOTAL | 1648 | 274 | 83% |
Updated by the Test kernels workflow on commit 1da83e06b1542b69f2ad49ac7566f95b65bb6d72.
|
Hi @vasqu, thanks for your interest in contributing! This project requires that pull request authors are vouched, and you are not in the list of vouched users. This PR will be closed automatically. See https://github.com/huggingface/kernels/blob/main/CONTRIBUTING.md for more details. |
danieldk
left a comment
There was a problem hiding this comment.
Setting these on functions is a bit weird, but I also don't know of a better way, so let's do it!
|
Haha agree it's a bit weird but imo the cleanest without changing too much |
Similar to
LayerRepositorywe should allow flags to be passed. In this case it's a bit weird because we attach it to a callable but it does enable torch compile with other functions such as the RoPE kernel.