cn0303 commited on
Commit
a7a7dde
·
verified ·
1 Parent(s): db17f1f

Laptop/Mobile NVIDIA GPUs with correct VRAM and bandwidth

Browse files
Files changed (2) hide show
  1. engine/hardware.py +12 -0
  2. static/app.js +18 -2
engine/hardware.py CHANGED
@@ -44,6 +44,18 @@ GPU_PRESETS: dict[str, float] = {
44
  # Older / budget NVIDIA
45
  "NVIDIA GTX 1660 (6 GB)": 6,
46
  "NVIDIA GTX 1650 (4 GB)": 4,
 
 
 
 
 
 
 
 
 
 
 
 
47
  # AMD
48
  "AMD RX 7900 XTX (24 GB)": 24,
49
  "AMD RX 7800 XT (16 GB)": 16,
 
44
  # Older / budget NVIDIA
45
  "NVIDIA GTX 1660 (6 GB)": 6,
46
  "NVIDIA GTX 1650 (4 GB)": 4,
47
+ # NVIDIA Laptop / Mobile RTX — different chips: less VRAM and ~half the
48
+ # memory bandwidth of the desktop card with the same name.
49
+ "RTX 5090 Laptop (24 GB)": 24, "RTX 5080 Laptop (16 GB)": 16,
50
+ "RTX 5070 Ti Laptop (12 GB)": 12, "RTX 5070 Laptop (8 GB)": 8,
51
+ "RTX 5060 Laptop (8 GB)": 8, "RTX 5050 Laptop (8 GB)": 8,
52
+ "RTX 4090 Laptop (16 GB)": 16, "RTX 4080 Laptop (12 GB)": 12,
53
+ "RTX 4070 Laptop (8 GB)": 8, "RTX 4060 Laptop (8 GB)": 8,
54
+ "RTX 4050 Laptop (6 GB)": 6,
55
+ "RTX 3080 Ti Laptop (16 GB)": 16, "RTX 3080 Laptop (16 GB)": 16,
56
+ "RTX 3070 Ti Laptop (8 GB)": 8, "RTX 3070 Laptop (8 GB)": 8,
57
+ "RTX 3060 Laptop (6 GB)": 6, "RTX 3050 Ti Laptop (4 GB)": 4,
58
+ "RTX 3050 Laptop (4 GB)": 4,
59
  # AMD
60
  "AMD RX 7900 XTX (24 GB)": 24,
61
  "AMD RX 7800 XT (16 GB)": 16,
static/app.js CHANGED
@@ -62,7 +62,20 @@ const GPUS = {
62
  "RTX 5090 (32 GB)","RTX 5080 (16 GB)","RTX 5070 Ti (16 GB)","RTX 5070 (12 GB)","RTX 5060 (8 GB)",
63
  "RTX 4090 (24 GB)","RTX 4080 (16 GB)","RTX 4070 (12 GB)","RTX 4060 (8 GB)",
64
  "RTX 3090 (24 GB)","RTX 3080 (10 GB)","RTX 3070 (8 GB)","RTX 3060 (12 GB)","RTX 3050 (8 GB)",
65
- "GTX 1660 (6 GB)","GTX 1650 (4 GB)","Laptop RTX (not sure of model)",
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  ],
67
  amd: ["RX 7900 XTX (24 GB)","RX 7800 XT (16 GB)","RX 7600 (8 GB)","RX 6700 XT (12 GB)","Built-in Radeon"],
68
  apple: ["M-series base (8 GB)","M-series Pro (16 GB)","M-series Max (32 GB)","M-series Ultra (64 GB)"],
@@ -157,7 +170,10 @@ function wireTaskToggle() {
157
 
158
  // ---- GPU select depends on provider --------------------------------------
159
  function fillGpu() {
160
- const list = GPUS[state.provider] || [];
 
 
 
161
  const sel = $("#gpu");
162
  if (!list.length) { sel.style.display = "none"; sel.innerHTML = ""; }
163
  else { sel.style.display = "block"; sel.innerHTML = list.map(g => `<option>${g}</option>`).join(""); }
 
62
  "RTX 5090 (32 GB)","RTX 5080 (16 GB)","RTX 5070 Ti (16 GB)","RTX 5070 (12 GB)","RTX 5060 (8 GB)",
63
  "RTX 4090 (24 GB)","RTX 4080 (16 GB)","RTX 4070 (12 GB)","RTX 4060 (8 GB)",
64
  "RTX 3090 (24 GB)","RTX 3080 (10 GB)","RTX 3070 (8 GB)","RTX 3060 (12 GB)","RTX 3050 (8 GB)",
65
+ "GTX 1660 (6 GB)","GTX 1650 (4 GB)",
66
+ ],
67
+ // Laptop (Mobile) NVIDIA GPUs are different chips: less VRAM and roughly half
68
+ // the memory bandwidth of the desktop card with the same name (a laptop 5090
69
+ // is 24 GB, not 32). Shown when the computer is a laptop. VRAM in the label
70
+ // feeds the engine; bandwidth comes from data/gpu_specs.json by name.
71
+ nvidia_laptop: [
72
+ "RTX 5090 Laptop (24 GB)","RTX 5080 Laptop (16 GB)","RTX 5070 Ti Laptop (12 GB)",
73
+ "RTX 5070 Laptop (8 GB)","RTX 5060 Laptop (8 GB)","RTX 5050 Laptop (8 GB)",
74
+ "RTX 4090 Laptop (16 GB)","RTX 4080 Laptop (12 GB)","RTX 4070 Laptop (8 GB)",
75
+ "RTX 4060 Laptop (8 GB)","RTX 4050 Laptop (6 GB)",
76
+ "RTX 3080 Ti Laptop (16 GB)","RTX 3080 Laptop (16 GB)","RTX 3070 Ti Laptop (8 GB)",
77
+ "RTX 3070 Laptop (8 GB)","RTX 3060 Laptop (6 GB)","RTX 3050 Ti Laptop (4 GB)",
78
+ "RTX 3050 Laptop (4 GB)","Laptop RTX (not sure of model)",
79
  ],
80
  amd: ["RX 7900 XTX (24 GB)","RX 7800 XT (16 GB)","RX 7600 (8 GB)","RX 6700 XT (12 GB)","Built-in Radeon"],
81
  apple: ["M-series base (8 GB)","M-series Pro (16 GB)","M-series Max (32 GB)","M-series Ultra (64 GB)"],
 
170
 
171
  // ---- GPU select depends on provider --------------------------------------
172
  function fillGpu() {
173
+ // On a laptop, NVIDIA means the Mobile parts (different VRAM and bandwidth).
174
+ const key = (state.provider === "nvidia" && /laptop/i.test(state.computer))
175
+ ? "nvidia_laptop" : state.provider;
176
+ const list = GPUS[key] || GPUS[state.provider] || [];
177
  const sel = $("#gpu");
178
  if (!list.length) { sel.style.display = "none"; sel.innerHTML = ""; }
179
  else { sel.style.display = "block"; sel.innerHTML = list.map(g => `<option>${g}</option>`).join(""); }