One RTX 3090 for a team: measured Qwen concurrency
Our profile had one inference slot, so it was not a team load test. We pair real task times with a public 1, 2, 4 and 8-stream RTX 3090 benchmark.
Syntalith
Can one RTX 3090 serve a team? Our experiment did not answer that question because the home profile had exactly one inference slot. We will not turn single-task durations into theoretical “jobs per hour” or guess a user count.
We do have two honest sources. The first is our measured service time for single agents. The second is a public Qwen3.8-27B benchmark designed for 1, 2, 4 and 8 concurrent streams on one RTX 3090. Together they show where model fit ends and service design begins.
What our one-slot profile actually showed
We served one request at a time on an after-hours home PC. Subagents waited in sequence. Task duration varied substantially:
| Run | Wall time | Acceptance result |
|---|---|---|
| CSV export, Qwen Code | 38.24 s | 3/3 hidden tests |
| CSV import, Qwen Code | 93.14 s | 4/5 hidden tests |
| pagination, Qwen Code | 264.53 s | 3/3 hidden tests |
| long Go repair, Qwen Code | 502.14 s | 100/100 |
| first frontend generation | 1,563.22 s | rejected, stopped by the loop detector |
These are real single runs. They do not establish hourly capacity under load. They exclude concurrent prefill, profile switching, queues and retries after a failure.
A public concurrency test on the same GPU class
The syv-ai/qwen38-27b-rtx3090 repository publishes a Qwen3.8-27B test on one RTX 3090 using a patched vLLM stack. Each stream received a distinct 4k-token prompt and generated 256 tokens. The server admitted at most eight sequences.
The MTP profile produced:
| Concurrent streams | Per-stream decode | Aggregate decode | Forward-pass time |
|---|---|---|---|
| 1 | 126 tok/s | 124 tok/s | 24.8 ms |
| 2 | 103 tok/s | 212 tok/s | 29.8 ms |
| 4 | 46 tok/s | 280 tok/s | 43.1 ms |
| 8 | 23 tok/s | 383 tok/s | 62.3 ms |
Aggregate throughput rose while each user's response slowed. At eight streams, each stream received 23 tok/s rather than 126 tok/s. A single tokens/s number hides this trade-off.
The DFlash2 profile reached 137 tok/s for one stream, 97 for two and 46 for four. When eight were requested, only five sequences remained resident, so the author did not report a steady C8 result. The fastest single-user profile was not the highest-capacity profile.
Long prompts can dominate the concurrency count
The same public repository ran eight independent 16k-token prompts. End-to-end aggregate throughput fell to 15.8 tok/s and mean time to first token reached 71.7 s because roughly 131k tokens of prefill dominated the run.
When eight requests shared the same 16k prefix and prefix caching could work, two streams produced 128.4 tok/s aggregate with 1.3 s mean TTFT. Four streams produced 147.8 tok/s and 2.6 s. These are not promises for a company chat service. They demonstrate that prompt-length distribution and shared prefixes are capacity inputs. They are operationally significant.
Why these numbers do not go straight into a proposal
The public benchmark uses a tuned, modified stack, 256-token answers and tightly defined prompts. Our acceptance profile used another runtime and multi-turn agents that called tools. The cells are not interchangeable.
A team deployment needs measurements on the target server:
- time to first token and full-task latency for each task class;
- per-user and aggregate throughput at 1, 2, 4 and 8 requests;
- resident sequence count before memory failure;
- the effect of long prefill and prefix caching;
- 95th-percentile queue delay under representative traffic;
- accepted-task rate, because a fast wrong answer is not business throughput.
What can be concluded now
One RTX 3090 can serve more than one short sequence, but the per-user slowdown is measurable and capacity depends on the profile. Our one-slot setup was appropriate for a coding experiment. It provides no evidence for a team architecture. The public benchmark shows MTP sustaining eight short streams in one specific stack while DFlash2 stopped at five resident sequences.
Target TTFT, queue delay and accepted-result rate should determine the trigger for a second GPU. An unsupported employee count should not.
How Syntalith runs this pilot
We can test the model on client hardware or build an isolated pilot, replay peak traffic and deliver latency, throughput, VRAM and quality evidence. The design includes queueing, concurrency limits, data classes, controlled fallback and an explicit scaling trigger.
See the AI process audit and custom AI applications, or start with a free process scan. If local deployment wins the test, we can build the endpoint, control plane, monitoring and upgrade procedure, then teach the team to operate it.
Free process scan
Start with a free process scan.
- A 30-minute call with the engineer who would lead the work.
- A review of the processes that cost you the most time and money.
- A written summary of what to automate first and the likely cost range.
The scan chooses one process to assess, and within 2 business days you receive a recommendation, including when a simpler route is the better fit.
€0
30 minutes · written takeaway within 2 business days
Times are shown in your own time zone. We work with clients across time zones.
Describe the process in the form