# Two 3090s out, one 3090 Ti in

*Two GeForce RTX 3090s came out of service and one EVGA GeForce RTX 3090 Ti FTW3 Ultra went in; a print lab and a beat lab moved with them, on 2026-09-18 (UTC), with nothing closed. The bench that measured the two cards is [RTX 3090 vs RTX 3090 Ti: an inference and diffusion bench](https://research.strata2signal.com/one-3090-against-one-3090-ti/); this note is what we did with its numbers. Everything below is either a bench figure from that page or a line from a service journal, and each is labelled as which.*

*Published 2026-09-19 (UTC) · A small (human) team and a fleet of AI agents.*

**the short version:** On 2026-09-18 the print lab's renderer and the beat lab's sleeve painter moved off a machine that held two GeForce RTX 3090s, one of which did all the drawing at a 280 W cap, and onto one that holds a single EVGA GeForce RTX 3090 Ti FTW3 Ultra at a 350 W cap. One render never splits across two cards, so those two were never a rendering pair; the second card served language until 2026-09-08 and drew nothing after. The first seven creations on the new card drew their plates in a median of 15.5 seconds, half a per cent over what the bench predicted and 11.5 to 18.1 per cent under what the old machine's cap bought; the first two sleeves painted in 2.1 seconds each, against a median of 2.6 over the previous week on the old card. The old machine now serves nothing and was powered off the same evening.

1,507 words · about 7 minutes (at 220 words/min) · 2 tables · data kit: no

https://research.strata2signal.com/two-3090s-out-one-3090-ti-in/

---

## What moved, and from where {#what-moved-and-from-where}

Two public services draw pictures here.

**The print lab** ([printlab.strata2signal.com](https://printlab.strata2signal.com)) is an exhibit where a visitor's words become three plates from a small open-weight diffusion model, FLUX.2 klein 4B. One creation is one batch of three plates through a certified graph, the 32-step one, which is what the open set hangs; three graphs are certified. Its renderer is a pull worker: it claims a job over a private network, drives a local ComfyUI, and hands the plates back.

**The beat lab** ([studio.strata2signal.com](https://studio.strata2signal.com)) is a drum machine that talks; when a visitor posts a groove to the board, a sleeve painter draws its cover from the same model. One sleeve is two JPEGs.

Until 2026-09-18 both ran on another machine that held two 3090s, only one of which ever drew, at a 280 W cap. That machine also carried language seats until 2026-09-08 and a tunnel nobody used any more. From that day both services run on one machine with one card: an EVGA GeForce RTX 3090 Ti FTW3 Ultra 24 GB, new out of the box on 2026-09-17, at a 350 W cap set at boot, with the print lab's ComfyUI bound to loopback and the sleeve painter bound to the private address only.

## Why this card, and why 350 W {#why-this-card-and-why-350-w}

The companion bench put both boards through the same slot of the same machine at four power caps. Three findings decided the move.

One render does not split across two cards, not in this software and not with any extension. [A two-card bench on a pair of 10 GB boards](https://research.strata2signal.com/two-used-3080s-priced/) registered that before it spent any card time. A second card can draw a second picture at the same time, and it can hold parts of a model too big for one board; neither is what this exhibit asks for. On the old machine only one of the two 3090s ever drew, so those two were never a rendering pair.

At matched caps this Ti draws the heavy plate 8.5 per cent faster than a 3090 at 300 W and 9.5 at 350; against the 300 W setting nearest the old machine's cap, with this Ti at the 350 W the new machine now runs, 12 per cent. The next 50 W past 350 bought 2 per cent more speed, so 350 W is where the new machine sits; that is the cap this workshop set, not the card's own limit, which is 450 W.

Ten minutes of continuous drawing at the same 350 W put this Ti at a 55 °C plateau and a 60 °C peak where a 3090 sat at 71 °C and 74 °C, sixteen degrees cooler at the plateau and fourteen at the peak, with this Ti's fans working slightly harder for it, 73 per cent against 67. Those rows did not do equal work, which the companion page prints alongside them. What the board cost, and what a 3090 lists for, are on the companion page.

## Before and after, on the same instruments {#before-and-after-on-the-same-instruments}

Two kinds of numbers appear below and they are kept apart. **Bench** figures come from the companion page: the median of two timed submits at a batch of three, one card at a time, on the same 32-step graph the open set hangs. **Live** figures come from the services' own journals. The bench publishes seconds per image and no spread; the column below is that cell times three, the batch the print lab actually draws, and the bench rows' min and max are empty for that reason.

| card | cap | source | n | median s per batch of three | min s | max s | window (UTC) |
|---|---:|---|---:|---:|---:|---:|---|
| a 3090 Ti, the first creations on the new machine | 350 W | live journal | 7 | 15.47 | 15.42 | 15.52 | 2026-09-18 20:41 → 22:57 |
| a 3090 Ti | 350 W | bench | 2 | 15.39 | — | — | 2026-09-17 |
| a 3090 | 350 W | bench | 2 | 17.01 | — | — | 2026-09-17 |
| a 3090 | 300 W | bench | 2 | 17.48 | — | — | 2026-09-17 |
| a 3090 | 250 W | bench | 2 | 18.89 | — | — | 2026-09-17 |

The old machine drew at 280 W, between the 250 and 300 W rows, so the honest before is a range: 17.5 to 18.9 seconds per batch on the bench's instrument. The live after is a median of 15.47 seconds over seven creations. Read median against range, the move is 11.5 to 18.1 per cent faster than the old machine at its own cap, and 8.5 to 9.5 per cent faster than a 3090 would have been at a matched cap. The seven live creations sit between 0.2 and 0.9 per cent above the bench's median, which is why the bench figure is worth quoting at all.

| painter | cap | n | median ms | min ms | max ms | window (UTC) |
|---|---:|---:|---:|---:|---:|---|
| the new painter, a 3090 Ti | 350 W | 2 | — | 2,060 | 2,125 | 2026-09-18 20:42 → 20:49 |
| the old painter, a 3090 | 280 W | 16 | 2,551 | 2,497 | 2,899 | 2026-09-11 14:33 → 2026-09-18 01:38 |

Two sleeves is not a median, so the after stands as two readings: 17 and 19 per cent under the old median. When twenty sleeves have been painted on the new card we will add a dated block below, naming what it counts, dating its window at both ends, and comparing it with the figures above.

## What the sign says {#what-the-sign-says}

The print lab's queue line tells a visitor "about N seconds" while they wait, and that number is not typed anywhere. It is how many creations still have to be drawn, the queue ahead of them plus their own once it is on the card, times the median of the last twenty completed creations, and since a change made on 2026-09-08 that window is scoped to the card that will actually draw. So the sign did not blend the two machines. When the new card took the primary role it had drawn nothing, so the median fell back to its floor, a 22-second seed, which is the figure every creation is charged before there is history. From the first creation onward the number has been the new card's own: seven creations in, its median is 15.5 seconds. As the window fills it will steady rather than move. That is the part worth naming. The page re-based itself on new hardware with nobody editing it, because it knows which card the work is going to.

## How the move was done {#how-the-move-was-done}

The render leg first, with both machines alive the whole way. The new instance was stood up on this Ti and given a render receipt against the certified graphs before anything in the exhibit could reach it. The print lab's worker came up on the new machine as a backup beside the old primary, a bearer was minted and carried by hand, and the roles flipped, new primary first, old to backup fifteen seconds later. One real creation was drawn at the door and read back off the new machine's journal.

Then the painter leg. The two network grants the painter needs were added, each service proved its own grant with its own probe before anything moved, the beat lab's engine was re-pointed by a drop-in, and one real post got its sleeve.

Only then the teardown. The old machine's units stopped, the sign was read once more, the old grants were deleted, and a receipt line proved the old machine listened on nothing. It is now a bench box, powered on only when there is a card to measure.

The public sign for the print lab stayed open through all of it.

## What this does not measure {#what-this-does-not-measure}

- **Whole-box power.** The new machine's UPS answers but does not measure: it reported 121 W idle and 122 W with this Ti at 350 W, a reading that cannot be true. Until the driver's polling is fixed, no wall figure for the new machine is published here.
- **Memory-junction temperature.** The GDDR6X junction sensor is not readable through the driver these machines run, so the thermal rows above are the core sensor and the fans, as in the companion.
- **The old machine's own live times.** One of its 3090s was measured in the companion page; the machine's own render journal went dark with it before its lines were pulled, which is why the before row is the bench's range and not a live median. That is a gap this note names rather than fills.

*Who ran this, and thanks: an operator on a laptop and the agents in the terminal beside them, over one day. The bench numbers are the companion page's; the live numbers are the services' own journals. FLUX.2 klein 4B drew every plate and sleeve, with Qwen as its text encoder and klein's own decoder; ComfyUI ran the graphs on PyTorch; NVIDIA's CUDA and driver were the instrument behind every cap and temperature; EVGA built the board this note names in full; systemd's journals held every live figure, PostgreSQL computed the sign's median with psycopg carrying the query, and Caddy kept the door the note says never closed. Thanks to all of them.*

<!-- derived 2026-09-19 (UTC) by tools/derive_md.py from the pour source.
     source html sha256: 27d929be6d3113c96f61359e10dad8e445d27959ba2b727a7c461624750a6fa5
     derivation sha256:  0fd4ff4c7de17857a3f850cd907211c5bb9c5a7b471126bbe5d3d8d6a4be3b21
     the {#id} on each heading is the anchor that heading carries on the page. -->
