We present a novel, hardware-agnostic implementation strategy for lattice Boltzmann (LB) simulations, which yields massive performance on homogeneous and heterogeneous many-core platforms. Based solely on C++17 Parallel Algorithms, our approach does not rely on any language extensions, external libraries, vendor-specific code annotations, or pre-compilation steps. Thanks in particular to a recently proposed GPU back-end to C++17 Parallel Algorithms, it is shown that a single code can compile and reach state-of-the-art performance on both many-core CPU and GPU environments for the solution of a given non trivial fluid dynamics problem. The proposed strategy is tested with six different, commonly used implementation schemes to test the performance impact of memory access patterns on different platforms. Nine different LB collision models are included in the tests and exhibit good performance, demonstrating the versatility of our parallel approach. This work shows that it is less than ever necessary to draw a distinction between research and production software, as a concise and generic LB implementation yields performances comparable to those achievable in a hardware specific programming language. The results also highlight the gains of performance achieved by modern many-core CPUs and their apparent capability to narrow the gap with the traditionally massively faster GPU platforms. All code is made available to the community in form of the open-source project stlbm, which serves both as a stand-alone simulation software and as a collection of reusable patterns for the acceleration of pre-existing LB codes.


翻译:我们为 lattice Boltzmann (LB) 模拟提供了一个创新的硬件操作策略, 它可以在单一和多样化的多核心平台上产生巨大的性能。 完全基于 C++17 平行算法, 我们的方法并不依赖任何语言扩展、 外部图书馆、 供应商专用代码说明或预编步骤。 特别是由于最近提出的 GPU 后端到 C+17 平行算法, 我们发现, 单一代码可以在多核心 CPU 和 GPU 环境中汇编并达到最先进的性能, 以解决特定非微不足道的流动动态动态问题。 仅以 C++17 平行算法为基础, 我们的方法并不依赖任何语言扩展、 外部图书馆、 供应商专用代码说明或预编译步骤。 特别是最近提出的 GPU 后端模型, 显示我们平行方法的多功能性能。 这项工作表明, 将研究软件和生产软件的简单和通用LB 执行过程的性能与硬件特定收集流动动态问题相似。 拟议战略的六种不同的实施方法, 也显示其最先进的CPOL 格式的成绩, 。

0
下载
关闭预览

相关内容

【陈天奇】TVM:端到端自动深度学习编译器,244页ppt
专知会员服务
86+阅读 · 2020年5月11日
Yann Lecun 纽约大学《深度学习(PyTorch)》课程(2020)PPT
专知会员服务
179+阅读 · 2020年3月16日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
30+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
RoBERTa中文预训练模型:RoBERTa for Chinese
PaperWeekly
57+阅读 · 2019年9月16日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
计算机 | 中低难度国际会议信息6条
Call4Papers
7+阅读 · 2019年5月16日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
计算机类 | 11月截稿会议信息9条
Call4Papers
6+阅读 · 2018年10月14日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
人工智能 | 国际会议截稿信息5条
Call4Papers
6+阅读 · 2017年11月22日
Arxiv
1+阅读 · 2020年12月10日
The Recurrent Neural Tangent Kernel
Arxiv
1+阅读 · 2020年12月9日
Arxiv
3+阅读 · 2018年3月13日
VIP会员
相关资讯
RoBERTa中文预训练模型:RoBERTa for Chinese
PaperWeekly
57+阅读 · 2019年9月16日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
计算机 | 中低难度国际会议信息6条
Call4Papers
7+阅读 · 2019年5月16日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
计算机类 | 11月截稿会议信息9条
Call4Papers
6+阅读 · 2018年10月14日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
人工智能 | 国际会议截稿信息5条
Call4Papers
6+阅读 · 2017年11月22日
Top
微信扫码咨询专知VIP会员