Personal computers have tremendous computing power that we do not utilize. Here, we are not referring to the brain commonly known about computer, i.e. CPU, but GPU (graphics processing unit).
GPU is the supplementary brain in the computer that generates those nice and cool graphics for, very often, playing computer games. Each GPU is like thousands of CPUs, and can be programmed just like CPU to solve computational problems in general. By its nature as thousands of CPUs, GPU solves problems many times faster than the CPU living in the same computer.
Many scientific problems that used to be solved by expensive supercomputers are now solved in a much shorter time with personal computers that cost just a few hundred dollars. In fact, many of us have access or own such a computer at home or in work. Software systems and search engines are or being built to take advantage of the computing power of GPUs, and the use of GPUs has spread beyond scientific computations.
In this workshop, we would like to introduce to you the exciting development in the latest GPU architecture and its programming model, in particular, CUDA programming with NVidia GPU. We will study a couple of examples, and let you practice controlling a GPU (of thousands of CPUs) to solve cool problems. Though our examples are centred on photo/image processing, you can apply the skill (developing parallel C/C++ programs with Microsoft Windows) to solve other computational problems, such as computational geometry.
Prerequisites
Must be proficient in C or C++ programming language.