Skip to content

Add cuOpt SOCP variance-cap support + bump to cuOpt 26.06#50

Open
jgoldberg-nvidia wants to merge 3 commits into
mainfrom
socp-support
Open

Add cuOpt SOCP variance-cap support + bump to cuOpt 26.06#50
jgoldberg-nvidia wants to merge 3 commits into
mainfrom
socp-support

Conversation

@jgoldberg-nvidia

@jgoldberg-nvidia jgoldberg-nvidia commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds NVIDIA cuOpt SOCP variance-cap support to the cufolio skill (Mean-Variance portfolios with a hard variance cap via the direct cuOpt SOCP path) and bumps SOCP dependencies to cuOpt 26.06.

Rebuilt on top of the current main (after #49 merged the eval P0-split + benchmark fix).

What's in it

  • Feature: mean_variance_optimizer / MeanVarianceParameters, SKILL.md guidance + agent recipe, Layer 3 benchmark (socp-variance-limit) + thresholds, unit tests.
  • Deps: cuOpt 26.06 (pyproject.toml, uv.lock, README.md).
  • Eval: mean-variance-socp-var-limit added to the nightly set (evals-full.json, now 10 cases). The 4-case P0 CI gate (evals.json) is unchanged — SOCP is the least gate-critical case.
  • Docs: EVAL.md + skill-card.md mention the SOCP workflow; BENCHMARK.md left as the merged gate-results report (SOCP runs only nightly).

Explicitly excluded

  • Demo: SOCP is kept out of the Streamlit demo (per scope) — no demo/ changes.
  • No reintroduced bug: because it's rebased on main, it retains the rebalance .date() Layer 3 fix rather than bringing back the bug from the original branch.

Validation (local, L4 GPU)

  • Layer 1 compliance: 10/10
  • SOCP unit tests (test_core.py): 51 passed, 1 skipped
  • Layer 3 GPU benchmarks: 6/6 (incl. socp-variance-limit and the fixed rebalance)

CI

Comment /nvskills-ci to run the agent eval gate.

🤖 Generated with Claude Code

jgoldberg-nvidia and others added 2 commits June 11, 2026 20:13
Mean-Variance portfolios with a hard variance cap solved via the direct
cuOpt SOCP path (mean_variance_optimizer / MeanVarianceParameters), with
SKILL.md guidance, an agent recipe, a Layer 3 benchmark + thresholds, and
unit tests. Bumps SOCP deps to cuOpt 26.06. Excludes the demo (SOCP kept
out of the Streamlit app per scope). Rebased onto main, so it keeps the
rebalance .date() benchmark fix rather than reintroducing the bug.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds mean-variance-socp-var-limit to evals-full.json (nightly, now 10
cases); the 4-case P0 gate (evals.json) is unchanged since SOCP is the
least gate-critical case. Updates EVAL.md and skill-card.md to mention the
SOCP variance-cap workflow. BENCHMARK.md (the merged gate results) is left
as-is since SOCP runs only in the nightly set.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jgoldberg-nvidia jgoldberg-nvidia changed the title Add cuOpt SOCP variance-cap support + cuOpt 26.06 deps Add cuOpt SOCP variance-cap support + bump to cuOpt 26.06 Jun 11, 2026
…ent)

CI lint (ruff format --check src/) flagged a line-broken assignment that
fits within the 88-char limit on one line. Formatting-only; no logic change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant