Abstract
Over the past few decades, Central Processing Units (CPUs) have improved exponentially, often doubling performance on a year-by-year basis. Recently progress has slowed due to the limits imposed by energy and heat. At present, instead of increasing CPU performance, manufacturers have focused on improving system performance by increasing the number of CPUs (known as cores) on a single silicon chip. A single application can benefit from the additional cores by being threaded; multiple threads can execute on different cores in parallel. Another source of parallel execution is the Graphical Processing Unit. GPUs have been used for graphics for decades. In recent years, programming interfaces have been introduced that allow the GPU to solve a variety of data parallel problems, not just problems involving graphics. This use of the GPU is known as General Purpose computing for Graphics Processing Units (GPGPU). This paper discusses the creation of a GPGPU programming course for undergraduates at Appalachian State University (App-State) and provides a brief introduction to using the NVIDIA CUDA API. In addition, the paper focuses on the final programming assignment in the course which solves an image classification problem. The programming assignment is simple enough that second year CS students are able to complete it and also allows for further exploration thus making it interesting for upper level students.
Author supplied keywords
Cite
CITATION STYLE
Fenwick, G., & Norris, C. (2020). GPGPU programming for CS undergraduates: Which one is superman? In ACMSE 2020 - Proceedings of the 2020 ACM Southeast Conference (pp. 2–9). Association for Computing Machinery, Inc. https://doi.org/10.1145/3374135.3385268
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.