
GPU-CFR: 80x Faster Counterfactual Regret Minimization by Compiling the Game to Static Dataflow and CUDA Graph Replay
GPU-CFR is a compiler and runtime that speeds up Counterfactual Regret Minimization (CFR), the standard algorithm for solving imperfect-information games, by compiling a fixed game into static dataflow (flat edge/info-set arrays, precomputed indices, depth-level batched passes) and replaying iterations with CUDA Graph Replay instead of issuing per-iteration kernel launches. On an A100, it runs 29.8-80.4x faster than the fastest prior GPU CFR implementation and 14-258x faster than LiteEFG (a fast CPU implementation) on the largest games in an eight-game benchmark suite, while reproducing reference iterates bitwise. The work matters because CFR was historically CPU-favored due to GPU kernel-launch and dispatch overhead dominating microsecond-scale kernels, and this compiler-based approach removes that bottleneck.
What it adds beyond the summary
The abstract carries two things the catalog summary omits, both of which change how an engineer would weigh this.
The compiled representation, not the GPU, carries most of the win. On eight CPU threads with no accelerator, GPU-CFR is already 2.2–51.1x faster than the GPU baseline it beats. So the payoff is largely from the static-dataflow compilation, not from CUDA Graph Replay per se — meaning the approach is worth adopting even for someone without an A100.
Where the operation-count reduction comes from. Three specific techniques — static chance folding, depth-level execution blocks, and a dual-lane reach buffer — cut the number of framework operations by up to 18.1x. That 18.1x is the mechanism behind the speedups; the summary names the dataflow layout but not these three transforms or the operation-count figure.
Evidence as stated
- 29.8–80.4x faster than the fastest prior GPU CFR on the same A100.
- 14–258x faster than LiteEFG (fast open-source CPU implementation), specifically on the four largest games of the suite — the summary's "largest games" is more precise here.
- 2.2–51.1x faster than the GPU baseline on 8 CPU threads, no accelerator.
- Benchmark: an eight-game suite spanning card games, dice games, and board games. The authors claim wins on "mid-to-large games," which is narrower than a blanket claim across all sizes.
- CPU optimized path reproduces reference iterates bitwise; the update rule is unchanged.
- Tree construction and graph capture pay for themselves within the first solve — relevant if you run one game once rather than amortizing over many solves.
Limits
This is an abstract only; no code link, license, install command, per-game breakdown, or absolute timings are on the page. The classification is cs.DC, submitted 10 Sep 2026. Two scope caveats the authors themselves state: the advantage is claimed for mid-to-large games (small games are not claimed as wins), and CUDA Graph Replay depends on the "fixed game" assumption — shapes, indices, and buffer addresses never changing — so a game requiring runtime tree changes falls outside what is demonstrated. Whether the compiler handles arbitrary games or only the eight benchmarked is not established by the abstract.
Organisations named here
- A100
Technologies named here
- GPU-CFR
- LiteEFG
- CUDA Graph Replay
- CUDA
Techniques named here
- Counterfactual regret minimization
- Static dataflow compilation
- Static chance folding
- Depth-level execution blocks
- Dual-lane reach buffer
Related in research



