Academic Journal
SCU: a GPU stream compaction unit for graph processing
| Title: | SCU: a GPU stream compaction unit for graph processing |
|---|---|
| Authors: | Segura Salvador, Albert, Arnau Montañés, José María, González Colás, Antonio María |
| Contributors: | Universitat Politècnica de Catalunya. Doctorat en Arquitectura de Computadors, Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors, Universitat Politècnica de Catalunya. ARCO - Microarquitectura i Compiladors |
| Source: | UPCommons. Portal del coneixement obert de la UPC Universitat Politècnica de Catalunya (UPC) Recercat. Dipósit de la Recerca de Catalunya instname |
| Publisher Information: | ACM, 2019. |
| Publication Year: | 2019 |
| Subject Terms: | Computers, GPGPU, Graph processing, 02 engineering and technology, Àrees temàtiques de la UPC::Enginyeria de la telecomunicació::Processament del senyal::Processament de la imatge i del senyal vídeo, Enginyeria de la telecomunicació::Processament del senyal::Processament de la imatge i del senyal vídeo [Àrees temàtiques de la UPC], Ordinadors, Stream compaction, Àrees temàtiques de la UPC::Informàtica::Hardware, Imatges -- Processament -- Tècniques digitals, 0202 electrical engineering, electronic engineering, information engineering, Image processing -- Digital techniques, Informàtica::Hardware [Àrees temàtiques de la UPC] |
| Description: | Graph processing algorithms are key in many emerging applications in areas such as machine learning and data analytics. Although the processing of large scale graphs exhibits a high degree of parallelism, the memory access pattern tend to be highly irregular, leading to poor GPGPU efficiency due to memory divergence. To ameliorate this issue, GPGPU applications perform a stream compaction operation each iteration of the algorithm to extract the subset of active nodes/edges, so subsequent steps work on compacted dataset. We show that GPGPU architectures are inefficient for stream compaction, and propose to offload this task to a programmable Stream Compaction Unit (SCU) tailored to the requirements of this kernel. The SCU is a small unit tightly integrated in the GPU that efficiently gathers the active nodes/edges into a compacted array in memory. Applications can make use of it through a simple API. The remaining steps of the graph-based algorithm are executed on the GPU cores taking benefit of the large amount of parallelism in the GPU, but they operate on the SCU-prepared data and achieve larger memory coalescing and, hence, much higher efficiency. Besides, the SCU performs filtering of repeated and already visited nodes during the compaction process, significantly reducing GPGPU workload, and writes the compacted nodes/edges in an order that improves memory coalescing by reducing memory divergence. We evaluate the performance of a state-of-the-art GPGPU architecture extended with our SCU for a wide variety of applications. Results show that for high-performance and for low-power GPU systems the SCU achieves speedups of 1.37x and 2.32x, 84.7% and 69% energy savings, and an area increase of 3.3% and 4.1% respectively. |
| Document Type: | Article Conference object |
| File Description: | application/pdf |
| DOI: | 10.1145/3307650.3322254 |
| Access URL: | http://hdl.handle.net/2117/176876 https://upcommons.upc.edu/handle/2117/176876 https://dl.acm.org/citation.cfm?id=3322254 https://dblp.uni-trier.de/db/conf/isca/isca2019.html#SeguraA019 https://doi.org/10.1145/3307650.3322254 https://hdl.handle.net/2117/176876 https://doi.org/10.1145/3307650.3322254 |
| Rights: | URL: https://www.acm.org/publications/policies/copyright_policy#Background |
| Accession Number: | edsair.doi.dedup.....a94ecd93fa2e81fd091c772cc2ff9644 |
| Database: | OpenAIRE |
| DOI: | 10.1145/3307650.3322254 |
|---|