  We present an ultrafast opacity calculator that we name HELIOS-K. It takes a
line list as an input, computes the shape of each spectral line and provides an
option for grouping an enormous number of lines into a manageable number of
bins. We implement a combination of Algorithm 916 and Gauss-Hermite quadrature
to compute the Voigt profile, write the code in CUDA and optimise the
computation for graphics processing units (GPUs). We restate the theory of the
k-distribution method and use it to reduce $\sim 10^5$ to $10^8$ lines to $\sim
10$ to $10^4$ wavenumber bins, which may then be used for radiative transfer,
atmospheric retrieval and general circulation models. The choice of line-wing
cutoff for the Voigt profile is a significant source of error and affects the
value of the computed flux by $\sim 10\%$. This is an outstanding physical
(rather than computational) problem, due to our incomplete knowledge of
pressure broadening of spectral lines in the far line wings. We emphasize that
this problem remains regardless of whether one performs line-by-line
calculations or uses the k-distribution method and affects all calculations of
exoplanetary atmospheres requiring the use of wavelength-dependent opacities.
We elucidate the correlated-k approximation and demonstrate that it applies
equally to inhomogeneous atmospheres with a single atomic/molecular species or
homogeneous atmospheres with multiple species. Using a NVIDIA K20 GPU, HELIOS-K
is capable of computing an opacity function with $\sim 10^5$ spectral lines in
$\sim 1$ second and is publicly available as part of the Exoclimes Simulation
Platform (ESP; www.exoclime.org).
