mdspan in C++: A Case Study in the Integration of Performance Portable Features into International Language Standards

D. Hollman, B. Lelbach, H. Edwards, M. Hoemmen, Daniel Sunderland, C. Trott
{"title":"mdspan in C++: A Case Study in the Integration of Performance Portable Features into International Language Standards","authors":"D. Hollman, B. Lelbach, H. Edwards, M. Hoemmen, Daniel Sunderland, C. Trott","doi":"10.1109/P3HPC49587.2019.00011","DOIUrl":null,"url":null,"abstract":"Multi-dimensional arrays are ubiquitous in high-performance computing (HPC), but their absence from the C++ language standard is a long-standing and well-known limitation of their use for HPC. This paper describes the design and implementation of mdspan, a proposed C++ standard multidimensional array view (planned for inclusion in C++23). The proposal is largely inspired by work done in the Kokkos project— a C++ performance-portable programming model de- ployed by numerous HPC institutions to prepare their code base for exascale-class supercomputing systems. This paper describes the final design of mdspan af- ter a five-year process to achieve consensus in the C++ community. In particular, we will lay out how the design addresses some of the core challenges of performance-portable programming, and how its cus- tomization points allow a seamless extension into areas not currently addressed by the C++ Standard but which are of critical importance in the heterogeneous computing world of today’s systems. Finally, we have provided a production-quality implementation of the proposal in its current form. This work includes several benchmarks of this implementation aimed at demon- strating the zero-overhead nature of the modern design.","PeriodicalId":377385,"journal":{"name":"2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC)","volume":"666 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/P3HPC49587.2019.00011","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

Abstract

Multi-dimensional arrays are ubiquitous in high-performance computing (HPC), but their absence from the C++ language standard is a long-standing and well-known limitation of their use for HPC. This paper describes the design and implementation of mdspan, a proposed C++ standard multidimensional array view (planned for inclusion in C++23). The proposal is largely inspired by work done in the Kokkos project— a C++ performance-portable programming model de- ployed by numerous HPC institutions to prepare their code base for exascale-class supercomputing systems. This paper describes the final design of mdspan af- ter a five-year process to achieve consensus in the C++ community. In particular, we will lay out how the design addresses some of the core challenges of performance-portable programming, and how its cus- tomization points allow a seamless extension into areas not currently addressed by the C++ Standard but which are of critical importance in the heterogeneous computing world of today’s systems. Finally, we have provided a production-quality implementation of the proposal in its current form. This work includes several benchmarks of this implementation aimed at demon- strating the zero-overhead nature of the modern design.
c++中的mdspan:将性能可移植特性集成到国际语言标准中的案例研究
多维数组在高性能计算(HPC)中无处不在,但是在c++语言标准中缺少多维数组是其用于HPC的一个长期且众所周知的限制。本文描述了mdspan的设计和实现,mdspan是一个被提议的c++标准多维数组视图(计划在c++ 23中包含)。这个提议很大程度上受到Kokkos项目的启发,Kokkos是一个c++性能可移植的编程模型,由许多HPC机构部署,为百亿亿级超级计算系统准备代码库。本文描述了mdspan的最终设计,经过五年的过程,在c++社区中达成了共识。特别地,我们将展示该设计如何解决性能可移植编程的一些核心挑战,以及它的定制点如何允许无缝扩展到c++标准目前没有解决的领域,但这些领域在当今系统的异构计算世界中至关重要。最后,我们以当前形式提供了该建议的生产质量实现。这项工作包括该实现的几个基准,旨在展示现代设计的零开销性质。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
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学术官方微信