arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1809.01029physics.comp-phcs.DCphysics.chem-ph
收藏

利用SIMD和SIMT矢量化计算稀疏化学动力学雅可比矩阵和热化学源项

Using SIMD and SIMT vectorization to evaluate sparse chemical kinetic Jacobian matrices and thermochemical source terms

Nicholas J. Curtis, Kyle E. Niemeyer, Chih-Jen Sung

摘要:

准确预测反应流模拟中的关键燃烧现象,例如,贫油熄火、熄灭/点火极限和污染物形成,需要使用详细的化学动力学。大尺寸和高水平的数值刚度通常存在于化学动力学模型相关的运输/发电应用,使有效的评价/分解的化学动力学雅可比矩阵和热化学源项的反应流代码的性能至关重要。在这里,我们调查的性能矢量化评价的恒压/体积热化学源长期和稀疏/密集的化学动力学雅可比矩阵,使用单指令,多数据(SIMD)和单指令,多线程(SIMT)的范例。这些都是在pyJac中实现的,pyJac是一个开源的、可复制的代码生成平台。一个新的配方的化学动力学控制方程推导和验证,导致雅可比稀疏的28.6-92.0%的测试模型。与avx 2中央处理单元(CPU)上的并行OpenMP代码相比,发现浅向量化OpenCL源速率评估的加速为3.40- 4.08倍,稀疏和密集化学动力学雅可比矩阵评估分别增加到6.63- 9.44倍和3.03- 4.23倍。此外,数据排序的影响进行了研究,并提出了一个专门为矢量化评估制定的存储模式,以及恒定的压力/体积的假设和不同的矢量宽度的影响进行了研究的源项评估性能。GPU上的密集和稀疏计算加速倍数分别达到17.60倍和45.13倍,CPU上的一阶有限差分雅可比方法加速倍数分别达到55.11倍和245.63倍。此外,密集雅可比计算在CPU和GPU上分别比之前版本的pyJac快19.56倍和2.84倍。

英文摘要:

Accurately predicting key combustion phenomena in reactive-flow simulations, e.g., lean blow-out, extinction/ignition limits and pollutant formation, necessitates the use of detailed chemical kinetics. The large size and high levels of numerical stiffness typically present in chemical kinetic models relevant to transportation/power-generation applications make the efficient evaluation/factorization of the chemical kinetic Jacobian and thermochemical source-terms critical to the performance of reactive-flow codes. Here we investigate the performance of vectorized evaluation of constant-pressure/volume thermochemical source-term and sparse/dense chemical kinetic Jacobians using single-instruction, multiple-data (SIMD) and single-instruction, multiple thread (SIMT) paradigms. These are implemented in pyJac, an open-source, reproducible code generation platform. A new formulation of the chemical kinetic governing equations was derived and verified, resulting in Jacobian sparsities of 28.6-92.0% for the tested models. Speedups of 3.40-4.08x were found for shallow-vectorized OpenCL source-rate evaluation compared with a parallel OpenMP code on an avx2 central processing unit (CPU), increasing to 6.63-9.44x and 3.03-4.23x for sparse and dense chemical kinetic Jacobian evaluation, respectively. Furthermore, the effect of data-ordering was investigated and a storage pattern specifically formulated for vectorized evaluation was proposed; as well, the effect of the constant pressure/volume assumptions and varying vector widths were studied on source-term evaluation performance. Speedups reached up to 17.60x and 45.13x for dense and sparse evaluation on the GPU, and up to 55.11x and 245.63x on the CPU over a first-order finite-difference Jacobian approach. Further, dense Jacobian evaluation was up to 19.56x and 2.84x times faster than a previous version of pyJac on a CPU and GPU, respectively.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑