torchvisir 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,24 @@
1
+ This is free and unencumbered software released into the public domain.
2
+
3
+ Anyone is free to copy, modify, publish, use, compile, sell, or
4
+ distribute this software, either in source code form or as a compiled
5
+ binary, for any purpose, commercial or non-commercial, and by any
6
+ means.
7
+
8
+ In jurisdictions that recognize copyright laws, the author or authors
9
+ of this software dedicate any and all copyright interest in the
10
+ software to the public domain. We make this dedication for the benefit
11
+ of the public at large and to the detriment of our heirs and
12
+ successors. We intend this dedication to be an overt act of
13
+ relinquishment in perpetuity of all present and future rights to this
14
+ software under copyright law.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+ For more information, please refer to <https://unlicense.org>
@@ -0,0 +1,35 @@
1
+ Metadata-Version: 2.4
2
+ Name: torchvisir
3
+ Version: 0.0.1
4
+ Summary: Detect GPUs and install the matching PyTorch build
5
+ Author-email: Jonas Stare <yownas@google.com>
6
+ License-Expression: Unlicense
7
+ Project-URL: Homepage, https://github.com/yownas/torchvisir
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.10
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Dynamic: license-file
14
+
15
+ <p align="center">
16
+ <img width="526" height="522" alt="image" src="https://github.com/user-attachments/assets/23b9c4c7-3224-4b06-a5bb-7c7fddfc8368" />
17
+ </p>
18
+ The vegvísir (Icelandic for "wayfinder", lit. 'way shower') is an Icelandic magical stave intended to help the bearer
19
+ find their way through rough weather. The earliest known attestation is in the 1860 Huld manuscript. (Wikipedia)
20
+
21
+ # Torchvisir
22
+
23
+ Of the many horrors AI have brought upon us, one of the least talked about is having to install the correct version of pytoch
24
+ to match the GPU, operating system and application. This tool will hopefully take care of that.
25
+
26
+ ## TODO
27
+
28
+ Torchvisir is ni early beta version, there are still a lot of things that needs to be fixed:
29
+
30
+ * CPU fallback
31
+ * Support for Intel GPUs
32
+ * Detect supported python versions
33
+ * Consider making a pypi package
34
+ * Documentation
35
+
@@ -0,0 +1,21 @@
1
+ <p align="center">
2
+ <img width="526" height="522" alt="image" src="https://github.com/user-attachments/assets/23b9c4c7-3224-4b06-a5bb-7c7fddfc8368" />
3
+ </p>
4
+ The vegvísir (Icelandic for "wayfinder", lit. 'way shower') is an Icelandic magical stave intended to help the bearer
5
+ find their way through rough weather. The earliest known attestation is in the 1860 Huld manuscript. (Wikipedia)
6
+
7
+ # Torchvisir
8
+
9
+ Of the many horrors AI have brought upon us, one of the least talked about is having to install the correct version of pytoch
10
+ to match the GPU, operating system and application. This tool will hopefully take care of that.
11
+
12
+ ## TODO
13
+
14
+ Torchvisir is ni early beta version, there are still a lot of things that needs to be fixed:
15
+
16
+ * CPU fallback
17
+ * Support for Intel GPUs
18
+ * Detect supported python versions
19
+ * Consider making a pypi package
20
+ * Documentation
21
+
@@ -0,0 +1,25 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "torchvisir"
7
+ version = "0.0.1"
8
+ description = "Detect GPUs and install the matching PyTorch build"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = "UNLICENSE"
12
+ authors = [{ name = "Jonas Stare", email = "yownas@google.com" }]
13
+ classifiers = [
14
+ "Programming Language :: Python :: 3",
15
+ "Operating System :: OS Independent",
16
+ ]
17
+
18
+ [project.urls]
19
+ Homepage = "https://github.com/yownas/torchvisir"
20
+
21
+ [tool.setuptools]
22
+ packages = ["torchvisir"]
23
+
24
+ [tool.setuptools.package-data]
25
+ torchvisir = ["tvdb/*.json"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,4 @@
1
+ """Detect GPUs and install the matching PyTorch build."""
2
+ from .torchvisir import Torchvisir
3
+
4
+ __all__ = ["Torchvisir"]
@@ -0,0 +1,156 @@
1
+ """
2
+ torchvisir - your torch-installation guide
3
+ """
4
+ import json
5
+ import platform
6
+ import re
7
+ import subprocess
8
+ from pathlib import Path
9
+
10
+ class Torchvisir:
11
+ """Functions to find a working versions for your GPU"""
12
+ tv_db = None
13
+ pci_ids = None
14
+
15
+ def _get_pci_ids_darwin(self):
16
+ """Get GPUs on Apple computers"""
17
+ try:
18
+ res = subprocess.check_output([
19
+ "system_profiler",
20
+ "-json",
21
+ "SPDisplaysDataType"
22
+ ], text=True)
23
+ except:
24
+ res = ""
25
+ ret = []
26
+ try:
27
+ data = json.loads(res)
28
+ displays = data.get("SPDisplaysDataType", [])
29
+ for display in displays:
30
+ vendor_raw = display.get("spdisplays_vendor", "")
31
+ device_id_raw = display.get("spdisplays_device-id", "")
32
+ if device_id_raw and vendor_raw:
33
+ device_id = device_id_raw.replace("0x", "").lower()
34
+ if "Intel" in vendor_raw:
35
+ vendor_id = "8086"
36
+ else:
37
+ match = re.search(r"\((0x\w+)\)", vendor_raw)
38
+ if match:
39
+ vendor_id = match.group(1).replace("0x", "").lower()
40
+ else:
41
+ continue
42
+ ret.append(f"{str(vendor_id).lower()}:{str(device_id).lower()}")
43
+ except:
44
+ pass
45
+ return ret
46
+
47
+ def _get_pci_ids_linux(self):
48
+ """Get GPUs on Linux"""
49
+ try:
50
+ res = subprocess.check_output([
51
+ "lspci",
52
+ "-nn"
53
+ ], text=True)
54
+ except Exception as e:
55
+ print(f"ERROR: {e}")
56
+ res = ""
57
+ ret = []
58
+ for line in res.splitlines():
59
+ match = re.search(r"\[(\w+):(\w+)\]", line)
60
+ if match:
61
+ ret.append(f"{match.group(1).lower()}:{match.group(2).lower()}")
62
+ return ret
63
+
64
+ def _get_pci_ids_windows(self):
65
+ """Get GPUs on Windows"""
66
+ try:
67
+ res = subprocess.check_output([
68
+ "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
69
+ "-Command",
70
+ "Get-WmiObject Win32_VideoController | ForEach-Object { $_.PNPDeviceID }",
71
+ ], text=True, stderr=subprocess.DEVNULL)
72
+ except:
73
+ res = ""
74
+ ret = []
75
+ for line in res.splitlines():
76
+ match = re.search(r"VEN_(\w+)&DEV_(\w+)", line, re.IGNORECASE)
77
+ if match:
78
+ ret.append(f"{match.group(1).lower()}:{match.group(2).lower()}")
79
+ return ret
80
+
81
+ def get_pci_ids(self, sys=None):
82
+ """Get a list of all PCIe devices on the system"""
83
+ self.pci_ids = []
84
+
85
+ if sys is None:
86
+ sys = platform.system()
87
+
88
+ match sys:
89
+ case "Darwin":
90
+ self.pci_ids = self._get_pci_ids_darwin()
91
+ case "Linux":
92
+ self.pci_ids = self._get_pci_ids_linux()
93
+ case "Windows":
94
+ self.pci_ids = self._get_pci_ids_windows()
95
+
96
+ return self.pci_ids
97
+
98
+ def clear_tv_db(self):
99
+ """Resets the tv_db."""
100
+ self.tv_db = None
101
+
102
+ def load_tv_db(self, folder=None):
103
+ """Load json files in a folder to populate tv_db, may be run multiple times"""
104
+ self.tv_db = {}
105
+ # Use a default path to GPU DB if it wasn't specified
106
+ if folder is None:
107
+ folder = Path(__file__).resolve().parent / 'tvdb'
108
+ files = Path(folder).iterdir()
109
+ for file in files:
110
+ # Check if the file has a .json extension
111
+ if str(file).endswith('.json'):
112
+ #file_path = os.path.join(folder, file)
113
+ file_path = file
114
+ try:
115
+ # Import all JSON files into tv_db
116
+ with open(file_path, 'r', encoding='utf-8') as json_file:
117
+ data = json.load(json_file)
118
+ self.tv_db.update(data)
119
+ except Exception as e:
120
+ print(f"Error reading {file}: {e}")
121
+
122
+ def get_torch_targets(self, pci_ids=None):
123
+ """Return a set of targets derived from your PCIe devices"""
124
+ ret = set()
125
+ if pci_ids is None:
126
+ if self.pci_ids is None:
127
+ self.get_pci_ids()
128
+ pci_ids = self.pci_ids
129
+
130
+ if self.tv_db is None:
131
+ self.load_tv_db()
132
+
133
+ if pci_ids is not None and self.tv_db is not None:
134
+ for device in pci_ids:
135
+ if device in self.tv_db['pci_id_data']:
136
+ ret.add(f"{self.tv_db['pci_id_data'][device]}")
137
+ return ret
138
+
139
+ def install_torch(self, target=None, dry_run=False, quiet=True):
140
+ """Try to figure out a good pip-command for the current setup"""
141
+ if target is None:
142
+ target = self.get_torch_targets()
143
+
144
+ tgt = next(iter(target)) # TODO: We might have multiple targets
145
+ for vendor in self.tv_db['repos']:
146
+ if re.match(self.tv_db['repos'][vendor]['pattern'], tgt):
147
+ index_url = re.sub('TARGET', tgt, self.tv_db['repos'][vendor]['index_url'])
148
+ pkgs = []
149
+ for pkg in self.tv_db['repos'][vendor]['pkgs']:
150
+ pkgs.append(re.sub('TARGET', tgt, pkg))
151
+ cmd = ['pip', 'install'] + pkgs + ['--index-url', index_url]
152
+ if not quiet:
153
+ print("> ", ' '.join(cmd))
154
+ if not dry_run:
155
+ subprocess.check_output(cmd, text=True)
156
+ break
@@ -0,0 +1,892 @@
1
+ {
2
+ "pci_id_data": {
3
+ "1458:1002": "gfx1030",
4
+ "1458:2425": "gfx1202",
5
+ "1002:1902": "gfx1153",
6
+ "17aa:3828": "gfx1153",
7
+ "1002:66a0": "gfx906",
8
+ "1002:66a1": "gfx906",
9
+ "1002:66a2": "gfx906",
10
+ "1002:66a3": "gfx906",
11
+ "1002:66a7": "gfx906",
12
+ "1002:66af": "gfx906",
13
+ "1002:69af": "gfx906",
14
+ "1002:7310": "gfx1010",
15
+ "1002:7312": "gfx1010",
16
+ "1002:7319": "gfx1010",
17
+ "1002:731b": "gfx1010",
18
+ "1002:731f": "gfx1010",
19
+ "1002:0b36": "gfx1010",
20
+ "1458:2313": "gfx1010",
21
+ "1458:231d": "gfx1010",
22
+ "1462:381e": "gfx1010",
23
+ "148c:2398": "gfx1010",
24
+ "1682:5701": "gfx1010",
25
+ "1849:5102": "gfx1010",
26
+ "1849:5120": "gfx1010",
27
+ "1da2:e409": "gfx1010",
28
+ "1da2:e410": "gfx1010",
29
+ "1da2:e411": "gfx1010",
30
+ "1002:7340": "gfx1012",
31
+ "106b:0210": "gfx1012",
32
+ "106b:0219": "gfx1012",
33
+ "1002:7341": "gfx1012",
34
+ "1002:7347": "gfx1012",
35
+ "1002:734f": "gfx1012",
36
+ "1002:7360": "gfx1011",
37
+ "1002:7362": "gfx1011",
38
+ "1002:738c": "gfx908",
39
+ "1002:738e": "gfx908",
40
+ "1002:73a1": "gfx1030",
41
+ "1002:73a5": "gfx1030",
42
+ "1002:0e3a": "gfx1030",
43
+ "1849:5230": "gfx1030",
44
+ "1849:5238": "gfx1030",
45
+ "1da2:441d": "gfx1030",
46
+ "1eae:6950": "gfx1030",
47
+ "1002:73ae": "gfx1030",
48
+ "1002:73af": "gfx1030",
49
+ "148c:2414": "gfx1030",
50
+ "1002:73bf": "gfx1030",
51
+ "148c:2408": "gfx1030",
52
+ "1da2:438e": "gfx1030",
53
+ "1da2:440f": "gfx1030",
54
+ "1da2:e437": "gfx1030",
55
+ "1eae:6701": "gfx1030",
56
+ "1eae:6901": "gfx1030",
57
+ "1002:73df": "gfx1031",
58
+ "1002:0e36": "gfx1031",
59
+ "1043:16c2": "gfx1031",
60
+ "1458:2408": "gfx1031",
61
+ "1462:3980": "gfx1031",
62
+ "148c:2409": "gfx1031",
63
+ "1849:5210": "gfx1031",
64
+ "1849:5219": "gfx1031",
65
+ "1849:5222": "gfx1031",
66
+ "1da2:445e": "gfx1031",
67
+ "1da2:465e": "gfx1031",
68
+ "1da2:e445": "gfx1031",
69
+ "1eae:6601": "gfx1031",
70
+ "1eae:661a": "gfx1031",
71
+ "1002:73ef": "gfx1032",
72
+ "1458:2405": "gfx1032",
73
+ "1462:5027": "gfx1032",
74
+ "1849:5236": "gfx1032",
75
+ "1002:73f0": "gfx1102",
76
+ "1002:73ff": "gfx1032",
77
+ "1462:5021": "gfx1032",
78
+ "1462:5022": "gfx1032",
79
+ "148c:2412": "gfx1032",
80
+ "1849:5218": "gfx1032",
81
+ "1da2:448e": "gfx1032",
82
+ "1002:7408": "gfx90a",
83
+ "1002:740c": "gfx90a",
84
+ "1002:740f": "gfx90a",
85
+ "1002:7421": "gfx1034",
86
+ "1002:7422": "gfx1034",
87
+ "1002:7423": "gfx1034",
88
+ "1002:7424": "gfx1034",
89
+ "1002:743f": "gfx1034",
90
+ "1da2:e457": "gfx1034",
91
+ "1002:7448": "gfx1100",
92
+ "1002:7449": "gfx1100",
93
+ "1002:744a": "gfx1100",
94
+ "1002:744b": "gfx1100",
95
+ "1002:744c": "gfx1100",
96
+ "1002:0e3b": "gfx1100",
97
+ "1043:0506": "gfx1100",
98
+ "148c:2425": "gfx1100",
99
+ "1849:5304": "gfx1100",
100
+ "1da2:471e": "gfx1100",
101
+ "1da2:475e": "gfx1100",
102
+ "1da2:e471": "gfx1100",
103
+ "1eae:7901": "gfx1100",
104
+ "1eae:790a": "gfx1100",
105
+ "1002:745e": "gfx1100",
106
+ "1002:7470": "gfx1101",
107
+ "1002:747e": "gfx1101",
108
+ "1462:7e26": "gfx1101",
109
+ "148c:2427": "gfx1101",
110
+ "1002:7480": "gfx1102",
111
+ "1849:5313": "gfx1102",
112
+ "1002:7483": "gfx1102",
113
+ "1002:7487": "gfx1102",
114
+ "1002:7489": "gfx1102",
115
+ "1002:748b": "gfx1102",
116
+ "1002:7499": "gfx1102",
117
+ "1002:749f": "gfx1102",
118
+ "1002:74a0": "gfx942",
119
+ "1002:74a1": "gfx942",
120
+ "1002:74a5": "gfx942",
121
+ "1002:74a9": "gfx942",
122
+ "1002:74b5": "gfx942",
123
+ "1002:74b9": "gfx942",
124
+ "1002:74bd": "gfx942",
125
+ "1002:7550": "gfx1201",
126
+ "1458:2437": "gfx1201",
127
+ "148c:2435": "gfx1201",
128
+ "1849:5403": "gfx1201",
129
+ "1da2:e490": "gfx1201",
130
+ "1002:7551": "gfx1201",
131
+ "1002:7590": "gfx1200",
132
+ "1043:0639": "gfx1200",
133
+ "1458:2429": "gfx1200",
134
+ "1eae:8601": "gfx1200",
135
+ "1002:75a0": "gfx950",
136
+ "1002:75a3": "gfx950",
137
+ "1002:ab20": "gfx906",
138
+ "10de:0fb0": "cu126",
139
+ "10de:0fb8": "cu126",
140
+ "10de:0fb9": "cu126",
141
+ "10de:0fba": "cu126",
142
+ "10de:0fbb": "cu126",
143
+ "10de:0fbc": "cu126",
144
+ "10de:10ef": "cu126",
145
+ "10de:10f0": "cu126",
146
+ "10de:10f1": "cu126",
147
+ "1043:85b6": "cu126",
148
+ "10de:10f7": "cu133",
149
+ "10de:10f8": "cu133",
150
+ "10de:10f9": "cu133",
151
+ "1043:8673": "cu133",
152
+ "10de:1340": "cu126",
153
+ "103c:2b2b": "cu126",
154
+ "10de:1341": "cu126",
155
+ "17aa:3697": "cu126",
156
+ "17aa:3699": "cu126",
157
+ "17aa:369c": "cu126",
158
+ "10de:1344": "cu126",
159
+ "10de:1346": "cu126",
160
+ "10de:1347": "cu133",
161
+ "10de:1348": "cu133",
162
+ "10de:1349": "cu133",
163
+ "10de:134b": "cu126",
164
+ "10de:134d": "cu126",
165
+ "17aa:2248": "cu126",
166
+ "10de:134e": "cu126",
167
+ "10de:134f": "cu126",
168
+ "10de:137a": "cu126",
169
+ "17aa:505a": "cu126",
170
+ "10de:137b": "cu126",
171
+ "10de:137d": "cu126",
172
+ "10de:1380": "cu126",
173
+ "10de:1381": "cu126",
174
+ "10de:1382": "cu126",
175
+ "10de:1389": "cu126",
176
+ "10de:1390": "cu126",
177
+ "10de:1391": "cu126",
178
+ "17aa:a125": "cu126",
179
+ "10de:1392": "cu126",
180
+ "10de:1393": "cu126",
181
+ "10de:1398": "cu126",
182
+ "10de:1399": "cu126",
183
+ "10de:139a": "cu126",
184
+ "17aa:362c": "cu126",
185
+ "17aa:362f": "cu126",
186
+ "17aa:363f": "cu126",
187
+ "17aa:3640": "cu126",
188
+ "17aa:3647": "cu126",
189
+ "17aa:36b9": "cu126",
190
+ "10de:139b": "cu126",
191
+ "1028:06e4": "cu126",
192
+ "103c:2b4c": "cu126",
193
+ "10de:139c": "cu126",
194
+ "10de:139d": "cu126",
195
+ "10de:13ad": "cu126",
196
+ "10de:13ae": "cu126",
197
+ "10de:13b0": "cu126",
198
+ "10de:13b1": "cu126",
199
+ "10de:13b2": "cu126",
200
+ "10de:13b3": "cu126",
201
+ "10de:13b4": "cu126",
202
+ "10de:13b6": "cu126",
203
+ "10de:13b9": "cu126",
204
+ "10de:13ba": "cu126",
205
+ "10de:13bb": "cu126",
206
+ "10de:13bc": "cu126",
207
+ "10de:13bd": "cu126",
208
+ "10de:110a": "cu126",
209
+ "10de:1160": "cu126",
210
+ "10de:11d2": "cu126",
211
+ "10de:13be": "cu126",
212
+ "10de:13bf": "cu126",
213
+ "10de:13c0": "cu126",
214
+ "1043:8504": "cu126",
215
+ "10de:13c1": "cu126",
216
+ "10de:13c2": "cu126",
217
+ "10de:13c3": "cu126",
218
+ "10de:13c4": "cu126",
219
+ "10de:13d7": "cu126",
220
+ "10de:13d8": "cu133",
221
+ "10de:13d9": "cu133",
222
+ "10de:13da": "cu126",
223
+ "10de:13e4": "cu126",
224
+ "10de:13e7": "cu126",
225
+ "10de:13f0": "cu126",
226
+ "10de:13f1": "cu126",
227
+ "10de:13f2": "cu126",
228
+ "10de:114d": "cu126",
229
+ "10de:114e": "cu126",
230
+ "10de:1150": "cu126",
231
+ "10de:11b0": "cu126",
232
+ "10de:13f3": "cu126",
233
+ "10de:1184": "cu126",
234
+ "10de:13f8": "cu126",
235
+ "10de:13f9": "cu126",
236
+ "10de:13fa": "cu126",
237
+ "10de:11c9": "cu126",
238
+ "10de:13fb": "cu126",
239
+ "10de:1401": "cu126",
240
+ "10de:1402": "cu126",
241
+ "10de:1404": "cu126",
242
+ "10de:1406": "cu126",
243
+ "10de:1407": "cu126",
244
+ "10de:1427": "cu126",
245
+ "103c:825b": "cu126",
246
+ "10de:1430": "cu126",
247
+ "10de:1431": "cu126",
248
+ "10de:1436": "cu126",
249
+ "10de:15c2": "cu126",
250
+ "10de:15f0": "cu126",
251
+ "10de:15f1": "cu126",
252
+ "10de:15f7": "cu126",
253
+ "10de:15f8": "cu126",
254
+ "10de:15f9": "cu126",
255
+ "10de:15fa": "cu126",
256
+ "10de:15fb": "cu126",
257
+ "10de:15fc": "cu126",
258
+ "10de:15ff": "cu126",
259
+ "10de:1613": "cu126",
260
+ "10de:1617": "cu126",
261
+ "10de:1618": "cu126",
262
+ "10de:1619": "cu126",
263
+ "10de:161a": "cu126",
264
+ "10de:1667": "cu126",
265
+ "10de:1676": "cu126",
266
+ "10de:1725": "cu126",
267
+ "10de:172e": "cu126",
268
+ "10de:172f": "cu126",
269
+ "10de:174d": "cu126",
270
+ "10de:174e": "cu126",
271
+ "10de:1789": "cu126",
272
+ "10de:179c": "cu126",
273
+ "1025:1094": "cu126",
274
+ "10de:17c2": "cu126",
275
+ "10de:17c8": "cu126",
276
+ "10de:17f0": "cu126",
277
+ "10de:1141": "cu126",
278
+ "10de:17f1": "cu126",
279
+ "10de:17fd": "cu126",
280
+ "10de:1ad6": "cu133",
281
+ "10de:1ad7": "cu133",
282
+ "10de:1ad8": "cu133",
283
+ "10de:1ad9": "cu133",
284
+ "10de:1ada": "cu133",
285
+ "10de:1adb": "cu133",
286
+ "10de:1aeb": "cu133",
287
+ "10de:1aec": "cu133",
288
+ "10de:1aed": "cu133",
289
+ "10de:1aef": "cu133",
290
+ "10de:1af1": "cu133",
291
+ "10de:1b00": "cu126",
292
+ "10de:1b01": "cu126",
293
+ "10de:1b02": "cu126",
294
+ "10de:1b04": "cu126",
295
+ "10de:1b06": "cu126",
296
+ "10de:1b07": "cu126",
297
+ "10de:1b30": "cu126",
298
+ "10de:1b38": "cu126",
299
+ "10de:1b39": "cu126",
300
+ "10de:1b70": "cu126",
301
+ "10de:1b78": "cu126",
302
+ "10de:1b80": "cu126",
303
+ "10de:1b81": "cu126",
304
+ "10de:1b82": "cu126",
305
+ "10de:1b83": "cu126",
306
+ "10de:1b84": "cu126",
307
+ "10de:1b87": "cu126",
308
+ "10de:1ba0": "cu126",
309
+ "10de:1ba1": "cu126",
310
+ "1458:1651": "cu126",
311
+ "1462:11e8": "cu126",
312
+ "1462:11e9": "cu126",
313
+ "1558:9501": "cu126",
314
+ "10de:1ba2": "cu126",
315
+ "10de:1ba9": "cu126",
316
+ "10de:1baa": "cu126",
317
+ "10de:1bad": "cu126",
318
+ "10de:1bb0": "cu126",
319
+ "10de:1bb1": "cu126",
320
+ "10de:1bb3": "cu126",
321
+ "10de:1bb4": "cu126",
322
+ "10de:1bb5": "cu126",
323
+ "103c:842f": "cu126",
324
+ "10de:1bb6": "cu126",
325
+ "10de:1bb7": "cu126",
326
+ "10de:1bb8": "cu126",
327
+ "10de:1bb9": "cu126",
328
+ "10de:1bbb": "cu126",
329
+ "10de:1bc7": "cu126",
330
+ "10de:1be0": "cu126",
331
+ "1028:07c0": "cu126",
332
+ "1458:355b": "cu126",
333
+ "10de:1be1": "cu126",
334
+ "10de:1c00": "cu126",
335
+ "10de:1c01": "cu126",
336
+ "10de:1c02": "cu126",
337
+ "10de:1c03": "cu126",
338
+ "10de:1c04": "cu126",
339
+ "10de:1c06": "cu126",
340
+ "10de:1c07": "cu126",
341
+ "10de:1c09": "cu126",
342
+ "10de:1c20": "cu126",
343
+ "17aa:39b9": "cu126",
344
+ "10de:1c21": "cu126",
345
+ "10de:1c22": "cu126",
346
+ "10de:1c23": "cu126",
347
+ "1414:0020": "cu126",
348
+ "10de:1c2d": "cu126",
349
+ "10de:1c30": "cu126",
350
+ "10de:1c31": "cu126",
351
+ "10de:1c35": "cu126",
352
+ "10de:1c36": "cu126",
353
+ "10de:1c60": "cu126",
354
+ "103c:8390": "cu126",
355
+ "10de:1c61": "cu126",
356
+ "10de:1c62": "cu126",
357
+ "10de:1c70": "cu126",
358
+ "10de:1c81": "cu126",
359
+ "10de:1c82": "cu126",
360
+ "1043:8613": "cu126",
361
+ "1458:3763": "cu126",
362
+ "10de:1c83": "cu126",
363
+ "10de:1c8c": "cu126",
364
+ "10de:1c8d": "cu126",
365
+ "10de:1c8e": "cu126",
366
+ "10de:1c8f": "cu126",
367
+ "10de:1c90": "cu126",
368
+ "10de:1c91": "cu126",
369
+ "10de:1c92": "cu126",
370
+ "10de:1c94": "cu126",
371
+ "10de:1c96": "cu126",
372
+ "10de:1ca7": "cu126",
373
+ "10de:1ca8": "cu126",
374
+ "10de:1caa": "cu126",
375
+ "10de:1cb1": "cu126",
376
+ "10de:1cb2": "cu126",
377
+ "10de:1cb3": "cu126",
378
+ "10de:1cb6": "cu126",
379
+ "10de:1cba": "cu126",
380
+ "103c:842c": "cu126",
381
+ "10de:1cbb": "cu126",
382
+ "103c:8429": "cu126",
383
+ "103c:8451": "cu126",
384
+ "10de:1cbc": "cu126",
385
+ "10de:1cbd": "cu126",
386
+ "10de:1ccc": "cu126",
387
+ "10de:1ccd": "cu126",
388
+ "10de:1cfa": "cu126",
389
+ "10de:1cfb": "cu126",
390
+ "10de:1d01": "cu126",
391
+ "10de:1d02": "cu126",
392
+ "10de:1d10": "cu126",
393
+ "17aa:225e": "cu126",
394
+ "10de:1d11": "cu126",
395
+ "10de:1d12": "cu126",
396
+ "1d72:1701": "cu126",
397
+ "10de:1d13": "cu126",
398
+ "10de:1d16": "cu126",
399
+ "10de:1d33": "cu126",
400
+ "10de:1d34": "cu126",
401
+ "10de:1d52": "cu126",
402
+ "10de:1d56": "cu126",
403
+ "10de:1d81": "cu126",
404
+ "10de:1d83": "cu126",
405
+ "10de:1d84": "cu126",
406
+ "10de:1db0": "cu126",
407
+ "10de:1db1": "cu126",
408
+ "10de:1db2": "cu126",
409
+ "10de:1db3": "cu126",
410
+ "10de:1db4": "cu126",
411
+ "10de:1db5": "cu126",
412
+ "10de:1db6": "cu126",
413
+ "10de:1db7": "cu126",
414
+ "10de:1db8": "cu126",
415
+ "10de:131d": "cu126",
416
+ "10de:1dba": "cu126",
417
+ "10de:12eb": "cu126",
418
+ "10de:1dbd": "cu126",
419
+ "10de:1dbe": "cu126",
420
+ "10de:1dc1": "cu126",
421
+ "10de:1df0": "cu126",
422
+ "10de:1df2": "cu126",
423
+ "10de:1df4": "cu126",
424
+ "10de:1df5": "cu126",
425
+ "10de:1df6": "cu126",
426
+ "10de:1e02": "cu133",
427
+ "10de:12a3": "cu133",
428
+ "10de:1e03": "cu133",
429
+ "10de:1e04": "cu133",
430
+ "10de:1e07": "cu133",
431
+ "1462:3715": "cu133",
432
+ "10de:1e09": "cu133",
433
+ "10de:1e2d": "cu133",
434
+ "10de:1e2e": "cu133",
435
+ "10de:1e30": "cu133",
436
+ "10de:129e": "cu133",
437
+ "10de:12ba": "cu133",
438
+ "10de:1e35": "cu133",
439
+ "10de:1e36": "cu133",
440
+ "10de:1e37": "cu133",
441
+ "10de:1304": "cu133",
442
+ "10de:1370": "cu133",
443
+ "10de:13a5": "cu133",
444
+ "10de:1e38": "cu133",
445
+ "10de:1e3c": "cu133",
446
+ "10de:1e3d": "cu133",
447
+ "10de:1e3e": "cu133",
448
+ "10de:1e78": "cu133",
449
+ "10de:1e81": "cu133",
450
+ "10de:1e82": "cu133",
451
+ "10de:1e84": "cu133",
452
+ "10de:1e87": "cu133",
453
+ "10de:1e89": "cu133",
454
+ "10de:1e90": "cu133",
455
+ "10de:1e91": "cu133",
456
+ "10de:1e93": "cu133",
457
+ "10de:1eab": "cu133",
458
+ "10de:1eae": "cu133",
459
+ "10de:1eb0": "cu133",
460
+ "10de:1eb1": "cu133",
461
+ "10de:1eb4": "cu133",
462
+ "10de:1eb5": "cu133",
463
+ "10de:1eb6": "cu133",
464
+ "10de:1eb8": "cu133",
465
+ "10de:1eb9": "cu133",
466
+ "10de:1eba": "cu133",
467
+ "10de:1ebe": "cu133",
468
+ "10de:1ec2": "cu133",
469
+ "10de:1ec7": "cu133",
470
+ "10de:1ed0": "cu133",
471
+ "10de:1ed1": "cu133",
472
+ "10de:1ed3": "cu133",
473
+ "10de:1ef5": "cu133",
474
+ "10de:1f02": "cu133",
475
+ "10de:1f03": "cu133",
476
+ "10de:1f04": "cu133",
477
+ "10de:1f06": "cu133",
478
+ "10de:1f07": "cu133",
479
+ "10de:1f08": "cu133",
480
+ "10de:1f09": "cu133",
481
+ "10de:1f0a": "cu133",
482
+ "10de:1f0b": "cu133",
483
+ "10de:1f10": "cu133",
484
+ "10de:1f11": "cu133",
485
+ "10de:1f12": "cu133",
486
+ "10de:1f14": "cu133",
487
+ "10de:1f15": "cu133",
488
+ "10de:1f2e": "cu133",
489
+ "10de:1f36": "cu133",
490
+ "10de:1f42": "cu133",
491
+ "10de:1f47": "cu133",
492
+ "10de:1f50": "cu133",
493
+ "10de:1f51": "cu133",
494
+ "10de:1f54": "cu133",
495
+ "10de:1f55": "cu133",
496
+ "10de:1f76": "cu133",
497
+ "10de:1f81": "cu133",
498
+ "10de:1f82": "cu133",
499
+ "19da:3595": "cu133",
500
+ "10de:1f83": "cu133",
501
+ "10de:1f91": "cu133",
502
+ "10de:1f92": "cu133",
503
+ "10de:1f94": "cu133",
504
+ "10de:1f95": "cu133",
505
+ "10de:1f96": "cu133",
506
+ "10de:1f97": "cu133",
507
+ "10de:1f98": "cu133",
508
+ "10de:1f99": "cu133",
509
+ "10de:1f9c": "cu133",
510
+ "10de:1f9d": "cu133",
511
+ "10de:1f9f": "cu133",
512
+ "10de:1fa0": "cu133",
513
+ "10de:1fa1": "cu133",
514
+ "10de:1fae": "cu133",
515
+ "10de:1fb0": "cu133",
516
+ "10de:1fb1": "cu133",
517
+ "10de:1fb2": "cu133",
518
+ "10de:1fb6": "cu133",
519
+ "1028:0b10": "cu133",
520
+ "10de:1fb7": "cu133",
521
+ "10de:1fb8": "cu133",
522
+ "10de:1fb9": "cu133",
523
+ "10de:1fba": "cu133",
524
+ "10de:1fbb": "cu133",
525
+ "10de:1fbc": "cu133",
526
+ "10de:1fbf": "cu133",
527
+ "10de:1fd9": "cu133",
528
+ "10de:1fdd": "cu133",
529
+ "10de:1ff0": "cu133",
530
+ "10de:1ff2": "cu133",
531
+ "10de:1ff9": "cu133",
532
+ "10de:2080": "cu133",
533
+ "10de:2081": "cu133",
534
+ "10de:2082": "cu133",
535
+ "10de:20b0": "cu133",
536
+ "10de:20b1": "cu133",
537
+ "10de:20b2": "cu133",
538
+ "10de:20b3": "cu133",
539
+ "10de:20b4": "cu133",
540
+ "10de:20b5": "cu133",
541
+ "10de:20b6": "cu133",
542
+ "10de:20b7": "cu133",
543
+ "10de:20b8": "cu133",
544
+ "10de:20b9": "cu133",
545
+ "10de:20bb": "cu133",
546
+ "10de:20bd": "cu133",
547
+ "10de:20be": "cu133",
548
+ "10de:20bf": "cu133",
549
+ "10de:20c0": "cu133",
550
+ "10de:20c2": "cu133",
551
+ "10de:20f0": "cu133",
552
+ "10de:20f1": "cu133",
553
+ "10de:20f2": "cu133",
554
+ "10de:20f3": "cu133",
555
+ "10de:20f5": "cu133",
556
+ "10de:20f6": "cu133",
557
+ "10de:20fd": "cu133",
558
+ "10de:20fe": "cu133",
559
+ "10de:20ff": "cu133",
560
+ "10de:2182": "cu133",
561
+ "10de:2183": "cu133",
562
+ "10de:2184": "cu133",
563
+ "10de:2186": "cu133",
564
+ "10de:2187": "cu133",
565
+ "10de:2188": "cu133",
566
+ "10de:2189": "cu133",
567
+ "10de:2191": "cu133",
568
+ "10de:2192": "cu133",
569
+ "10de:21ae": "cu133",
570
+ "10de:21bf": "cu133",
571
+ "10de:21c2": "cu133",
572
+ "10de:21c3": "cu133",
573
+ "10de:21c4": "cu133",
574
+ "10de:21d1": "cu133",
575
+ "10de:2200": "cu133",
576
+ "10de:2203": "cu133",
577
+ "10de:2204": "cu133",
578
+ "10de:147d": "cu133",
579
+ "1462:3881": "cu133",
580
+ "3842:3973": "cu133",
581
+ "10de:2205": "cu133",
582
+ "10de:2206": "cu133",
583
+ "10de:1467": "cu133",
584
+ "10de:146d": "cu133",
585
+ "1462:3892": "cu133",
586
+ "10de:2207": "cu133",
587
+ "10de:2208": "cu133",
588
+ "10de:220a": "cu133",
589
+ "10de:220d": "cu133",
590
+ "10de:2216": "cu133",
591
+ "10de:222b": "cu133",
592
+ "10de:222f": "cu133",
593
+ "10de:2230": "cu133",
594
+ "10de:2231": "cu133",
595
+ "10de:2232": "cu133",
596
+ "10de:2233": "cu133",
597
+ "10de:2235": "cu133",
598
+ "10de:2236": "cu133",
599
+ "10de:2237": "cu133",
600
+ "10de:2238": "cu133",
601
+ "10de:223f": "cu133",
602
+ "10de:228b": "cu133",
603
+ "10de:228e": "cu133",
604
+ "10de:2291": "cu133",
605
+ "10de:22a3": "cu133",
606
+ "10de:22ba": "cu133",
607
+ "10de:22bb": "cu133",
608
+ "10de:22bc": "cu133",
609
+ "10de:22bd": "cu133",
610
+ "10de:22be": "cu133",
611
+ "10de:22ce": "cu133",
612
+ "10de:22d0": "cu133",
613
+ "10de:22d1": "cu133",
614
+ "10de:22e8": "cu133",
615
+ "10de:22e9": "cu133",
616
+ "10de:22eb": "cu133",
617
+ "10de:22ec": "cu133",
618
+ "10de:2302": "cu133",
619
+ "10de:230c": "cu133",
620
+ "10de:230e": "cu133",
621
+ "10de:2313": "cu133",
622
+ "10de:2321": "cu133",
623
+ "10de:2322": "cu133",
624
+ "10de:2324": "cu133",
625
+ "10de:2328": "cu133",
626
+ "10de:2329": "cu133",
627
+ "10de:232c": "cu133",
628
+ "10de:2330": "cu133",
629
+ "10de:2331": "cu133",
630
+ "10de:2335": "cu133",
631
+ "10de:2336": "cu133",
632
+ "10de:2337": "cu133",
633
+ "10de:2338": "cu133",
634
+ "10de:2339": "cu133",
635
+ "10de:233a": "cu133",
636
+ "10de:233b": "cu133",
637
+ "10de:233d": "cu133",
638
+ "10de:2342": "cu133",
639
+ "10de:2343": "cu133",
640
+ "10de:2345": "cu133",
641
+ "10de:2348": "cu133",
642
+ "10de:237e": "cu133",
643
+ "10de:237f": "cu133",
644
+ "10de:23b0": "cu133",
645
+ "10de:23f0": "cu133",
646
+ "10de:2414": "cu133",
647
+ "10de:2420": "cu133",
648
+ "10de:2438": "cu133",
649
+ "10de:2460": "cu133",
650
+ "10de:2480": "cu133",
651
+ "10de:2482": "cu133",
652
+ "10de:2483": "cu133",
653
+ "10de:2484": "cu133",
654
+ "10de:146b": "cu133",
655
+ "10de:14ae": "cu133",
656
+ "10de:2486": "cu133",
657
+ "19da:6630": "cu133",
658
+ "10de:2487": "cu133",
659
+ "10de:2488": "cu133",
660
+ "10de:2489": "cu133",
661
+ "10de:248a": "cu133",
662
+ "10de:248c": "cu133",
663
+ "10de:248d": "cu133",
664
+ "10de:248e": "cu133",
665
+ "10de:249c": "cu133",
666
+ "10de:249d": "cu133",
667
+ "10de:249f": "cu133",
668
+ "10de:24a0": "cu133",
669
+ "10de:24a4": "cu133",
670
+ "10de:24ac": "cu133",
671
+ "10de:24ad": "cu133",
672
+ "10de:24af": "cu133",
673
+ "10de:24b0": "cu133",
674
+ "10de:24b1": "cu133",
675
+ "10de:24b6": "cu133",
676
+ "10de:24b7": "cu133",
677
+ "10de:24b8": "cu133",
678
+ "10de:24b9": "cu133",
679
+ "10de:24ba": "cu133",
680
+ "10de:24bb": "cu133",
681
+ "10de:24bf": "cu133",
682
+ "10de:24c0": "cu133",
683
+ "10de:24c7": "cu133",
684
+ "10de:24c8": "cu133",
685
+ "10de:24c9": "cu133",
686
+ "10de:24dc": "cu133",
687
+ "10de:24dd": "cu133",
688
+ "10de:24df": "cu133",
689
+ "10de:24e0": "cu133",
690
+ "10de:24fa": "cu133",
691
+ "10de:2501": "cu133",
692
+ "10de:2503": "cu133",
693
+ "10de:2504": "cu133",
694
+ "10de:2505": "cu133",
695
+ "10de:2507": "cu133",
696
+ "10de:2508": "cu133",
697
+ "10de:2509": "cu133",
698
+ "10de:2520": "cu133",
699
+ "10de:2521": "cu133",
700
+ "10de:2523": "cu133",
701
+ "10de:252f": "cu133",
702
+ "10de:2531": "cu133",
703
+ "10de:2544": "cu133",
704
+ "10de:2560": "cu133",
705
+ "10de:2561": "cu133",
706
+ "10de:2563": "cu133",
707
+ "10de:2571": "cu133",
708
+ "10de:2582": "cu133",
709
+ "10de:2583": "cu133",
710
+ "10de:2584": "cu133",
711
+ "10de:25a0": "cu133",
712
+ "10de:25a2": "cu133",
713
+ "10de:25a3": "cu133",
714
+ "10de:25a4": "cu133",
715
+ "10de:25a5": "cu133",
716
+ "10de:25a6": "cu133",
717
+ "10de:25a7": "cu133",
718
+ "10de:25a9": "cu133",
719
+ "10de:25aa": "cu133",
720
+ "10de:25ab": "cu133",
721
+ "10de:25ac": "cu133",
722
+ "10de:25ad": "cu133",
723
+ "10de:25af": "cu133",
724
+ "10de:25b0": "cu133",
725
+ "10de:25b2": "cu133",
726
+ "10de:25b5": "cu133",
727
+ "10de:25b6": "cu133",
728
+ "10de:25b8": "cu133",
729
+ "10de:25b9": "cu133",
730
+ "10de:25ba": "cu133",
731
+ "10de:25bb": "cu133",
732
+ "10de:25bc": "cu133",
733
+ "10de:25bd": "cu133",
734
+ "10de:25e0": "cu133",
735
+ "10de:25e2": "cu133",
736
+ "10de:25e5": "cu133",
737
+ "10de:25ec": "cu133",
738
+ "10de:25ed": "cu133",
739
+ "10de:25f9": "cu133",
740
+ "10de:25fa": "cu133",
741
+ "10de:25fb": "cu133",
742
+ "10de:2681": "cu133",
743
+ "10de:2684": "cu133",
744
+ "10de:2685": "cu133",
745
+ "10de:2689": "cu133",
746
+ "10de:26af": "cu133",
747
+ "10de:26b1": "cu133",
748
+ "10de:26b2": "cu133",
749
+ "10de:26b3": "cu133",
750
+ "10de:26b5": "cu133",
751
+ "10de:26b7": "cu133",
752
+ "10de:26b8": "cu133",
753
+ "10de:26b9": "cu133",
754
+ "10de:26ba": "cu133",
755
+ "10de:26bb": "cu133",
756
+ "10de:26f5": "cu133",
757
+ "10de:2702": "cu133",
758
+ "10de:2703": "cu133",
759
+ "10de:2704": "cu133",
760
+ "10de:2705": "cu133",
761
+ "10de:2709": "cu133",
762
+ "10de:2717": "cu133",
763
+ "10de:2730": "cu133",
764
+ "10de:2757": "cu133",
765
+ "10de:2770": "cu133",
766
+ "10de:2782": "cu133",
767
+ "10de:2783": "cu133",
768
+ "10de:2785": "cu133",
769
+ "10de:2786": "cu133",
770
+ "10de:2788": "cu133",
771
+ "10de:27a0": "cu133",
772
+ "10de:27b0": "cu133",
773
+ "10de:27b1": "cu133",
774
+ "10de:27b2": "cu133",
775
+ "10de:27b6": "cu133",
776
+ "10de:27b7": "cu133",
777
+ "10de:27b8": "cu133",
778
+ "10de:27ba": "cu133",
779
+ "10de:27bb": "cu133",
780
+ "10de:27e0": "cu133",
781
+ "10de:27fa": "cu133",
782
+ "10de:27fb": "cu133",
783
+ "10de:2803": "cu133",
784
+ "10de:2805": "cu133",
785
+ "10de:2808": "cu133",
786
+ "10de:2820": "cu133",
787
+ "10de:2822": "cu133",
788
+ "10de:2838": "cu133",
789
+ "10de:2860": "cu133",
790
+ "10de:2878": "cu133",
791
+ "10de:2882": "cu133",
792
+ "10de:28a0": "cu133",
793
+ "10de:28a1": "cu133",
794
+ "10de:28a3": "cu133",
795
+ "10de:28b0": "cu133",
796
+ "10de:28b8": "cu133",
797
+ "10de:28b9": "cu133",
798
+ "10de:28ba": "cu133",
799
+ "10de:28bb": "cu133",
800
+ "10de:28e0": "cu133",
801
+ "10de:28e1": "cu133",
802
+ "10de:28e3": "cu133",
803
+ "10de:28f8": "cu133",
804
+ "10de:2900": "cu133",
805
+ "10de:2901": "cu133",
806
+ "10de:2909": "cu133",
807
+ "10de:290a": "cu133",
808
+ "10de:2920": "cu133",
809
+ "10de:2924": "cu133",
810
+ "10de:2925": "cu133",
811
+ "10de:293d": "cu133",
812
+ "10de:2940": "cu133",
813
+ "10de:2941": "cu133",
814
+ "10de:297e": "cu133",
815
+ "10de:2980": "cu133",
816
+ "10de:29bb": "cu133",
817
+ "10de:29bc": "cu133",
818
+ "10de:29c0": "cu133",
819
+ "10de:29f1": "cu133",
820
+ "10de:2b00": "cu133",
821
+ "10de:2b85": "cu133",
822
+ "10de:2b87": "cu133",
823
+ "10de:2b8c": "cu133",
824
+ "10de:2bb1": "cu133",
825
+ "10de:2bb2": "cu133",
826
+ "10de:2bb3": "cu133",
827
+ "10de:2bb4": "cu133",
828
+ "10de:2bb5": "cu133",
829
+ "10de:2bb9": "cu133",
830
+ "10de:2bbc": "cu133",
831
+ "10de:2bbd": "cu133",
832
+ "10de:2c02": "cu133",
833
+ "10de:2c05": "cu133",
834
+ "10de:2c09": "cu133",
835
+ "10de:2c18": "cu133",
836
+ "10de:2c19": "cu133",
837
+ "10de:2c2c": "cu133",
838
+ "10de:2c31": "cu133",
839
+ "10de:2c33": "cu133",
840
+ "10de:2c34": "cu133",
841
+ "10de:2c38": "cu133",
842
+ "10de:2c39": "cu133",
843
+ "10de:2c3a": "cu133",
844
+ "10de:2c58": "cu133",
845
+ "10de:2c59": "cu133",
846
+ "10de:2c77": "cu133",
847
+ "10de:2c79": "cu133",
848
+ "10de:2d04": "cu133",
849
+ "10de:2d05": "cu133",
850
+ "10de:2d18": "cu133",
851
+ "10de:2d19": "cu133",
852
+ "10de:2d2c": "cu133",
853
+ "10de:2d30": "cu133",
854
+ "10de:2d39": "cu133",
855
+ "10de:2d58": "cu133",
856
+ "10de:2d59": "cu133",
857
+ "10de:2d79": "cu133",
858
+ "10de:2d83": "cu133",
859
+ "10de:2d98": "cu133",
860
+ "10de:2db8": "cu133",
861
+ "10de:2db9": "cu133",
862
+ "10de:2dd8": "cu133",
863
+ "10de:2df9": "cu133",
864
+ "10de:2e02": "cu133",
865
+ "10de:2e03": "cu133",
866
+ "10de:2e06": "cu133",
867
+ "10de:2e12": "cu133",
868
+ "10de:2e13": "cu133",
869
+ "10de:2e2a": "cu133",
870
+ "10de:2f02": "cu133",
871
+ "10de:2f04": "cu133",
872
+ "10de:2f06": "cu133",
873
+ "10de:2f18": "cu133",
874
+ "10de:2f38": "cu133",
875
+ "10de:2f58": "cu133",
876
+ "10de:2f80": "cu133",
877
+ "10de:3180": "cu133",
878
+ "10de:3182": "cu133",
879
+ "10de:3183": "cu133",
880
+ "10de:3184": "cu133",
881
+ "10de:31a1": "cu133",
882
+ "10de:31c0": "cu133",
883
+ "10de:31c2": "cu133",
884
+ "10de:31c3": "cu133",
885
+ "10de:31fe": "cu133",
886
+ "10de:3200": "cu133",
887
+ "10de:3224": "cu133",
888
+ "10de:323e": "cu133",
889
+ "10de:3340": "cu133",
890
+ "10de:3400": "cu133"
891
+ }
892
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "repos": {
3
+ "NVIDIA": {
4
+ "pattern": "^cu",
5
+ "index_url": "https://download.pytorch.org/whl/TARGET",
6
+ "pkgs": [
7
+ "torch==2.14.1+TARGET",
8
+ "torchvision==0.29.1+TARGET",
9
+ "torchaudio==2.11.0+TARGET"
10
+ ]
11
+ },
12
+ "AMD": {
13
+ "pattern": "^gfx",
14
+ "index_url": "https://stable.repo.amd.com/rocm/whl-next/",
15
+ "pkgs": [
16
+ "torch[device-TARGET]==2.14.0+rocm10.1.0",
17
+ "torchvision[device-TARGET]==0.29.0a0+rocm10.1.0",
18
+ "torchaudio==2.11.0.3+rocm10.1.0"
19
+ ]
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,35 @@
1
+ Metadata-Version: 2.4
2
+ Name: torchvisir
3
+ Version: 0.0.1
4
+ Summary: Detect GPUs and install the matching PyTorch build
5
+ Author-email: Jonas Stare <yownas@google.com>
6
+ License-Expression: Unlicense
7
+ Project-URL: Homepage, https://github.com/yownas/torchvisir
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.10
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Dynamic: license-file
14
+
15
+ <p align="center">
16
+ <img width="526" height="522" alt="image" src="https://github.com/user-attachments/assets/23b9c4c7-3224-4b06-a5bb-7c7fddfc8368" />
17
+ </p>
18
+ The vegvísir (Icelandic for "wayfinder", lit. 'way shower') is an Icelandic magical stave intended to help the bearer
19
+ find their way through rough weather. The earliest known attestation is in the 1860 Huld manuscript. (Wikipedia)
20
+
21
+ # Torchvisir
22
+
23
+ Of the many horrors AI have brought upon us, one of the least talked about is having to install the correct version of pytoch
24
+ to match the GPU, operating system and application. This tool will hopefully take care of that.
25
+
26
+ ## TODO
27
+
28
+ Torchvisir is ni early beta version, there are still a lot of things that needs to be fixed:
29
+
30
+ * CPU fallback
31
+ * Support for Intel GPUs
32
+ * Detect supported python versions
33
+ * Consider making a pypi package
34
+ * Documentation
35
+
@@ -0,0 +1,11 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ torchvisir/__init__.py
5
+ torchvisir/torchvisir.py
6
+ torchvisir.egg-info/PKG-INFO
7
+ torchvisir.egg-info/SOURCES.txt
8
+ torchvisir.egg-info/dependency_links.txt
9
+ torchvisir.egg-info/top_level.txt
10
+ torchvisir/tvdb/gpus.json
11
+ torchvisir/tvdb/repos.json
@@ -0,0 +1 @@
1
+ torchvisir