LEARN MORE ABOUT PARALLEL PROGRAMMING TECHNIQUES BY IMPLEMENTING A HISTOGRAM ON GPU
DOI:
https://doi.org/10.7251/STEDZ2401318BKeywords:
Histogram, Parallel primitives, Parallel programing, CUDA, GPUAbstract
A histogram is a graphical representation of the distribution of data, commonly used as an analysis tool in statistics to visualize the frequency distribution of a dataset. Our focus of interest lies in the Frequency Histogram, a special graph that employs vertical columns to illustrate the frequency of occurrence of each data element.
Here, we will present a parallel SIMT (Single Instruction Multiple Threads) Histogram algorithm. This algorithm is composed of basic parallel primitives like sorting and parallel compact. Implementing in this manner for educational endeavors allows students to delve into the details, learn, and enhance their understanding of the CUDA parallel programming model. The presented algorithm utilizes a sparse representation of the vector to store results, distinguishing it from well-known standard parallel Histogram algorithms. Besides delving into the details of implementing parallel primitives, we will also discuss how to perform an efficiency evaluation of the parallel program.