针对稀疏复杂几何图形的大规模点阵玻尔兹曼方法的特定架构生成

Philipp Suffa, Markus Holzer, Harald Köstler, Ulrich Rüde
{"title":"针对稀疏复杂几何图形的大规模点阵玻尔兹曼方法的特定架构生成","authors":"Philipp Suffa, Markus Holzer, Harald Köstler, Ulrich Rüde","doi":"arxiv-2408.06880","DOIUrl":null,"url":null,"abstract":"We implement and analyse a sparse / indirect-addressing data structure for\nthe Lattice Boltzmann Method to support efficient compute kernels for fluid\ndynamics problems with a high number of non-fluid nodes in the domain, such as\nin porous media flows. The data structure is integrated into a code generation\npipeline to enable sparse Lattice Boltzmann Methods with a variety of stencils\nand collision operators and to generate efficient code for kernels for CPU as\nwell as for AMD and NVIDIA accelerator cards. We optimize these sparse kernels\nwith an in-place streaming pattern to save memory accesses and memory\nconsumption and we implement a communication hiding technique to prove\nscalability. We present single GPU performance results with up to 99% of\nmaximal bandwidth utilization. We integrate the optimized generated kernels in\nthe high performance framework WALBERLA and achieve a scaling efficiency of at\nleast 82% on up to 1024 NVIDIA A100 GPUs and up to 4096 AMD MI250X GPUs on\nmodern HPC systems. Further, we set up three different applications to test the\nsparse data structure for realistic demonstrator problems. We show performance\nresults for flow through porous media, free flow over a particle bed, and blood\nflow in a coronary artery. We achieve a maximal performance speed-up of 2 and a\nsignificantly reduced memory consumption by up to 75% with the sparse /\nindirect-addressing data structure compared to the direct-addressing data\nstructure for these applications.","PeriodicalId":501291,"journal":{"name":"arXiv - CS - Performance","volume":"176 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-08-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Architecture Specific Generation of Large Scale Lattice Boltzmann Methods for Sparse Complex Geometries\",\"authors\":\"Philipp Suffa, Markus Holzer, Harald Köstler, Ulrich Rüde\",\"doi\":\"arxiv-2408.06880\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We implement and analyse a sparse / indirect-addressing data structure for\\nthe Lattice Boltzmann Method to support efficient compute kernels for fluid\\ndynamics problems with a high number of non-fluid nodes in the domain, such as\\nin porous media flows. The data structure is integrated into a code generation\\npipeline to enable sparse Lattice Boltzmann Methods with a variety of stencils\\nand collision operators and to generate efficient code for kernels for CPU as\\nwell as for AMD and NVIDIA accelerator cards. We optimize these sparse kernels\\nwith an in-place streaming pattern to save memory accesses and memory\\nconsumption and we implement a communication hiding technique to prove\\nscalability. We present single GPU performance results with up to 99% of\\nmaximal bandwidth utilization. We integrate the optimized generated kernels in\\nthe high performance framework WALBERLA and achieve a scaling efficiency of at\\nleast 82% on up to 1024 NVIDIA A100 GPUs and up to 4096 AMD MI250X GPUs on\\nmodern HPC systems. Further, we set up three different applications to test the\\nsparse data structure for realistic demonstrator problems. We show performance\\nresults for flow through porous media, free flow over a particle bed, and blood\\nflow in a coronary artery. We achieve a maximal performance speed-up of 2 and a\\nsignificantly reduced memory consumption by up to 75% with the sparse /\\nindirect-addressing data structure compared to the direct-addressing data\\nstructure for these applications.\",\"PeriodicalId\":501291,\"journal\":{\"name\":\"arXiv - CS - Performance\",\"volume\":\"176 1\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-08-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"arXiv - CS - Performance\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/arxiv-2408.06880\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Performance","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2408.06880","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

我们实现并分析了一种稀疏/间接寻址的数据结构,以支持在多孔介质流等领域中具有大量非流体节点的流体力学问题的高效计算内核。数据结构被集成到代码生成流水线中,使稀疏的 Lattice Boltzmann 方法能够使用各种模板和碰撞算子,并为 CPU 以及 AMD 和 NVIDIA 加速卡的内核生成高效代码。我们采用就地流式模式优化这些稀疏内核,以节省内存访问和内存消耗,并采用通信隐藏技术来证明可升级性。我们展示了单 GPU 性能结果,最大带宽利用率高达 99%。我们将优化生成的内核集成到高性能框架WALBERLA中,并在多达1024个英伟达A100 GPU和多达4096个AMD MI250X GPU的现代高性能计算系统上实现了至少82%的扩展效率。此外,我们还设置了三个不同的应用程序,以测试针对实际演示问题的稀疏数据结构。我们展示了流经多孔介质、粒子床自由流动和冠状动脉中血流的性能结果。与直接寻址数据结构相比,稀疏/间接寻址数据结构在这些应用中的最大性能提升了 2 倍,内存消耗也显著降低了 75%。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Architecture Specific Generation of Large Scale Lattice Boltzmann Methods for Sparse Complex Geometries
We implement and analyse a sparse / indirect-addressing data structure for the Lattice Boltzmann Method to support efficient compute kernels for fluid dynamics problems with a high number of non-fluid nodes in the domain, such as in porous media flows. The data structure is integrated into a code generation pipeline to enable sparse Lattice Boltzmann Methods with a variety of stencils and collision operators and to generate efficient code for kernels for CPU as well as for AMD and NVIDIA accelerator cards. We optimize these sparse kernels with an in-place streaming pattern to save memory accesses and memory consumption and we implement a communication hiding technique to prove scalability. We present single GPU performance results with up to 99% of maximal bandwidth utilization. We integrate the optimized generated kernels in the high performance framework WALBERLA and achieve a scaling efficiency of at least 82% on up to 1024 NVIDIA A100 GPUs and up to 4096 AMD MI250X GPUs on modern HPC systems. Further, we set up three different applications to test the sparse data structure for realistic demonstrator problems. We show performance results for flow through porous media, free flow over a particle bed, and blood flow in a coronary artery. We achieve a maximal performance speed-up of 2 and a significantly reduced memory consumption by up to 75% with the sparse / indirect-addressing data structure compared to the direct-addressing data structure for these applications.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
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学术官方微信