GPU Computing
Graphics processors provide thousands of simple cores optimized for throughput, making them the workhorse of modern simulation and machine learning.
Throughput over latency
A CPU devotes transistors to making a few threads fast: deep caches, branch prediction, out-of-order execution. A GPU takes the opposite bet, packing thousands of simple arithmetic units to run many threads at once. It hides memory latency not with large caches but by switching among a huge pool of ready threads. For data-parallel work, this yields far higher throughput per watt and per unit area.
The execution model
GPU work is expressed as a kernel launched over a grid of threads. Threads are grouped into blocks that share fast on-chip memory; blocks are scheduled onto streaming multiprocessors. Within a block, threads execute in warps of 32 that run in lockstep, so branch divergence within a warp costs performance.
Memory is the constraint
- High-bandwidth device memory feeds the arithmetic units
- On-chip shared memory and registers are fast but small
- Data must be moved between host (CPU) and device (GPU) memory, a frequent bottleneck
What runs well
GPUs excel at dense linear algebra, stencil updates, particle methods, and neural-network math, all of which are data-parallel and arithmetic-heavy. They struggle with heavily branching, pointer-chasing, or latency-bound code.
In fusion and ML
GPU clusters run the largest turbulence and particle-in-cell simulations and essentially all large-scale model training. Kronos studies its machine designs on such hardware in simulation. Getting good performance means keeping data resident on the device, maximizing arithmetic per byte moved, and avoiding warp divergence.