  CUDA (formerly an abbreviation of Compute Unified Device Architecture) is a
parallel computing platform and API model created by Nvidia allowing software
developers to use a CUDA-enabled graphics processing unit (GPU) for general
purpose processing. This 90-pages tutorial introduces the CUDA concepts in an
easy-to-grasp and interactive way with ready-to-run code samples tested on
Windows and Linux. Starting from scratch, a complete stand-alone GPU tool is
implemented which automatically performs a ciphertext-only attack on
ciphertexts encrypted by monoalphabetic substitution and columnar
transposition. Throughout this process, you will learn how to architect the
tool, what optimizations could significantly accelerate the routines, why the
choice of an adequate metaheuristic is critical, and how to draw sketches to
enlighten the design process. This tutorial will be incorporated in the
CrypTool book as chapter 13.
