Experiences with GPUs for Cryptography
Paul Leyland

Video cards contain very powerful parallel computational engines called graphical processing units or GPUs. A GPU typically has a very favourable price / performance ratio compared with a traditional processor. For some computations a GPU may be over a hundred times faster than the machine in which it is hosted. However, not all computations are suited to running on a GPU; even those which are suitable must be programmed carefully and in a relatively unfamiliar style in order to achieve high performance. This paper describes my experiences with writing cryptographic software to run on GPUs. In particular, it makes suggestions about what is and what is not appropriate for GPUs and some of the pitfalls encountered when programming them.