GSParLib: A multi-level programming interface unifying OpenCL and CUDA for expressing stream and data parallelism

IF 4.1 2区 计算机科学 Q1 COMPUTER SCIENCE, HARDWARE & ARCHITECTURE
Dinei A. Rockenbach , Gabriell Araujo , Dalvan Griebler, Luiz Gustavo Fernandes
{"title":"GSParLib: A multi-level programming interface unifying OpenCL and CUDA for expressing stream and data parallelism","authors":"Dinei A. Rockenbach ,&nbsp;Gabriell Araujo ,&nbsp;Dalvan Griebler,&nbsp;Luiz Gustavo Fernandes","doi":"10.1016/j.csi.2024.103922","DOIUrl":null,"url":null,"abstract":"<div><p>The evolution of Graphics Processing Units (GPUs) has allowed the industry to overcome long-lasting problems and challenges. Many belong to the stream processing domain, whose central aspect is continuously receiving and processing data from streaming data producers such as cameras and sensors. Nonetheless, programming GPUs is challenging because it requires deep knowledge of many-core programming, mechanisms and optimizations for GPUs. Current GPU programming standards do not target stream processing and present programmability and code portability limitations. Among our main scientific contributions resides <span><span>GSParLib</span></span>, a C++ multi-level programming interface unifying <span>CUDA</span> and <span>OpenCL</span> for GPU processing on stream and data parallelism with negligible performance losses compared to manual implementations; <span><span>GSParLib</span></span> is organized in two layers: one for general-purpose computing and another for high-level structured programming based on parallel patterns; a methodology to provide unified and driver agnostic interfaces minimizing performance losses; a set of parallelism strategies and optimizations for GPU processing targeting stream and data parallelism; and new experiments covering GPU performance on applications exposing stream and data parallelism.</p></div>","PeriodicalId":50635,"journal":{"name":"Computer Standards & Interfaces","volume":"92 ","pages":"Article 103922"},"PeriodicalIF":4.1000,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computer Standards & Interfaces","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0920548924000916","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, HARDWARE & ARCHITECTURE","Score":null,"Total":0}
引用次数: 0

Abstract

The evolution of Graphics Processing Units (GPUs) has allowed the industry to overcome long-lasting problems and challenges. Many belong to the stream processing domain, whose central aspect is continuously receiving and processing data from streaming data producers such as cameras and sensors. Nonetheless, programming GPUs is challenging because it requires deep knowledge of many-core programming, mechanisms and optimizations for GPUs. Current GPU programming standards do not target stream processing and present programmability and code portability limitations. Among our main scientific contributions resides GSParLib, a C++ multi-level programming interface unifying CUDA and OpenCL for GPU processing on stream and data parallelism with negligible performance losses compared to manual implementations; GSParLib is organized in two layers: one for general-purpose computing and another for high-level structured programming based on parallel patterns; a methodology to provide unified and driver agnostic interfaces minimizing performance losses; a set of parallelism strategies and optimizations for GPU processing targeting stream and data parallelism; and new experiments covering GPU performance on applications exposing stream and data parallelism.

GSParLib:统一 OpenCL 和 CUDA 的多级编程接口,用于表达流和数据并行性
图形处理器(GPU)的发展使业界得以克服长期存在的问题和挑战。许多图形处理器属于流处理领域,其核心是不断接收和处理来自流数据生产者(如摄像头和传感器)的数据。尽管如此,GPU 编程仍具有挑战性,因为它需要对 GPU 的多核编程、机制和优化有深入的了解。目前的 GPU 编程标准并不针对流处理,因此存在可编程性和代码可移植性方面的限制。我们的主要科研贡献包括 GSParLib,它是一个 C++ 多层次编程接口,统一了 CUDA 和 OpenCL,用于 GPU 流和数据并行处理,与手动实现相比,性能损失可以忽略不计;GSParLib 分为两层:GSParLib 分为两层:一层用于通用计算,另一层用于基于并行模式的高级结构化编程;一种提供统一的、与驱动程序无关的接口的方法,可将性能损失降至最低;一套针对流和数据并行性的 GPU 处理的并行性策略和优化;以及新的实验,涵盖暴露流和数据并行性的应用程序的 GPU 性能。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
Computer Standards & Interfaces
Computer Standards & Interfaces 工程技术-计算机:软件工程
CiteScore
11.90
自引率
16.00%
发文量
67
审稿时长
6 months
期刊介绍: The quality of software, well-defined interfaces (hardware and software), the process of digitalisation, and accepted standards in these fields are essential for building and exploiting complex computing, communication, multimedia and measuring systems. Standards can simplify the design and construction of individual hardware and software components and help to ensure satisfactory interworking. Computer Standards & Interfaces is an international journal dealing specifically with these topics. The journal • Provides information about activities and progress on the definition of computer standards, software quality, interfaces and methods, at national, European and international levels • Publishes critical comments on standards and standards activities • Disseminates user''s experiences and case studies in the application and exploitation of established or emerging standards, interfaces and methods • Offers a forum for discussion on actual projects, standards, interfaces and methods by recognised experts • Stimulates relevant research by providing a specialised refereed medium.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信