Figure: GPU integration with CXL.mem — memory mapping, hint interface, driver-to-firmware translation and an unmeasured fault-path component budget. Four endpoints contribute 1 TB of tier-2 DRAM and 16 TB of tier-3 NVMe; the GPU virtual address space holds 192 GB of local HBM at 0x0000 to 0x4FFF plus CXL.mem regions of 256 GB, 256 GB and 512 GB, while the model's weights stay HBM-resident and never cross the tier boundary. Those capacities are arithmetic over stated device sizes and stand. Allocation hints — data type, access pattern, consistency, priority, expected size, plus scoring parameters including an LRFU alpha and a GQA head count of 8 — travel from the application through the driver into endpoint firmware in five stages over a CXL.io mailbox. The scoring rule is LRFU, Lee et al., ACM SIGMETRICS 1999: established prior art, with alpha as its documented LRU-to-LFU knob. Alpha = 0.2 was never validated and is withdrawn; the simulated optimum is about 0.05, and alpha is non-monotonic with no convergence onto LFU as alpha approaches zero. The head count is a scoring input only: every head of every layer is required for every token, so evicting a head produces wrong outputs, not a cache miss, and the placed, moved and evicted unit is a (sequence, token block) of 16 tokens, 5.00 mebibytes. There is no RoPE-aware prefetch hint, because RoPE is a rotation applied to Q and K at compute time and carries no information about which blocks are needed next. The fault-path panel decomposes a hypothetical load-store access into 15 nanoseconds for request issue, 20 for the PCIe Gen5 by 16 PHY, 25 for CXL switch traversal, 40 for endpoint controller decode, 80 for the DDR5-5600 array access and 20 for the return path, totalling 200 nanoseconds. That total is an unmeasured component budget, not a result: no CXL hardware was measured anywhere in this package, and the 200 nanosecond figure is demoted to an assumption inside a 32 to 121 gigabytes per second effective-bandwidth range. What the package models instead is the transfer of one 5.00 mebibyte block of 16 tokens, which takes 164, 82 or 43 microseconds at an assumed 32, 64 or 121 gigabytes per second. The 65 times ratio formerly claimed here — 13.0 microseconds of driver-mediated PCIe DMA divided by 200 nanoseconds of hypothetical load-store access — is retracted as a headline: the two paths are not the same operation and neither was measured. The comparison that survives is move versus regenerate: moving that block costs 164, 82 or 43 microseconds, while regenerating the same 16 tokens by forward compute costs 9, 11 or 18 milliseconds at 50, 40 or 25 percent model FLOPs utilisation — two to three orders of magnitude, with no precise multiple claimed, and regenerating an arbitrary interior block is at least that expensive because interior KV is not independently reproducible.
GPU Integration
Memory mapping, hint interfaces, and fault handling for CXL.mem
CXL.mem regions appear in the GPU's unified virtual address space via PCIe BAR mapping with CXL.mem bridging. The GPU accesses remote memory using standard load/store semantics. Four endpoints contribute 1 TB of Tier-2 DRAM and 16 TB of Tier-3 flash. The model's 140 GB of weights stay HBM-resident and never cross CXL.
Target-platform capability, not a generic CXL guarantee. Whether a GPU can issue ordinary load/store directly against a CXL.mem region — rather than going through a driver-mediated copy — depends on the specific GPU, its MMU and BAR/HDM decoder support, the platform firmware and the CXL topology. It is assumed here as a property of the target platform. It is not a demonstrated capability of CXL in general, nor a published capability of any particular B200 system.
Bridge
semantics
Illustrative only. This fragment is not compilable CUDA and does not demonstrate a capability of CXL, of CUDA, or of any shipping B200 platform. It sketches what a kernel would look like if the target platform exposes a CXL.mem region as GPU-addressable mapped memory with load/store semantics. Real systems require explicit region registration, a platform-specific mapping path, and driver and firmware support; a plain pointer dereference into a remote CXL region is not portable and is not guaranteed by the CXL specification.
__global__ void attention_kernel(float* kv_cache) {
// Direct load from CXL.mem address
float4 kv = *(float4*)(kv_cache + offset);
// GPU MMU translates VA → CXL.mem address
// CXL bridge handles coherent access
// No per-access DMA setup and no per-access driver
// involvement in steady state; the control plane, region
// mapping, fault handling and firmware still run on the host.
}
Extended allocation API communicates memory characteristics to the endpoint, so PLACE can score and site each block — including the identity key that lets a block's policy state survive eviction. Everything here except that persistence mechanism is Design / unvalidated.
The GPU driver translates allocation hints into endpoint firmware configuration via CXL.io mailbox commands.
When the GPU accesses an uncached CXL.mem address, a fault triggers the full access path. The stages below are a component budget, summed from vendor specifications — not a measurement.
The six-line budget below is demoted from a headline figure to an unmeasured assumption inside a 32–121 GB/s effective-bandwidth range. The 65× ratio once claimed here (13.0 µs ÷ 200 ns) is retracted: it divided a component sum for a hypothetical load/store path by a component sum for a driver-mediated DMA path — two different operations, neither of them measured.
What the package models instead is a 5.00 MiB block (16 tokens at 320 KiB/token) crossing the tier: 164 / 82 / 43 µs at an assumed 32 / 64 / 121 GB/s. The tier's value is avoiding regeneration — forward compute for the same 16 tokens is 9 / 11 / 18 ms at 50 / 40 / 25% MFU. Two to three orders of magnitude, no precise multiple claimed. Analytical model
| Access Type | Latency | Bandwidth | CPU Involved |
|---|---|---|---|
| HBM (Local) | ~100 ns | 8 TB/s | No |
| CXL.mem (Direct) — assumed, not measured | 200 ns (component budget) | 32 / 64 / 121 GB/s assumed range | No |
| PCIe DMA (Traditional) — different operation | 13.0 μs | 64 GB/s | Yes (driver) |
| NVMe Read (Tier 3) | latency assumed | 14 GB/s | Yes (filesystem) |
| Operation | Cost | Basis | Evidence |
|---|---|---|---|
| Move the block @ 121 GB/s | 43 µs | CXL 3.0 ×16 theoretical, one direction | Analytical model — assumed |
| Move the block @ 64 GB/s | 82 µs | mid-range assumption | Analytical model — no CXL hardware measured |
| Move the block @ 32 GB/s | 164 µs | pessimistic | Analytical model — assumed |
| Regenerate: forward compute, 16 tokens | 9 / 11 / 18 ms | 50% / 40% / 25% MFU, linear term | Analytical model |
| Regenerate an arbitrary interior block | ≥ the above | interior KV is not independently reproducible — hidden states depend recursively on all preceding context | Analytical model |
Analytical model — capacities are arithmetic over vendor specifications and stand. No CXL hardware was measured. Retracted: the 65× single-access ratio (13,000 ÷ 200), which divided a component sum for a hypothetical load/store path by a component sum for a driver-mediated DMA path — two different operations, neither measured. The 200 ns CXL access is demoted to an unmeasured assumption inside a 32–121 GB/s range, under which a 5.00 MiB block is 164 / 82 / 43 µs. Also retracted here: α = 0.2, per-head eviction, and RoPE-aware prefetch. Scoring is LRFU (Lee et al., ACM SIGMETRICS 1999) External literature. Persistence deltas are Simulated (provisional): one data-structure defect in Revision 1 inverted four of five findings, so Revision 2 is provisional, not settled. Canonical numbers v6.0.