Skip to content
Xinyuanyi

Storage acceleration for AI inference

Stop recomputing. Start serving.

FX all-flash NVMe-oF arrays catch the KV cache that overflows GPU memory. On a 480B model in production topology that means +29–40% inference throughput and −26–32% time to first tokenR2R3. Every figure maps to a test report you can request and verify.

Fig. 1 · Time to first token · p50

R2
No external storage, full recompute
149.48s
Single local NVMe drive
17.31s
FX100 all-flash array
11.85s
Qwen3-Coder-480B-FP8 · TP=8 · concurrency 16 · long-context cold recovery

§ 01

Every number has a source

Each item states its baseline and its report ID. Results from different platforms are listed separately and never merged.

+29–40%

Higher inference throughput

vs. a single local NVMe drive

Qwen3-Coder-480B-FP8 in TP=8 production topology under a long-context cold-recovery load: +29% at concurrency 8 and +40% at concurrency 16, the operating point with the largest gain; +35–36% for the whole machine in the dual-instance TP4×2 layout.

MeasuredSourceR2R3

−26–32%

Lower time to first token (TTFT)

vs. a single local NVMe drive

Across three concurrency levels of the same 480B TP8 load, TTFT p50 falls from 10.17–35.73 s to 7.53–26.35 s.

MeasuredSourceR2

8.6–20×

Faster than recomputing without external storage

vs. full recompute with no external storage

At concurrency 16, TTFT p50 is 149.5 s when recomputing and 11.85 s with FX100; throughput is 4.1 tok/s versus 74.9 tok/s.

MeasuredSourceR2

6.2–9.3×

Faster model loading

vs. NFS, on Huawei Ascend 910B

On Huawei Atlas 910B: DeepSeek-32B serving load 691 s → 112 s (6.2×); DeepSeek-70B 1399 s → 150 s (9.3×).

MeasuredSourceR9

MetricValueBaselineSource
TTFT gain from the LMCache parallel-read patch4.1×vs. before the patchR1
Faster training checkpoint saves1.9×vs. the baseline in report R1R1
Effective compute utilization under model switching46.7% → 62.8%at 20 model switches per hourR1
Concurrent model loading on 8 GPUs16% / 30%vs. the baseline in report R1R1
Deviation between two independent runs≤5%same load level, measured twiceR3
HBM residency an external KV tier can stand in for128 GBMetaX N260 single GPU, 14B model, seven-way comparisonR5
ComfyUI + LTX-Video 2.3 models running end to end7 / 7AMD MI308X, ROCm 7.2R6R7
Arrays to inference nodes1 : 8production sizing basisR1R2R3

§ 02

What GPU memory cannot hold goes to flash

Long-context sessions keep pushing KV cache out of GPU memory. Without an external tier, evicted sessions must be recomputed in full; with FX they are simply read back.

How it works

  1. L1

    GPU memory (HBM)

    Sessions that are active right now

    Managed by vLLM

  2. L2

    Host RAM

    Sessions used recently

    Managed by LMCache

  3. L3

    FX all-flash array

    All historical sessions, shared across instances

    NVMe-oF · RoCEv2

§ 03

One workload, three concurrency levels

Raw readings from report R2: FX100 against a single local NVMe drive at concurrency 8, 16 and 32.

FX100 all-flash arraySingle local NVMe drive

TTFT p50 (s)

↓ lower is better

Concurrency8

Local NVMe drive · Concurrency 8
10.17 s
FX100 · Concurrency 8
7.53 s

−26%

Concurrency16

Local NVMe drive · Concurrency 16
17.31 s
FX100 · Concurrency 16
11.85 s

−32%

Concurrency32

Local NVMe drive · Concurrency 32
35.73 s
FX100 · Concurrency 32
26.35 s

−26%

Throughput (tok/s)

↑ higher is better

Concurrency8

Local NVMe drive · Concurrency 8
43.9 tok/s
FX100 · Concurrency 8
56.6 tok/s

+29%

Concurrency16

Local NVMe drive · Concurrency 16
53.6 tok/s
FX100 · Concurrency 16
74.9 tok/s

+40%

Concurrency32

Local NVMe drive · Concurrency 32
53.9 tok/s
FX100 · Concurrency 32
71.6 tok/s

+33%

Fig. 2 · Qwen3-Coder-480B-FP8 · TP=8 · 8 × MI308X · long-context cold-recovery load. TTFT is p50 in seconds; throughput in tok/s; full recompute was measured at concurrency 16 only.R2
Table 1 · Qwen3-Coder-480B-FP8 · TP=8 · 8 × MI308X · long-context cold-recovery load. TTFT is p50 in seconds; throughput in tok/s; full recompute was measured at concurrency 16 only. Source: R2
ConcurrencyFX100 TTFTLocal NVMe drive TTFTFull recompute TTFTFX100 tok/sLocal NVMe drive tok/sFull recompute tok/s
87.53 s10.17 s—56.643.9—
1611.85 s17.31 s149.48 s74.953.64.1
3226.35 s35.73 s—71.653.9—

§ 04

The FX series all-flash storage platform

Four models with per-port rates from 100 Gb to 400 Gb. Specifications are vendor figures; FX100 has a full set of measured reports.

Specifications are vendor figures. Models with measured reports list the report IDs in the last column.
ModelInterface generationRate per portIOPSFlash form factorStatusMeasured reports
FX100The workhorse with the most complete benchmark recordPCIe 3.0100 Gb16MU.2In productionR1R2R3R4R5R9
FX200The PCIe 4.0 model with twice the port speed and IOPSPCIe 4.0200 Gb32MU.2In production—
FX300The PCIe 5.0 performance tier with 6 DPUsPCIe 5.0400 Gb60MU.2In production—
FX400The next flagship: PCIe 6.0 with E1.S flashPCIe 6.0400 Gb140ME1.STest units; volume production planned for late 2026—

§ 06

Test jointly first, decide afterwards

Every engagement starts with a gated joint test of about 10 weeks. Four gates are passed in sequence; if one is missed, the project stops there, so you never pay for a benefit that was not demonstrated.

  1. G1Week 2

    Delivery acceptance

    All materials delivered and inspected; every array passes its power-on self-test with all 24 drives recognized.

  2. G2Week 4

    Single-node baseline

    The single-node 8-GPU inference baseline is reproduced within ±10% of the R1 figures; a local stress test of one array reaches 83% line efficiency against the measured anchor.

  3. G3Week 7

    Main joint-test gate

    KV tiering must deliver both a TTFT reduction of ≥25% and a throughput gain inside the measured +29–40% band; with 8 nodes sharing one array, read-back bandwidth approaches the NIC ceiling.

  4. G4Week 10

    Stability and sign-off

    72 hours of continuous load without interruption; single-drive and single-link fault injection stays invisible to the workload; a signed joint-test report is issued.

The full costing model is provided as Python source after an NDA, so you can rerun it with your own parameters.

§ 07

Questions buyers actually ask

Each article gives the answer first, then the data and the sources.

How to Verify a Vendor's LLM Inference Benchmarks

Five checks for vendor inference benchmarks: baseline, platform and topology, run-to-run deviation, third-party report, reproduction material. Plus common traps.

SourceR2R3R4R5R8R9

§ 08

Frequently asked questions

How much does KV cache tiering improve inference performance?

With Qwen3-Coder-480B-FP8 on 8 × AMD MI308X in TP=8 production topology, the measured results under a long-context cold-recovery load are: 29–40% more inference throughput and 26–32% lower TTFT p50 than a single local NVMe driveR2R3, and 8.6–20× faster than full recompute without external storageR2. These are application-level throughput and time to first token, not microsecond latencies of the storage device.

Where does it help most, and where is the benefit limited?

The gain comes from cache hits. Long contexts, multi-turn conversations and high-concurrency session recovery (agents, coding assistants, customer service) hit the cache often and benefit the most. Short, low-concurrency conversations hit it rarely and benefit little. That is why we recommend testing before buying: measure with your own session-length distribution and concurrency, then decide.

How can these numbers be verified? Are they reproducible?

Every key figure carries a report ID (R1–R9), and the reports are available on request. R4 is an official report issued by a third-party testing organization. R8 is the test code export and raw data: the LMCache parallel-read patch, the load client, orchestration scripts and forensic probe scripts, so a third party can rerun the tests on its own cluster. Two independent runs at the same load level deviate by no more than 5%R3.

Does adopting FX require changes to the inference engine?

No rewrite of the inference engine is needed. The integration point is the open-source vLLM + LMCache combination: LMCache moves KV cache that does not fit in GPU memory down to host RAM and external storage, and the FX array is that external tier. We adapted the stack at source level on ROCm, and the parallel-read patch is delivered as part of R8R1R8.

How much does a fully populated FX100 cost?

The reference price of a fully populated FX100 is about ¥371,200: ¥160,000 for the platform plus 24 enterprise NVMe SSDs of 7.68 TB each (reference price ¥8,800 per drive), 184.3 TB raw, or about ¥2,014 per TB. SSD prices follow the market, and the purchase contract sets the final price. FX200 and FX300 are quoted by configuration; production pricing for FX400 has not been announced.

Test jointly first, decide afterwards

Measure it on your own workload

Our numbers were measured on our platform. Your session lengths and concurrency are different, and so your results will be. A joint test of about 10 weeks with four gates gives you an answer of your own.

Contact
Wang Limin
Phone
+86 131 6181 8898
Email
mingxin@agentmail.to

The inbox is monitored and triaged by AI around the clock