  GX is a code for solving the nonlinear gyrokinetic system for low-frequency
turbulence in magnetized plasmas, particularly tokamaks and stellarators. In
GX, our primary motivation and target is a fast gyrokinetic solver that can be
used for fusion reactor design and optimization along with wide-ranging physics
exploration. This has led to several code and algorithm design decisions,
specifically chosen to prioritize time to solution. First, we have used a
discretization algorithm that is pseudo-spectral in the entire phase-space,
including a Laguerre-Hermite pseudo-spectral formulation of velocity space,
which allows for smooth interpolation between coarse gyrofluid-like resolutions
and finer conventional gyrokinetic resolutions and efficient evaluation of a
model collision operator. Additionally, we have built GX to natively target
graphics processors (GPUs), which are among the fastest computational platforms
available today. Finally, we have taken advantage of the reactor-relevant limit
of small $\rho_*$ by using the radially-local flux-tube approach. In this paper
we present details about the gyrokinetic system and the numerical algorithms
used in GX to solve the system. We then present several numerical benchmarks
against established gyrokinetic codes in both tokamak and stellarator magnetic
geometries to verify that GX correctly simulates gyrokinetic turbulence in the
small $\rho_*$ limit. Moreover, we show that the convergence properties of the
Laguerre-Hermite spectral velocity formulation are quite favorable for
nonlinear problems of interest. Coupled with GPU acceleration, which we also
investigate with scaling studies, this enables GX to be able to produce useful
turbulence simulations in minutes on one (or a few) GPUs. GX is open-source
software that is ready for fusion reactor design studies.
