基于GPU加速的q-LSKUM无网格求解器在Fortran、C++、Python与Julia中的性能研究
On the performance of GPU accelerated q-LSKUM based meshfree solvers in Fortran, C++, Python, and Julia
AI总结:
本研究基于CUDA开发了Fortran、C++、Python、Julia四种语言的q-LSKUM无网格CFD GPU求解器,通过7组点分布基准测试与内核性能剖析分析性能差异,采用优化策略对比优化前后效果,明确不同语言实现的GPU无网格求解器性能差异成因。
摘要:
本报告针对二维可压缩流动场景,全面分析了分别采用Fortran、C++、Python、Julia实现的GPU加速无网格CFD求解器的性能。研究使用CUDA编程模型开发GPU代码,求解器基于带熵变量的最小二乘动力学迎风格式(q-LSKUM)构建。为评估GPU求解器的计算效率并对比其相对性能,研究在7个层级的点分布上开展基准计算。为分析运行时间差异,研究对计算密集型内核进行了性能剖析,从剖析数据中考察多项性能指标,以明确运行时间出现差异的原因。针对部分性能相关问题,研究采用了多种优化策略,将优化后的GPU代码与初始朴素实现的代码进行对比,并基于性能表现得出结论。
英文摘要:
This report presents a comprehensive analysis of the performance of GPU accelerated meshfree CFD solvers for two-dimensional compressible flows in Fortran, C++, Python, and Julia. The programming model CUDA is used to develop the GPU codes. The meshfree solver is based on the least squares kinetic upwind method with entropy variables (q-LSKUM). To assess the computational efficiency of the GPU solvers and to compare their relative performance, benchmark calculations are performed on seven levels of point distribution. To analyse the difference in their run-times, the computationally intensive kernel is profiled. Various performance metrics are investigated from the profiled data to determine the cause of observed variation in run-times. To address some of the performance related issues, various optimisation strategies are employed. The optimised GPU codes are compared with the naive codes, and conclusions are drawn from their performance.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。