  The Single Instruction, Multiple Thread (SIMT) paradigm of GPU programming
does not support the branching nature of a parton shower algorithm by
definition. However, modern GPUs are designed to schedule threads with
diverging processes independently, allowing them to handle such branches. With
regular thread synchronisation and careful treatment of the individual steps,
one can simulate a parton shower on a GPU. We present a Sudakov veto algorithm
designed to simulate parton branching on multiple events in parallel. We also
release a CUDA C++ program that generates matrix elements, showers partons and
computes jet rates and event shapes for LEP at 91.2 GeV on a GPU. To benchmark
its performance, we also provide a near-identical C++ program designed to
simulate events serially on a CPU. While the consequences of branching are not
absent, we demonstrate that a GPU can provide the throughput of a many-core
CPU. As an example, we show that the time taken to shower 10^6 events on one
NVIDIA TESLA V100 GPU is equivalent to that of 295 Intel Xeon E5-2620 CPU
cores.
