Keith Shortridge
Keith has had many years of experience developing astronomical software, mainly for instrument control and data reduction. Having worked originally at UCL and then at Caltech, he has spent most of his career at the Australian Astronomical Observatory. He is particularly interested in the use of hardware simulation in instrument control software projects, and in ways of displaying astronomical data. Having nominally retired from AAO in 2016, he continues to work on a freelance basis, mostly on instrument control software.
Session
This tutorial is aimed at ADASS attendees who may have sat through numerous talks about how GPUs make everything faster, wondered about making use of the GPUs to speed up compute tasks, and then somehow never found the time to actually try it. The aim is to give people who have no experience with GPU programming a kick-start towards trying it for themselves on their own laptops. The tutorial will be based around a small set of example C++ command line programs that perform calculations on 2D data, all of which run on MacOS, Linux, and Windows. Attendees will be able to build, run, modify, and experiment with these programs, seeing how the GPU performance compares with the CPU. The structure of the programs will be explained together with details of the code, with an emphasis on what is actually going on in the GPU when it runs. Metal and Vulkan versions of each program will be provided. Metal is Apple’s current GPU infrastructure, and Vulkan - a descendant of OpenGL - will run on almost any recent GPU. (Those wondering about CUDA should note that CUDA and systems based on it need an Nvidia GPU, while most laptops use different GPUs.) As the underlying operations they perform are the same, seeing what these two quite different systems have in common will provide some insight into the internal workings of a modern GPU. Comparing the GPU and CPU code will show which programs gain from using the GPU and which may not. There will be a bit of fun stuff at the end with graphics, and everyone will take away an amount of potentially helpful example code.
The latest release of the example code, and the latest installation instructions, can be found at:
https://github.com/KnaveAndVarlet/ADASS2024_GPU