Parent: #478
Current canonical v2 losses are real and large: Iris is ~0.613x end-to-end (Flow fit 1.580 ms vs sklearn 0.863 ms; prediction is already much faster), and Digits is ~0.216x (Flow fit 1650.7 ms vs sklearn 356.8 ms). The bottleneck is therefore overwhelmingly fit/solver work, not API overhead.
Audit and profile the LinearSVC training implementation against sklearn/liblinear. Attribute time to coordinate/gradient updates, multiclass strategy, convergence checks, memory layout, repeated dot products, allocation/copies and stopping criteria. Preserve canonical accuracy/parity.
Acceptance: dedicated fit flame/profile breakdown; operation-count comparison against sklearn/liblinear where practical; no avoidable per-sample/per-feature allocation; scaled 100/1k/10k+ sample benchmarks; Iris and Digits end-to-end >=0.95x first, target >=1.05x; prediction must not regress; learned weight/intercept state parity must be reported.
Parent: #478
Current canonical v2 losses are real and large: Iris is ~0.613x end-to-end (Flow fit 1.580 ms vs sklearn 0.863 ms; prediction is already much faster), and Digits is ~0.216x (Flow fit 1650.7 ms vs sklearn 356.8 ms). The bottleneck is therefore overwhelmingly fit/solver work, not API overhead.
Audit and profile the LinearSVC training implementation against sklearn/liblinear. Attribute time to coordinate/gradient updates, multiclass strategy, convergence checks, memory layout, repeated dot products, allocation/copies and stopping criteria. Preserve canonical accuracy/parity.
Acceptance: dedicated fit flame/profile breakdown; operation-count comparison against sklearn/liblinear where practical; no avoidable per-sample/per-feature allocation; scaled 100/1k/10k+ sample benchmarks; Iris and Digits end-to-end >=0.95x first, target >=1.05x; prediction must not regress; learned weight/intercept state parity must be reported.