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 |
||||
|
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:

|
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:

|
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:

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:

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% |

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.



