Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3374135.3385268acmconferencesArticle/Chapter ViewAbstractPublication Pagesacm-seConference Proceedingsconference-collections
research-article

GPGPU Programming for CS Undergraduates: Which one is Superman?

Published: 25 May 2020 Publication History

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.

References

[1]
M. Bailey and S. Cunningham. 2007. A Hands-on Environment for Teaching GPU Programming. ACM Sigcse Bulletin 39 (03 2007), 254--258.
[2]
D. Bunde. 2013. Short Modules for Introducing Parallel Concepts. Journal of Computing Sciences in Colleges 29, 1 (2013), 35--36.
[3]
R. Butler, R. Eggen, and S. Wallace. 1988. Introducing Parallel Processing at the Undergraduate Level. ACM Sigcse Bulletin 20 (02 1988), 63--67.
[4]
NVIDIA Corporation. [n.d.]. CUDA Zone. https://developer.nvidia.com/cudazone (accessed February 26, 2020).
[5]
NVIDIA Corporation. 2019. CUDA Toolkit Documentation. https://docs.nvidia.com/cuda/cuda-c-programming-guild/index.html (accessed February 26, 2020).
[6]
R. H. Dennard, F. H. Gaensslen, H. Yu, V. L. Rideout, E. Bassous, and A. R. LeBlanc. 1974. Design of Ion-implanted MOSFET's with very Small Physical Dimensions. IEEE Journal of Solid-State Circuits 9, 5 (Oct 1974), 256--268.
[7]
ROCm Documentation. 2014. OpenCL Programming Guide. https://rocm-documentation.readthedocs.io/en/latest/Programming_Guides/Opencl-programming-guide.html (accessed February 26, 2020).
[8]
D. Ernst. 2011. Preparing students for Future Architectures with an Exploration of Multi- and Many-core Performance. In Proceedings of the 16th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE 2011). Darmstadt, Germany, 57--62.
[9]
A. Feng, M. Gardner, and W. Feng. 2017. Parallel Programming with Pictures is a Snap! J. Parallel Distrib. Comput. 105, C (2017), 150--162.
[10]
G. Fenwick. 2018. An Investigation into Image Classification using Massively Parallel Processors. Bachelor's thesis. Appalachian State University, Boone, NC.
[11]
I. Finlayson, J. Mueller, S. Rajapakse, and D. Easterling. 2015. Introducing Tetra: An Educational Parallel Programming System. In 2015 IEEE International Parallel and Distributed Processing Symposium Workshop. Hyderabad, India, 746--751.
[12]
M.Harris, S. Sengupta, and J. D. Owens. 2020. GPU Gems 3. NVIDIA Corporation. https://developer.nvidia.com/gpugems/gpugems3/contributors (Chapter 39) (accessed February 26, 2020).
[13]
K. Karimi, N. Dickson, and F. Hamze. 2010. A Performance Comparison of CUDA and OpenCL. Computing Research Repository - CORR arXiv:1005.2581 (05 2010).
[14]
D. Kirk and W. W. Hwu. 2017. Programming Massively Parallel Processors. Morgan Kaufmann Publishers, Cambridge, MA.
[15]
R. R. Lewis. 2015. Coaster: Teaching Computer Graphics Incrementally (Abstract Only). In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (Kansas City, Missouri, USA) (SIGCSE '15). Association for Computing Machinery, New York, NY, USA, 512.
[16]
C. Lupo, Z. Wood, and C. Victorino. 2012. Cross Teaching Parallelism and Ray Tracing: A Project-Based Approach to Teaching Applied Parallel Computing. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (SIGCSE '12). Raleigh, North Carolina, USA.
[17]
A. Marowka. 2017. On Parallel Software Engineering Education using Python. Education and Information Technologies (04 2017).
[18]
D. Merrill and A. Grimshaw. 2019. Parallel Scan for Stream Architectures. Technical Report. University of Virginia, Department of Computer Science. https://libraopen.lib.virginia.edu/downloads/6t053g00z
[19]
G. Moore. 2006. Cramming more Components onto Integrated Circuits, Reprinted from Electronics, volume 38, number 8, April 19, 1965, pp.114 ff. Solid-State Circuits Newsletter, IEEE 11 (10 2006), 33 - 35.
[20]
M. Patacchiola. 2016. The Simplest Classifier: Histogram Comparison. https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html (accessed February 26, 2020).
[21]
Y. Patt and S.J. Patel. 2001. Introduction to Computing Systems: From Bits and Gates to C and Beyond (2 ed.). McGraw-Hill, New York, NY.
[22]
S. K. Prasad, A. Gupta, A. L Rosenberg, A. Sussman, and C. C. Weems. 2016. Topics in Parallel and Distributed Computing: Introducing Concurrency in Undergraduate Courses (1 ed.). Morgan-Kaufman, Waltham, MA.
[23]
S. Rivoire. 2010. A Breadth-first Course in Multicore and Manycore Programming. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE '10). Milwaukee, Wisconsin, USA, 214--218.
[24]
J. C. Russ and B. F. Neal. 2016. The Image Processing Handbook. Taylor & Francis Group, Boca Raton, FL, USA.
[25]
M. Schlarb, C. Hundt, and B. Schmidt. 2015. SAUCE: A Web-Based Automated Assessment Tool for Teaching Parallel Programming. LNCS 9523 (08 2015), 54--65.
[26]
M. J. Swain and D. H. Ballard. 1991. Color indexing. International Journal of Computer Vision 7, 1 (1991), 11--32. https://doi.org/10.1007/BF00130487
[27]
V. Volkov. 2016. Understanding Latency Hiding on GPUs. Ph.D. Dissertation. University of California, Berkley, CA. https://www2.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-143.pdf (accessed February 26, 2020).
[28]
N. Watkinson, A. Shivam, A. Nicolau, and A. Veidenbaum. 2019. Teaching Parallel Computing and Dependence Analysis with Python. In 2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW). Rio de Janeiro, Brazil, 320--325.

Cited By

View all
  • (2024)Parallel Optimization for Robotics: An Undergraduate Introduction to GPU Parallel Programming and Numerical Optimization Research2024 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW63119.2024.00079(342-345)Online publication date: 27-May-2024
  • (2021)Lightning Talks of EduHPC 20212021 IEEE/ACM Ninth Workshop on Education for High Performance Computing (EduHPC)10.1109/EduHPC54835.2021.00011(43-50)Online publication date: Nov-2021
  • (2021)Design and Implementation of the Intelligent Parking System for Large Communities2021 International Conference on Computer, Internet of Things and Control Engineering (CITCE)10.1109/CITCE54390.2021.00028(107-117)Online publication date: Nov-2021

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ACMSE '20: Proceedings of the 2020 ACM Southeast Conference
April 2020
337 pages
ISBN:9781450371056
DOI:10.1145/3374135
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 May 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CUDA C
  2. General Purpose GPU Programming
  3. Parallel Computing

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ACM SE '20
Sponsor:
ACM SE '20: 2020 ACM Southeast Conference
April 2 - 4, 2020
FL, Tampa, USA

Acceptance Rates

Overall Acceptance Rate 502 of 1,023 submissions, 49%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)1
Reflects downloads up to 21 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Parallel Optimization for Robotics: An Undergraduate Introduction to GPU Parallel Programming and Numerical Optimization Research2024 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW63119.2024.00079(342-345)Online publication date: 27-May-2024
  • (2021)Lightning Talks of EduHPC 20212021 IEEE/ACM Ninth Workshop on Education for High Performance Computing (EduHPC)10.1109/EduHPC54835.2021.00011(43-50)Online publication date: Nov-2021
  • (2021)Design and Implementation of the Intelligent Parking System for Large Communities2021 International Conference on Computer, Internet of Things and Control Engineering (CITCE)10.1109/CITCE54390.2021.00028(107-117)Online publication date: Nov-2021

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media