This document discusses GPU algorithms and graphics processing units (GPUs). It provides an overview of using GPUs for general purpose tasks by copying data to the GPU memory, running executable kernels on the GPU, and copying results back to the CPU memory. It also discusses GPU memory management and optimizations like using shared memory and avoiding serialization. An example k-means clustering algorithm is mentioned to illustrate a potential GPU algorithm.