Where Gen 12’s 145% Performance Gain Comes From

Cloudflare’s 12th Generation servers, built around the AMD EPYC 9684-X (Genoa-X), deliver 145% more performance and 63% better efficiency than the previous generation. Behind those headline numbers is a combination of architectural choices, and Cloudflare’s hardware engineering team ran a sensitivity analysis across three 4th-gen EPYC variants to quantify what actually drives the gain.

AMD’s 4th-gen EPYC line splits into three architectural families:

  • Genoa (9654): classic Zen 4 cores
  • Bergamo (9754): dense Zen 4c cores tuned for efficiency
  • Genoa-X (9684X): Zen 4 cores with 3D V-cache

All three share the same platform fundamentals: up to 12 Core Complex Dies (CCDs) per socket, 1 MB of private L2 per core, an I/O die for memory and interconnect, configurable TDP up to 400W, 12 channels of DDR5-4800, and 128 lanes of PCIe Gen 5. The differences are in core density and cache hierarchy:

  • Genoa: 8 cores per CCX, 32 MB shared L3 per CCX (4 MB/core), one CCX per CCD
  • Bergamo: 8 Zen 4c cores per CCX, 16 MB shared L3 per CCX (2 MB/core), two CCXs per CCD
  • Genoa-X: 8 cores per CCX, 96 MB shared L3 per CCX (12 MB/core), one CCX per CCD

The comparison against the Gen 11 server’s AMD EPYC 7713 (Milan) shows the scale of the generational jump across all three candidates:

CPU Model

AMD EPYC 7713

AMD EPYC 9654

AMD EPYC 9754

AMD EPYC 9684X

Series

Milan

Genoa

Bergamo

Genoa-X

# of CPU Cores

64

96

128

96

# of Threads

128

192

256

192

Base Clock

2.0 GHz

2.4 GHz

2.25 GHz

2.4 GHz

All Core Boost Clock

~2.7 GHz*

3.55 Ghz

3.1 Ghz

3.42 Ghz

Total L3 Cache

256 MB

384 MB

256 MB

1152 MB

L3 cache per core

4 MB / core

4 MB / core

2 MB / core

12 MB / core

Maximum configurable TDP

240W

400W

400W

400W

cf_benchmark: Compute-Bound Results

Cloudflare’s first-pass benchmark, cf_benchmark, was run against each candidate. The suite is mostly compute-bound, so higher core counts and clocks generally win out. With the Genoa 9654 as baseline, the results split as expected:

image5
 

Genoa 9654 (baseline)

Bergamo 9754

Genoa-X 9684X

openssl_pki

1.00x

1.16x

1.01x

openssl_aead

1.00x

1.20x

1.01x

luajit

1.00x

0.86x

1.00x

brotli

1.00x

1.11x

0.98x

gzip

1.00x

0.87x

1.01x

go

1.00x

1.09x

1.00x

Bergamo 9754’s 128 cores give it an edge in openssl_pki, openssl_aead, brotli, and go subsets, while it trails in luajit and gzip. Genoa-X 9684X’s larger L3 does not move the needle much on these workloads. The benchmark suite is useful for spotting scaling and configuration issues, but it is not a proxy for production mixes, where the CPU juggles many concurrent workloads with different characteristics.

Simulated Production Performance: Cache Wins Out

To get closer to real-world behavior, Cloudflare uses an internal simulation tool that repeatedly fetches a fixed asset through its full software stack, with options to include WAF or Workers in the request path. For a 10 KB asset, the ranking flips:

 

Milan 7713

Genoa 9654

Bergamo 9754

Genoa-X 9684X

Lab simulation performance multiplier

1.00x

2.20x

1.95x

2.75x

Bergamo 9754, despite the extra cores, is the least performant, followed by Genoa 9654. Genoa-X 9684X leads. That ordering points to L3 cache size as a dominant factor for Cloudflare’s stack, which is sensitive to cache capacity in addition to core count and frequency. That finding motivated a deeper look at each variable independently.

Core Scaling: Linear

Core count is the headline spec, and Genoa 9654 offers 96 cores versus Milan 7713’s 64. The scaling test disabled CCDs in 8-core increments to simulate 96, 80, 64, and 48-core configurations:

image4

Core count

Core increase

Performance increase

48

1.00x

1.00

64

1.33x

1.39x

80

1.67x

1.71x

96

2.00x

2.05x

The result is clean: Cloudflare’s simulated primary workload scales linearly with core count. Doubling down on core count is a safe bet for this stack.

TDP: Pushing to the Limit

Genoa 9654 defaults to 360W TDP but can be configured up to 400W. Sweeping the power limit in determinism mode from 240W to 400W shows continued, but diminishing, gains:

image3

Performance keeps improving up to the 400W ceiling, though at a worse perf/watt. TDP sensitivity is effectively frequency sensitivity in disguise: dynamic power scales roughly with f³ (via CV²f and voltage scaling), so raising the power limit mostly buys higher clocks.

cTDP

All core boost frequency (GHz)

Perf (rps) / baseline

240

2.47

0.78x

280

2.75

0.87x

320

2.93

0.93x

340

3.13

0.97x

360

3.3

1.00x

380

3.4

1.03x

390

3.465

1.04x

400

3.55

1.05x

Frequency: Measured Directly

Sweeping the maximum boost frequency past the 400W power cap confirms the relationship. Below 3 GHz the curve is flatter; above it, performance improves about 2% per 0.1 GHz of average all-core clock:

image2

The Genoa 9654 hits the 400W cap at 3.545 GHz average all-core frequency. That is well above the 2.7 GHz typical all-core boost observed in production on Gen 11 Milan 7713 servers — and notably higher than the 2.4 GHz used in the simulation baseline.

L3 Cache: The Biggest Lever

L3 cache is the last on-chip staging area before a miss goes to DDR5 memory. The three EPYC variants span 2 MB to 12 MB per core, and Cloudflare’s simulation shows that range matters enormously. Using MSR writes and core-disablement to vary L3 per core on Genoa 9654, the cache miss rate fell from 56% at 1 MB/core to 14.28% at 8 MB/core:

L3 cache size increase vs baseline 4MB per core

0.25x

0.5x

0.75x

1x

1.14x

1.33x

1.60x

2.00x

rps/core / baseline

0.67x

0.78x

0.89x

1.00x

1.08x

1.15x

1.25x

1.31x

L3 cache miss rate per CCD

56.04%

39.15%

30.37%

23.55%

22.39%

19.73%

16.94%

14.28%

image7

A 25% change in L3 size shifts performance by about 11%, and gains continue out to 2x L3 per core before diminishing. Cross-variant comparison, holding core count and frequency constant, confirmed the effect: halving L3 from 4 MB to 2 MB per core cuts performance 24%, while tripling it from 4 MB to 12 MB adds 25%. The asymmetry suggests less cache contention from the core-disabling test method contributes some of the gain at the high end.

L3/core

2MB/core

4MB/core

12MB/core

Perf (rps) / baseline

0.76x

1x

1.25x

Attributing the Gain

The sensitivity analysis explains most of the 145% Gen 12 uplift. The table below breaks down the contribution of each factor:

 

Milan

7713

Genoa

9654

Bergamo

9754

Genoa-X

9684X

Lab simulation performance multiplier

1x

2.2x

1.95x

2.75x

Performance multiplier due to Core scaling

1x

1.5x

2x

1.5x

Performance multiplier due to Frequency scaling

(*Note: Milan 7713 all core frequency is ~2.4GHz when running simulated workload at 100% CPU utilization)

1x

1.32x

1.21x

1.29x

Performance multiplier due to L3 cache size scaling

1x

1x

0.76x

1.25x

Performance multiplier due to other factors like larger L2 cache, higher memory bandwidth, miscellaneous CPU architecture changes that improve IPC

1x

1.11x

1.06x

1.14x

The remaining 6%-14% comes from secondary improvements — the larger 1 MB L2, higher DDR5 bandwidth, and IPC gains from general architecture changes. For Cloudflare’s mixed production stack, the Genoa-X’s cache-rich design is worth more than raw core count or clock speed alone.

Genoa-X wins in the real world

Lab benchmarks only tell part of the story. To validate the candidates, Cloudflare ran both lab simulations and production traffic through Gen 12 hardware equipped with each of the three CPUs. The 9684X remained on top in both settings.

The production data also settled the power-efficiency question. A Gen 12 system built around Genoa-X drew roughly 1.5x the power of a Gen 11 server with the Milan 7713, but delivered dramatically higher throughput. That works out to a 63% gain in performance per watt, making the 9684X the clear choice for total cost of ownership.

 

Milan 7713

Genoa 9654

Bergamo 9754

Genoa-X 9684X

Lab simulation performance multiplier

1x

2.2x

1.95x

2.75x

Production performance multiplier

1x

2x

2.15x

2.45x

Production performance per watt multiplier

1x

1.33x

1.38x

1.63x

The resulting Gen 12 server represents the best combination of performance and efficiency in Cloudflare's fleet to date. It will form the backbone for customer-facing services globally and support infrastructure growth over the coming years at a more favorable cost structure.

The hardware team arrived at this design through close collaboration with internal infrastructure engineers and external vendor partners, a process Cloudflare says is central to building servers that meet real operational needs.