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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
c++中的mdspan:将性能可移植特性集成到国际语言标准中的案例研究
多维数组在高性能计算(HPC)中无处不在,但是在c++语言标准中缺少多维数组是其用于HPC的一个长期且众所周知的限制。本文描述了mdspan的设计和实现,mdspan是一个被提议的c++标准多维数组视图(计划在c++ 23中包含)。这个提议很大程度上受到Kokkos项目的启发,Kokkos是一个c++性能可移植的编程模型,由许多HPC机构部署,为百亿亿级超级计算系统准备代码库。本文描述了mdspan的最终设计,经过五年的过程,在c++社区中达成了共识。特别地,我们将展示该设计如何解决性能可移植编程的一些核心挑战,以及它的定制点如何允许无缝扩展到c++标准目前没有解决的领域,但这些领域在当今系统的异构计算世界中至关重要。最后,我们以当前形式提供了该建议的生产质量实现。这项工作包括该实现的几个基准,旨在展示现代设计的零开销性质。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
On Applying Performance Portability Metrics [Copyright notice] Performance Portability of Multi-Material Kernels mdspan in C++: A Case Study in the Integration of Performance Portable Features into International Language Standards RAJA: Portable Performance for Large-Scale Scientific Applications
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1