KinetiX: 一种用于化学动力学与输运性质的高性能可移植代码生成器
计算物理
2025-02-25 v2 化学物理
摘要
我们提出了KinetiX,一个用于生成计算高效的燃料特定例程的软件工具包,这些例程用于燃烧模拟代码中的化学源项、热力学和混合物平均输运性质。C++例程旨在在CPU和GPU架构上实现高性能执行。在CPU上,通过消除冗余操作、使用数据对齐和具有简单访问模式的循环来实现自动向量化,从而优化化学动力学计算,降低复杂数学运算的延迟。在GPU上,通过循环展开、减少昂贵的指数求值次数以及限制活跃变量数量以改善寄存器使用来提升性能。生成例程的准确性与Cantera计算的参考值进行了对比,最大相对误差低于 。我们在AMD和NVIDIA的最新CPU和GPU架构上评估了内核性能,即AMD EPYC 9653、AMD MI250X和NVIDIA H100。KinetiX生成的例程优于通用Cantera库,在CPU上物种生成速率方面实现最高2.4倍加速,混合物平均输运性质方面实现最高3.2倍加速。与PelePhysics(CEPTR)生成的例程相比,KinetiX在CPU上物种生成速率内核方面实现最高2.6倍加速,在GPU上实现最高1.7倍加速(单线程)。
引用
@article{arxiv.2411.02640,
title = {KinetiX: A performance portable code generator for chemical kinetics and transport properties},
author = {Bogdan A. Danciu and Christos E. Frouzakis},
journal= {arXiv preprint arXiv:2411.02640},
year = {2025}
}