CompressedGemma commited on
Commit
bba8e8c
·
verified ·
1 Parent(s): 49d171d

Upload 2 files

Browse files
Files changed (2) hide show
  1. __main__.py +25 -0
  2. gui.py +31 -1
__main__.py CHANGED
@@ -53,6 +53,12 @@ def _config_from_args(args) -> HPCConfig:
53
  cfg.therm_lambda_tilt = float(args.thermal_tilt)
54
  if args.pin_dc:
55
  cfg.pin_dc = True
 
 
 
 
 
 
56
  if args.no_q4_fallback:
57
  cfg.enable_q4_fallback = False
58
  if args.keep_embd:
@@ -304,6 +310,25 @@ def main() -> None:
304
  help="zero-DC pin (Q2_K free lunch): re-solve (d, m) on the exact dc=0 line "
305
  "after assembly/thermal; strictly lowers SSE while driving row-DC residual to ~0",
306
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  parser.add_argument(
308
  "--format",
309
  choices=("mixed", "mixed_q1", "custom", "q1_0", "q3_k", "q4_0", "q2_k"),
 
53
  cfg.therm_lambda_tilt = float(args.thermal_tilt)
54
  if args.pin_dc:
55
  cfg.pin_dc = True
56
+ if getattr(args, "segment", False):
57
+ cfg.segment = True
58
+ if getattr(args, "segment_k", None) is not None:
59
+ cfg.segment_k = int(args.segment_k)
60
+ if getattr(args, "segment_iters", None) is not None:
61
+ cfg.segment_iters = int(args.segment_iters)
62
  if args.no_q4_fallback:
63
  cfg.enable_q4_fallback = False
64
  if args.keep_embd:
 
310
  help="zero-DC pin (Q2_K free lunch): re-solve (d, m) on the exact dc=0 line "
311
  "after assembly/thermal; strictly lowers SSE while driving row-DC residual to ~0",
312
  )
313
+ parser.add_argument(
314
+ "--segment",
315
+ action="store_true",
316
+ help="band-major superblock segmentation for Q2_K / Q3_K (emits HPCQ.SEG.V1 label channels)",
317
+ )
318
+ parser.add_argument(
319
+ "--segment-k",
320
+ type=int,
321
+ default=None,
322
+ metavar="K",
323
+ help="band count k for superblock segmentation (default 16)",
324
+ )
325
+ parser.add_argument(
326
+ "--segment-iters",
327
+ type=int,
328
+ default=None,
329
+ metavar="N",
330
+ help="proxy fixed-point rounds for superblock segmentation (default 4)",
331
+ )
332
  parser.add_argument(
333
  "--format",
334
  choices=("mixed", "mixed_q1", "custom", "q1_0", "q3_k", "q4_0", "q2_k"),
gui.py CHANGED
@@ -184,6 +184,9 @@ class HPCQuantizeGUI:
184
  self.thermal_var = tk.IntVar(value=0)
185
  self.thermal_tilt_var = tk.DoubleVar(value=1.0)
186
  self.pin_dc_var = tk.BooleanVar(value=False)
 
 
 
187
 
188
  self.cli_preview_var = tk.StringVar()
189
  self.status_var = tk.StringVar(value="Ready.")
@@ -217,6 +220,11 @@ class HPCQuantizeGUI:
217
  self.promote_attn_q4_var,
218
  self.quant_format_var,
219
  self.thermal_var,
 
 
 
 
 
220
  ):
221
  v.trace_add("write", lambda *_: self._update_cli_preview())
222
 
@@ -483,10 +491,23 @@ class HPCQuantizeGUI:
483
  text="Pin DC residual to 0 (Q2_K free lunch)",
484
  variable=self.pin_dc_var,
485
  ).grid(row=3, column=0, columnspan=2, sticky=tk.W, padx=4, pady=1)
 
 
 
 
 
 
 
 
 
 
 
 
 
486
  ttk.Label(
487
  spec_f, text="(λ multiplier ≥1 during thermal anneal; ~1e2–1e3 ≈ zero-coherent-residual '0-error' anneal)",
488
  foreground="#93c5fd",
489
- ).grid(row=4, column=0, columnspan=4, sticky=tk.W, padx=4, pady=(0, 2))
490
 
491
  # Right: GGUF Tensor Browser
492
  browser_frame = ttk.LabelFrame(right_pane, text="3. GGUF Tensor Inspector & Live Status", padding=8)
@@ -816,6 +837,9 @@ class HPCQuantizeGUI:
816
  therm_passes=max(0, int(self.thermal_var.get())),
817
  therm_lambda_tilt=max(1.0, float(self.thermal_tilt_var.get())),
818
  pin_dc=bool(self.pin_dc_var.get()),
 
 
 
819
  quant_format=self.quant_format_var.get(),
820
  custom_quant_map=self._custom_map_for_plan() or {},
821
  enable_q4_fallback=bool(self.q4_fallback_var.get()) and self.quant_format_var.get() not in ("q2_k", "q3_k"),
@@ -869,6 +893,12 @@ class HPCQuantizeGUI:
869
  cmd += ["--thermal-tilt", str(float(self.thermal_tilt_var.get()))]
870
  if self.pin_dc_var.get():
871
  cmd += ["--pin-dc"]
 
 
 
 
 
 
872
  cmd.append("--verbose")
873
  return " ".join(shlex.quote(part) for part in cmd)
874
 
 
184
  self.thermal_var = tk.IntVar(value=0)
185
  self.thermal_tilt_var = tk.DoubleVar(value=1.0)
186
  self.pin_dc_var = tk.BooleanVar(value=False)
187
+ self.segment_var = tk.BooleanVar(value=False)
188
+ self.segment_k_var = tk.IntVar(value=16)
189
+ self.segment_iters_var = tk.IntVar(value=4)
190
 
191
  self.cli_preview_var = tk.StringVar()
192
  self.status_var = tk.StringVar(value="Ready.")
 
220
  self.promote_attn_q4_var,
221
  self.quant_format_var,
222
  self.thermal_var,
223
+ self.thermal_tilt_var,
224
+ self.pin_dc_var,
225
+ self.segment_var,
226
+ self.segment_k_var,
227
+ self.segment_iters_var,
228
  ):
229
  v.trace_add("write", lambda *_: self._update_cli_preview())
230
 
 
491
  text="Pin DC residual to 0 (Q2_K free lunch)",
492
  variable=self.pin_dc_var,
493
  ).grid(row=3, column=0, columnspan=2, sticky=tk.W, padx=4, pady=1)
494
+ ttk.Checkbutton(
495
+ spec_f,
496
+ text="Band-Major Segmentation (Q2_K / Q3_K)",
497
+ variable=self.segment_var,
498
+ ).grid(row=3, column=2, columnspan=2, sticky=tk.W, padx=4, pady=1)
499
+ ttk.Label(spec_f, text="Seg Bands (k):").grid(row=4, column=0, sticky=tk.W, padx=4, pady=2)
500
+ ttk.Spinbox(
501
+ spec_f, from_=2, to=16, increment=1, textvariable=self.segment_k_var, width=8
502
+ ).grid(row=4, column=1, sticky=tk.EW, padx=4, pady=2)
503
+ ttk.Label(spec_f, text="Seg Iters:").grid(row=4, column=2, sticky=tk.W, padx=4, pady=2)
504
+ ttk.Spinbox(
505
+ spec_f, from_=1, to=12, increment=1, textvariable=self.segment_iters_var, width=8
506
+ ).grid(row=4, column=3, sticky=tk.EW, padx=4, pady=2)
507
  ttk.Label(
508
  spec_f, text="(λ multiplier ≥1 during thermal anneal; ~1e2–1e3 ≈ zero-coherent-residual '0-error' anneal)",
509
  foreground="#93c5fd",
510
+ ).grid(row=5, column=0, columnspan=4, sticky=tk.W, padx=4, pady=(0, 2))
511
 
512
  # Right: GGUF Tensor Browser
513
  browser_frame = ttk.LabelFrame(right_pane, text="3. GGUF Tensor Inspector & Live Status", padding=8)
 
837
  therm_passes=max(0, int(self.thermal_var.get())),
838
  therm_lambda_tilt=max(1.0, float(self.thermal_tilt_var.get())),
839
  pin_dc=bool(self.pin_dc_var.get()),
840
+ segment=bool(self.segment_var.get()),
841
+ segment_k=max(2, int(self.segment_k_var.get())),
842
+ segment_iters=max(1, int(self.segment_iters_var.get())),
843
  quant_format=self.quant_format_var.get(),
844
  custom_quant_map=self._custom_map_for_plan() or {},
845
  enable_q4_fallback=bool(self.q4_fallback_var.get()) and self.quant_format_var.get() not in ("q2_k", "q3_k"),
 
893
  cmd += ["--thermal-tilt", str(float(self.thermal_tilt_var.get()))]
894
  if self.pin_dc_var.get():
895
  cmd += ["--pin-dc"]
896
+ if self.segment_var.get():
897
+ cmd += ["--segment"]
898
+ if int(self.segment_k_var.get()) != 16:
899
+ cmd += ["--segment-k", str(int(self.segment_k_var.get()))]
900
+ if int(self.segment_iters_var.get()) != 4:
901
+ cmd += ["--segment-iters", str(int(self.segment_iters_var.get()))]
902
  cmd.append("--verbose")
903
  return " ".join(shlex.quote(part) for part in cmd)
904