Beam Dynamics Using Graphical Processing Units (GPUs)

Robert Appleby, D. Bailey, Michael D. Salt · Research Explorer (The University of Manchester) · 2008

Simulation of particle beam dynamics in accelerators is computationally expensive, and requires ray-tracing of high numbers of particles to ensure the accuracy of the result, to model collective effects and to reduce the statistical error. Conventional beam tracking tools operate sequentially on particle phase space to compute the trajectories of particles through many turns around circular and along linear machines. Graphical Processing Units (GPUs) utilise stream processing techniques to dramatically speed up parallel computational tasks, and offer considerable performance benefits to particle beam dynamics processing. In this paper, the application of stream processing to beam dynamics is presented, along with the GPU-based beam dynamics code GPMAD, which exploits the NVidia [1] GPU processor and demonstrates the considerable performance benefits to particle tracking calculations. The accuracy and speed of GPMAD is benchmarked using the DIAMOND [2] Light Source BTS lattice, and the ATF extraction line. STREAM PROCESSING Stream Processors The application of stream processing to the parallel processing of beam dynamics simulations was first pointed out in [3], where the potential gain in processing power was discussed. Conventional beam dynamics simulations are carried out on Central Processing Units (CPUs), which are multifunctional devices with a large proportion of the silicon die devoted to control and cache. Arithmetic floatingpoint units (FPU) occupy only a small proportion of the die, resulting in comparatively poor floating point performance of the processor. However, stream processors offer improved floating point performance due to a highly optimised single-instruction-multiple-data (SIMD) architecture. Graphics Processing Units (GPU) are a type of stream processor, whose development was driven by the need for ultra-fast image rendering in the computer games industry. Due to the demands of the gaming and image processing industry, GPUs are very powerful: the peak Floating-Point Operations per Second (FLOPS) of the latest GPU is 768 GFLOPS, compared with only 50 GFLOPS for a typical dual-core CPU. Parallel programming of a stream processor requires a different approach to conventional programming techniques. The subsection of the simulation (kernel function) ∗University of Manchester and Cockcroft Institute † [email protected] targeted at the stream processor is written in a dedicated stream processing language. Early GPUs had closed architectures designed specifically for rendering, but later architectures were opened up, allowing exploitation for alternative purposes. General Purpose computation using GPUs (GPGPU) developed, leading to an array of programming languages. Examples of GPU-based programming languages are Brook [4] and CUDA [5]. Accelerator Physics and Stream Processing The beam dynamics of the motion of particles through an accelerator is well suited to stream processing techniques. The motion is modelled by representing a particle as a point in a 6-dimensioanl phase space, with positions (x,y,τ ), associated canonical momenta (px,py ,pt) and phase space vector, X = (x, px, y, py, τ, pt) T . (1) The evolution of the phase space point through a magnetic accelerator elements may be modelled using the second order transport map [6],

Read the paper · More papers on PaperTik