Running DeepSeek V4 Flash across all of DeepSWE on one DGX Spark

DeepSeek V4 Flash 0731, quantized to EXL3 3-bpw and served on a single 128 GB DGX Spark, ran the entire DeepSWE 1.1 suite — 113 original, contamination-free software-engineering tasks (swe-bench-ultra source) graded by real test suites. Every task ran at max reasoning under the same mini-swe-agent scaffold, one at a time.

113/113 scored · complete
Solve rate
45 %
51 of 113 scored
Tests passed
88.7 %
mean fail-to-pass
Scored
113 /113
complete
Compute
159.3 h
9,556 min wall-clock
Output
13.95 M tok
generated across tasks
Throughput
26 tok/s
median decode
Avg steps
199 /task
agent steps
Avg output
123 k/task
output tokens
Energy cost
$2.83
~21 kWh · FPL rate (est.)

The gap between “almost” and “done”

88.7%tests passed, all tasks
45%tasks fully solved
17/62misses one test short
21regressions, all tasks

DeepSWE scores 1.0 only if every fail-to-pass test passes — a 54/55 counts the same as a 0. The model passes 89% of target tests on average, and most of the tasks it “fails” miss by only a handful of tests (17 by a single test).

It rarely breaks anything else, either: 106 of 113 tasks caused zero regressions, with just 21 previously-passing tests broken across the whole run. The misses are almost all incomplete features, not broken code.

Fail-to-pass coverage, by task

Each bar is the share of a task’s target tests that passed. Green solved the task outright; amber fell short. Sorted by coverage; the misses cluster near the top.

Solved (reward 1.0) Missed (reward 0)
abs-module-cache-flags
20/20
abs-stepped-slices
6/6
adaptix-name-mapping-aliases
44/44
anko-default-function-arguments
2/2
anko-typed-variable-bindings
9/9
arcane-drift-detection-baselines
82/82
bandit-interprocedural-taint-checks
66/66
bandit-structured-nosec-directives
69/69
boa-hierarchical-evaluation-cancellation
17/17
dynamodb-toolbox-conditional-attribute-requirements
31/31
dynamodb-toolbox-lazy-recursive-schemas
37/37
eicrud-keyset-pagination-cursor
14/14
etree-xml-diff-patch
52/52
fastapi-implicit-head-options
43/43
fd-deterministic-multi-key-sorting
43/43
go-genai-streamed-function-args
6/6
go-git-worktree-merge-conflicts
17/17
goreleaser-retry-publish-auditing
29/29
happy-dom-abort-pending-body-reads
14/14
helm-array-merge-strategies
47/47
helm-unified-manifest-stream
5/5
httpx-multipart-response-parsing
122/122
httpx-streaming-json-iteration
108/108
kcp-go-multiplexed-kcp-streams
30/30
kgateway-consistent-hash-policy
2/2
koota-entity-snapshot-rollback
84/84
koota-pair-relation-tracking
38/38
meriyah-explicit-resource-declarations
49/49
mobly-grouped-test-barriers
79/79
narwhals-rolling-window-suite
103/103
numba-stencil-boundary-modes
29/29
obsidian-linter-scoped-ignore-markers
33/33
ofetch-per-origin-circuit-breaker
47/47
opa-rego-rule-profiling
25/25
optique-conditional-option-dependencies
36/36
oxvg-structural-selector-preservation
6/6
prometheus-transactional-reload-status
15/15 −0
psd-tools-blend-range-api
45/45
pwntools-tube-multiplexing
73/73
query-persist-restored-query-state
8/8 −0
returns-validated-error-accumulation
159/159
scriggo-method-declarations
48/48
skrub-duration-encoding
130/130
sql-formatter-bigquery-pipe-formatting
26/26
sqlite-utils-safe-import-checkpoints
60/60
task-task-graph-export
20/20
tomlkit-toml-table-converters
60/60
true-myth-iterable-collection-combinators
96/96
ts-pattern-match-each
85/85
updo-policy-alerting
17/17
vitest-duration-sharding
56/56
vulture-persistent-analysis-cache
24/24
wazero-multi-module-snapshots
78/78
fastapi-deprecation-response-headers
136/137 −1
ytt-jsonpath-query-api
102/103 −1
bandit-incremental-cache-control
87/88 −1
kombu-single-active-consumer-priority
84/85 −1
dasel-html-document-format
144/146 −2
koota-deferred-mutation-buffer
70/71 −1
testem-per-launcher-reports
64/65 −1
obsidian-linter-link-format-conversion
59/60 −1
pebble-durability-wait-apis
58/59 −1
httpx-deterministic-cookie-store
113/115 −2
actionlint-action-pinning-lint
54/55 −1
aiomonitor-task-snapshots-diff
52/53 −1
katex-multicolumn-array-spans
92/94 −2
participle-grammar-conflict-analysis
89/91 −2
expr-try-catch-errors
77/79 −2
cliffy-config-file-parsing
36/37 −1
cattrs-partial-structuring-recovery
67/69 −2
dateutil-rfc5545-timezone-interop
65/67 −2
pest-character-class-coalescing
100/104 −4
koota-composite-trait-aspects
49/51 −2
awilix-async-container-initialization
23/24 −1
mashumaro-flattened-dataclass-fields
63/66 −3
tengo-destructuring-bindings
86/91 −5
python-statemachine-state-data-scoping
68/72 −4
prometheus-typed-label-sorting
16/17 −1
csstree-shorthand-expansion-compression
74/79 −5
happy-dom-deterministic-intersectionobserver
13/14 −1
arktype-json-schema-refs-dependencies
23/25 −2
kea-atomic-signal-selectors
11/12 −1
effect-sse-httpapi-streaming
43/47 −4
tengo-callable-instance-isolation
21/23 −2
superjson-error-stack-serialization
73/80 −7
koota-query-predicates
39/43 −4
scc-bounded-memory-spilling
28/31 −3
clack-async-autocomplete-options
74/82 −8
yjs-map-conflict-detection
8/9 −1
drizzle-orm-window-function-builders
115/130 −15
langchain-request-coalescing
44/50 −6
sqlfmt-create-table-ddl-formatting
28/32 −4
kombu-virtual-queue-dead-lettering
66/76 −10
quill-shared-toolbar-focus
11/13 −2
gql-incremental-graphql-delivery
14/17 −3
obsidian-linter-auto-table-of-contents
33/41 −8
ink-grid-box-layout
20/25 −5
termenv-preserve-ansi-resets
28/35 −7
textual-richlog-follow-state
14/20 −6
go-critic-doc-link-checker
2/3 −1
mnamer-daemon-watch-lifecycle
34/51 −17
testem-bail-on-test-failure
55/90 −35
geo-shapeindex-serialization
14/24 −10
textual-kitty-key-phases
12/23 −11
opa-template-string-reconstruction
2/5 −3
claude-code-by-agents-recursive-delegation
2/7 −5
igel-persist-feature-schema
6/24 −18
ipython-session-bundle-replay
4/17 −13
valibot-recursive-schema-composition
2/10 −8
onedump-dump-encryption-pipeline
15/82 −67
kysely-window-grouping-helpers
0/254 −254
wasmi-trap-coredumps
0/22 −22
yaegi-go-embed-directives
0/38 −38

By language

DeepSWE is an even split across TypeScript, Python and Go, with a small Rust and JavaScript tail.

typescript35 tasks
13/35 solved · 89% tests
go34 tasks
18/34 solved · 89% tests
python34 tasks
17/34 solved · 90% tests
rust5 tasks
3/5 solved · 79% tests
javascript5 tasks
0/5 solved · 88% tests

Every scored task

Per-task detail: tests, one-shot reward, agent steps (model calls), wall-clock minutes, output tokens and decode throughput on the Spark.

TaskRepoLangResult Fail→passSteps MinOut toktok/s
abs-module-cache-flags abs-lang/abs go solved 20/20 142 81 78,537 16.1
abs-stepped-slices abs-lang/abs go solved 6/6 147 44 73,414 28.1
actionlint-action-pinning-lint rhysd/actionlint go miss 54/55 195 65 108,585 27.9
adaptix-name-mapping-aliases reagento/adaptix python solved 44/44 284 90 149,704 27.7
aiomonitor-task-snapshots-diff aio-libs/aiomonitor python miss 52/53 149 49 89,159 30.2
anko-default-function-arguments mattn/anko go solved 2/2 166 104 159,389 25.7
anko-typed-variable-bindings mattn/anko go solved 9/9 156 76 80,259 17.7
arcane-drift-detection-baselines getarcaneapp/arcane go solved 82/82 176 73 92,125 21.1
arktype-json-schema-refs-dependencies arktypeio/arktype typescript miss 23/25 392 121 178,492 24.6
awilix-async-container-initialization jeffijoe/awilix typescript miss 23/24 93 48 81,293 28.0
bandit-incremental-cache-control PyCQA/bandit python miss 87/88 127 47 79,390 28.2
bandit-interprocedural-taint-checks PyCQA/bandit python solved 66/66 194 60 97,291 27.1
bandit-structured-nosec-directives PyCQA/bandit python solved 69/69 147 66 111,041 28.0
boa-hierarchical-evaluation-cancellation boa-dev/boa rust solved 17/17 382 105 163,598 26.0
cattrs-partial-structuring-recovery python-attrs/cattrs python miss 67/69 214 82 137,362 28.0
clack-async-autocomplete-options bombshell-dev/clack typescript miss 74/82 99 71 119,107 28.0
claude-code-by-agents-recursive-delegation baryhuang/claude-code-by-agents typescript miss 2/7 132 54 90,304 27.6
cliffy-config-file-parsing c4spar/cliffy typescript miss 36/37 186 68 116,915 28.8
csstree-shorthand-expansion-compression csstree/csstree javascript miss 74/79 198 83 145,785 29.3
dasel-html-document-format TomWright/dasel go miss 144/146 87 49 84,316 28.8
dateutil-rfc5545-timezone-interop dateutil/dateutil python miss 65/67 180 74 140,540 31.5
drizzle-orm-window-function-builders drizzle-team/drizzle-orm typescript miss 115/130 182 57 92,028 27.1
dynamodb-toolbox-conditional-attribute-requirements dynamodb-toolbox/dynamodb-toolbox typescript solved 31/31 352 153 178,235 19.4
dynamodb-toolbox-lazy-recursive-schemas dynamodb-toolbox/dynamodb-toolbox typescript solved 37/37 352 155 181,830 19.5
effect-sse-httpapi-streaming Effect-TS/effect typescript miss 43/47 349 121 161,885 22.2
eicrud-keyset-pagination-cursor eicrud/eicrud typescript solved 14/14 170 61 74,526 20.3
etree-xml-diff-patch beevik/etree go solved 52/52 110 114 200,658 29.3
expr-try-catch-errors expr-lang/expr go miss 77/79 258 140 217,269 25.9
fastapi-deprecation-response-headers fastapi/fastapi python miss 136/137 228 69 112,721 27.3
fastapi-implicit-head-options fastapi/fastapi python solved 43/43 222 79 128,486 27.0
fd-deterministic-multi-key-sorting sharkdp/fd rust solved 43/43 222 66 106,529 27.0
geo-shapeindex-serialization golang/geo go miss 14/24 116 35 53,666 25.3
go-critic-doc-link-checker go-critic/go-critic go miss 2/3 164 77 110,012 23.7
go-genai-streamed-function-args googleapis/go-genai go solved 6/6 187 77 111,991 24.3
go-git-worktree-merge-conflicts go-git/go-git go solved 17/17 196 99 141,076 23.6
goreleaser-retry-publish-auditing goreleaser/goreleaser go solved 29/29 228 97 125,461 21.6
gql-incremental-graphql-delivery graphql-python/gql python miss 14/17 193 53 86,242 27.3
happy-dom-abort-pending-body-reads capricorn86/happy-dom typescript solved 14/14 184 58 73,445 21.2
happy-dom-deterministic-intersectionobserver capricorn86/happy-dom typescript miss 13/14 187 84 135,243 27.0
helm-array-merge-strategies helm/helm go solved 47/47 191 93 134,325 24.1
helm-unified-manifest-stream helm/helm go solved 5/5 252 82 91,284 18.6
httpx-deterministic-cookie-store encode/httpx typescript miss 113/115 185 80 144,586 30.3
httpx-multipart-response-parsing encode/httpx python solved 122/122 107 60 99,416 27.5
httpx-streaming-json-iteration encode/httpx python solved 108/108 90 46 78,186 28.6
igel-persist-feature-schema nidhaloff/igel python miss 6/24 138 42 70,865 28.0
ink-grid-box-layout vadimdemedes/ink typescript miss 20/25 182 82 101,060 20.6
ipython-session-bundle-replay ipython/ipython python miss 4/17 134 67 90,461 22.4
katex-multicolumn-array-spans KaTeX/KaTeX javascript miss 92/94 286 104 167,722 26.9
kcp-go-multiplexed-kcp-streams xtaci/kcp-go go solved 30/30 99 98 153,662 26.1
kea-atomic-signal-selectors keajs/kea typescript miss 11/12 251 177 284,165 26.8
kgateway-consistent-hash-policy kgateway-dev/kgateway go solved 2/2 234 90 83,808 15.5
kombu-single-active-consumer-priority celery/kombu python miss 84/85 164 86 121,498 23.6
kombu-virtual-queue-dead-lettering celery/kombu python miss 66/76 159 64 95,388 25.0
koota-composite-trait-aspects pmndrs/koota typescript miss 49/51 254 106 170,880 26.8
koota-deferred-mutation-buffer pmndrs/koota typescript miss 70/71 233 109 172,872 26.4
koota-entity-snapshot-rollback pmndrs/koota python solved 84/84 169 63 101,471 26.8
koota-pair-relation-tracking pmndrs/koota typescript solved 38/38 286 113 173,170 25.5
koota-query-predicates pmndrs/koota typescript miss 39/43 266 111 169,503 25.4
kysely-window-grouping-helpers kysely-org/kysely typescript miss 0/254 211 56 86,823 26.0
langchain-request-coalescing langchain-ai/langchain python miss 44/50 195 157 113,780 12.0
mashumaro-flattened-dataclass-fields Fatal1ty/mashumaro python miss 63/66 196 79 120,842 25.6
meriyah-explicit-resource-declarations meriyah/meriyah typescript solved 49/49 255 106 170,104 26.8
mnamer-daemon-watch-lifecycle jkwill87/mnamer python miss 34/51 132 58 99,319 28.4
mobly-grouped-test-barriers google/mobly python solved 79/79 172 63 111,772 29.8
narwhals-rolling-window-suite narwhals-dev/narwhals python solved 103/103 280 88 138,994 26.3
numba-stencil-boundary-modes numba/numba python solved 29/29 266 139 154,151 18.5
obsidian-linter-auto-table-of-contents platers/obsidian-linter typescript miss 33/41 160 61 102,318 27.9
obsidian-linter-link-format-conversion platers/obsidian-linter typescript miss 59/60 163 57 90,159 26.5
obsidian-linter-scoped-ignore-markers platers/obsidian-linter typescript solved 33/33 197 91 140,537 25.8
ofetch-per-origin-circuit-breaker unjs/ofetch typescript solved 47/47 120 74 120,715 27.3
onedump-dump-encryption-pipeline liweiyi88/onedump go miss 15/82 99 48 69,055 24.0
opa-rego-rule-profiling open-policy-agent/opa go solved 25/25 224 144 142,205 16.5
opa-template-string-reconstruction open-policy-agent/opa go miss 2/5 367 133 162,870 20.4
optique-conditional-option-dependencies dahlia/optique typescript solved 36/36 258 102 154,542 25.3
oxvg-structural-selector-preservation noahbald/oxvg rust solved 6/6 405 144 188,070 21.8
participle-grammar-conflict-analysis alecthomas/participle go miss 89/91 143 94 139,093 24.5
pebble-durability-wait-apis cockroachdb/pebble go miss 58/59 235 163 147,117 15.0
pest-character-class-coalescing pest-parser/pest rust miss 100/104 169 78 102,203 21.8
prometheus-transactional-reload-status prometheus/prometheus typescript miss 15/15 194 79 97,930 20.6
prometheus-typed-label-sorting prometheus/prometheus go miss 16/17 122 66 99,470 25.2
psd-tools-blend-range-api psd-tools/psd-tools python solved 45/45 135 54 91,507 28.0
pwntools-tube-multiplexing Gallopsled/pwntools python solved 73/73 134 86 127,826 24.8
python-statemachine-state-data-scoping fgmacedo/python-statemachine python miss 68/72 266 74 105,692 23.8
query-persist-restored-query-state TanStack/query typescript miss 8/8 208 73 112,882 25.8
quill-shared-toolbar-focus slab/quill typescript miss 11/13 199 88 138,276 26.1
returns-validated-error-accumulation dry-python/returns python solved 159/159 215 71 119,003 27.8
scc-bounded-memory-spilling boyter/scc go miss 28/31 129 43 68,509 26.7
scriggo-method-declarations open2b/scriggo go solved 48/48 363 116 181,684 26.0
skrub-duration-encoding skrub-data/skrub python solved 130/130 217 70 86,527 20.6
sql-formatter-bigquery-pipe-formatting sql-formatter-org/sql-formatter typescript solved 26/26 131 58 92,570 26.4
sqlfmt-create-table-ddl-formatting tconbeer/sqlfmt python miss 28/32 247 182 250,229 22.9
sqlite-utils-safe-import-checkpoints simonw/sqlite-utils python solved 60/60 209 79 144,778 30.7
superjson-error-stack-serialization flightcontrolhq/superjson typescript miss 73/80 88 57 101,670 29.6
task-task-graph-export go-task/task go solved 20/20 233 100 121,597 20.3
tengo-callable-instance-isolation d5/tengo go miss 21/23 164 77 121,498 26.4
tengo-destructuring-bindings d5/tengo go miss 86/91 263 83 119,145 24.0
termenv-preserve-ansi-resets muesli/termenv go miss 28/35 74 56 97,694 28.9
testem-bail-on-test-failure testem/testem javascript miss 55/90 284 77 109,211 23.5
testem-per-launcher-reports testem/testem javascript miss 64/65 200 84 120,657 23.8
textual-kitty-key-phases Textualize/textual python miss 12/23 166 77 117,249 25.4
textual-richlog-follow-state Textualize/textual python miss 14/20 240 84 125,155 24.9
tomlkit-toml-table-converters python-poetry/tomlkit python solved 60/60 145 78 141,832 30.3
true-myth-iterable-collection-combinators true-myth/true-myth typescript solved 96/96 168 53 89,000 27.9
ts-pattern-match-each gvergnaud/ts-pattern typescript solved 85/85 125 61 106,324 29.2
updo-policy-alerting Owloops/updo go solved 17/17 98 52 77,114 24.6
valibot-recursive-schema-composition open-circle/valibot typescript miss 2/10 263 121 188,195 25.9
vitest-duration-sharding vitest-dev/vitest typescript solved 56/56 262 88 111,734 21.1
vulture-persistent-analysis-cache jendrikseipp/vulture python solved 24/24 89 72 103,719 23.9
wasmi-trap-coredumps wasmi-labs/wasmi rust miss 0/22 395 130 180,971 23.3
wazero-multi-module-snapshots wazero/wazero go solved 78/78 85 54 81,060 25.0
yaegi-go-embed-directives traefik/yaegi go miss 0/38 306 138 130,647 15.8
yjs-map-conflict-detection yjs/yjs javascript miss 8/9 207 99 148,013 25.0
ytt-jsonpath-query-api carvel-dev/ytt go miss 102/103 139 63 109,621 29.1

Method

  • Hardware. One NVIDIA DGX Spark (GB10, 128 GB unified LPDDR5X).
  • Model. DeepSeek V4 Flash 0731, EXL3 3.0-bpw, REAP-pruned to 216/256 experts, served on vLLM/sparkinfer, ~384K context — following the MiaAI-Lab single-Spark recipe.
  • Reasoning. Max, via chat_template_kwargs: {thinking: true, reasoning_effort: "max"} with --max-model-len 393216.
  • Harness. mini-swe-agent through the datacurve pier runner, one task per invocation, one concurrent, resumable.
  • Re-runs. Tasks that ended on infrastructure errors (a model-server blip, or a quantization-related format abort) were re-run once to give them a complete attempt. Only general, task-agnostic scaffold changes were made — notably raising the format-error tolerance from 3 to 10 — with no per-task hints and no access to the held-out grading tests. On re-run, one such task recovered to a full solve and one confirmed a genuine near-miss.

Cost & energy

  • Compute. ~159 GPU-hours across the scored tasks, 13.9M output tokens, ~22,436 model calls (avg 85 min/task at max reasoning).
  • Electricity ≈ $2.83. The Spark draws ~120–140 W at the wall under memory-bandwidth-bound decode; ~159 h works out to ~21 kWh, and Florida Power & Light's 2026 residential rate is ~13.7¢/kWh all-in. (Power draw is estimated, so treat this as a rough figure.)
  • vs. a frontier API. The 13.9M output tokens alone would run ~$209 at a $15/M-token output rate; counting input context across the model calls, the API-equivalent is several hundred dollars. Run locally, the marginal cost was roughly 1% of that.
  • In DeepSWE-leaderboard format (per task). Pass@1 45% · 199 steps · 123k output tokens · $0.03/task in electricity — against the leaderboard's ~$2–4/task on frontier APIs. (Single run, so no confidence interval on Pass@1.)

How it fails

Every non-solve produces a specific signal — a named failing test or a compile error. None return plausible-looking wrong output that slips past the tests.

  • Named test failures. 17 tasks missed by a single test, 24 by 2–5, 16 by more, and 3 scored zero. That last one was a single missing method: the TypeScript test suite failed to compile, so no tests ran. One missing API surface zeros the whole suite, where a dynamically-typed language would give partial credit.
  • Rarely runs out of room. No task hit the 1000-step budget (the most any used was 405). It finishes and submits rather than hanging — with one exception: a single long, hard task (a large Rust change) wandered ~400 steps, exhausted the model's context window, and was cut off with non-compiling code. So the limit it can hit is context length, not the step budget.
  • Overconfident summaries. The agent sometimes overstates its result — one run reported the task solved while scoring zero. The tests are the arbiter, not the agent's summary.

Variance is not characterized here: tasks are scored once, and a single clean re-run moved a near-miss by ~2 tests without changing its pass/fail. Separately, ~56 attempts failed on harness / Docker build-engine stalls — not the model — and were resolved by forcing Docker's legacy builder.

Complete run — all 113 tasks scored. Three tasks scored zero because the patch failed to compile (one TypeScript, two Rust), which zeros the whole suite; regressions count only pass-to-pass tests broken on tasks that built. Steps count model calls, not tool calls. Throughput is per-task mean decode rate on a single request.