GPU simulation · Independent project
CUDA Mixture of Experts
A GPU-accelerated tennis Monte Carlo simulator — expert routing for the matchup, CUDA for the speed, and a CPU baseline to prove it.
Project Summary
GPU-accelerated tennis Monte Carlo simulator using CUDA C++, Mixture of Experts routing, softmax expert blending, and a CPU vs GPU benchmark that makes the parallelism speedup measurable.
- Status
- Independent technical project
- Role
- CUDA simulation + modeling + benchmark analysis
- Stack
- CUDA C++, cuRAND, Mixture of Experts, Monte Carlo simulation
- Code
- Not listed
1. Overview
CUDA Mixture of Experts is a CUDA C++ tennis match simulator that estimates win probability, average total games, and over/under probabilities with Monte Carlo simulation. The project combines matchup modeling with GPU systems work: many independent simulated matches are run in parallel, then aggregated into readable analytics outputs.
The interesting engineering is in two places — how the model decides what a matchup is (the Mixture of Experts router), and how the simulation is made fast enough to run tens of thousands of trials interactively (CUDA parallelism, measured against a CPU baseline). The sections below walk through the model, the GPU simulation, the benchmark, and a real generated test run.
2. How the MoE Model Works
The Mixture of Experts router combines specialized expert signals such as surface performance, fatigue, head-to-head history, and recent form. Rather than forcing one global score to explain every matchup, the router assigns weights to the experts and blends their outputs — with a softmax over the expert scores — into the simulation parameters that drive the tennis match model.
The payoff of the mixture is specialization: a clay-court specialist meeting a big server on a fast hard court is a different problem than two baseliners on clay, and the router can lean on whichever experts actually carry signal for that pairing instead of averaging everything into mush.
3. CUDA Monte Carlo Simulation
CUDA threads simulate independent matches in parallel. Each thread uses cuRAND for per-thread randomness, runs one stochastic tennis match trial, and contributes its result to aggregate estimates for player win probability, average total games, and over/under outcomes. Because every trial is independent, the workload maps almost perfectly onto the GPU — thousands of matches resolve at once, and the host only sees the summarized distribution.
4. CPU vs GPU Performance
The project includes a CPU baseline for comparison with the
--compare-cpu option. The benchmark path is intended to
make GPU acceleration measurable: it runs the same
simulation math and the same workload across serial CPU execution
and massively parallel CUDA execution, so the numbers reflect the
hardware, not two different models. The speedup comes from CUDA
parallelism — not from changing the Monte Carlo model itself.
5. Test Run: Sinner vs Alcaraz
The following values are sample benchmark results from a generated test run — an illustration of the output, not a universal performance claim. Runtime in particular depends on simulation count, hardware, and match format.
5.1 · Benchmark numbers
Best of 3
Best of 5
Runtime depends on simulation count, hardware, match format, and benchmark settings.
5.2 · Result charts
Best of 5 Win Probability
Best of 5 Over/Under Probability
Best of 5 Total Games Distribution
Best of 5 Runtime Comparison
Best of 3 Over/Under
Best of 3 Total Games
Best of 3 Runtime
Best of 3 Win Probability
Educational analytics and systems visualization.
6. Tech Stack
Core technologies include CUDA C++, cuRAND for GPU-side random number generation, Monte Carlo simulation, Mixture of Experts routing, softmax expert blending, and CPU/GPU benchmark tooling for performance comparison.