Skip to content

Commit e1d76f2

Browse files
committed
Add device autoload support to openreg
1 parent 2ad5c25 commit e1d76f2

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

test/cpp_extensions/open_registration_extension/torch_openreg/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ graph LR
125125

126126
### Autoload
127127

128-
- (TODO)
128+
- Device Autoload Mechanism
129129

130130
...
131131

@@ -145,7 +145,6 @@ After installation, you can use the `openreg` device in Python just like any oth
145145

146146
```python
147147
import torch
148-
import torch_openreg
149148

150149
if not torch.openreg.is_available():
151150
print("OpenReg backend is not available in this build.")

test/cpp_extensions/open_registration_extension/torch_openreg/setup.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ def main():
9595
cmdclass={
9696
"clean": BuildClean, # type: ignore[misc]
9797
},
98+
entry_points={
99+
"torch.backends": [
100+
"device_backend = torch_openreg:_autoload",
101+
],
102+
},
98103
)
99104

100105

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
import os
2+
13
import torch
24
import torch_openreg._C # type: ignore[misc]
35
import torch_openreg.openreg
46

57

6-
torch.utils.rename_privateuse1_backend("openreg")
7-
torch._register_device_module("openreg", torch_openreg.openreg)
8-
torch.utils.generate_methods_for_privateuse1_backend(for_storage=True)
8+
def _autoload():
9+
os.environ["IS_CUSTOM_DEVICE_BACKEND_IMPORTED"] = "1"
10+
11+
torch.utils.rename_privateuse1_backend("openreg")
12+
torch._register_device_module("openreg", torch_openreg.openreg)
13+
torch.utils.generate_methods_for_privateuse1_backend(for_storage=True)

0 commit comments

Comments
 (0)