|Time & Place:||TR 12:00-12:50 PM; meeting in 253 F. Paul Anderson Tower|
|Instructor:||Professor Hank Dietz|
|Course 1-page ad:||adF19.pdf|
GPU & Multi-Core Processor Computing is about the large-scale parallel processing within a modern computer. Multi-core refers to the multiple conventional processors now found within a processor chip. Graphics Processing Units (GPUs) were once all about video output, but have mutated into the dominant general-purpose many-core parallel computing architecture. In this course, you'll not only learn about the key architectural features of both, but also how to use them effectively -- primarily by directly programming them, but we'll also discuss some libraries.
All course materials will be linked here:
Aside from working on your own systems, there are two alternatives. There are multi-core systems with NVIDIA GPUs in Marksbury that can be remotely accessed for this course, but we also might be using the large system managed by CCS. All the projects will be C/C++ based, but you'll be using CUDA, OpenACC, and OpenMP for your projects.
Professor Hank Dietz is usually in the Davis Marksbury Building; see his home page for
complete contact info. He has an "open-door" policy that
whenever his door is open and he's not busy with someone else,
he's available -- and yup, there really is a slow-update live
camera in his office so you can check.
Alternatively, you also can email email@example.com to make an appointment; please
use "GPUMC" in the email subject line for anything
related to this course.
About the graphic: The AMD Threadripper processor (actually a multi-chip module) provides 16 cores supporting 32 threads. The NVIDIA Quadro GV100 is a video card that can support up to four 5K displays, but provides an even more impressive level of floating-point performance: over 7TFLOPS for 64-bit values and nearly 120TFLOPS for 16-bit values. In context, it wasn't until 2003 that the fastest supercomputer in Kentucky broke the 1TFLOPS barrier... now, even a low-end laptop GPU can do that!