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.
- torchvisir-0.0.1/LICENSE +24 -0
- torchvisir-0.0.1/PKG-INFO +35 -0
- torchvisir-0.0.1/README.md +21 -0
- torchvisir-0.0.1/pyproject.toml +25 -0
- torchvisir-0.0.1/setup.cfg +4 -0
- torchvisir-0.0.1/torchvisir/__init__.py +4 -0
- torchvisir-0.0.1/torchvisir/torchvisir.py +156 -0
- torchvisir-0.0.1/torchvisir/tvdb/gpus.json +892 -0
- torchvisir-0.0.1/torchvisir/tvdb/repos.json +22 -0
- torchvisir-0.0.1/torchvisir.egg-info/PKG-INFO +35 -0
- torchvisir-0.0.1/torchvisir.egg-info/SOURCES.txt +11 -0
- torchvisir-0.0.1/torchvisir.egg-info/dependency_links.txt +1 -0
- torchvisir-0.0.1/torchvisir.egg-info/top_level.txt +1 -0
torchvisir-0.0.1/LICENSE
ADDED
|
@@ -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,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
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
torchvisir
|