Implementation of a parallel high-order weno-Type euler equation solver using a cuda ptx paradigm

F. A. Kuo, Jong-Shinn Wu*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

1 Scopus citations


This study proposes the optimization of a low-level assembly code to reconstruct the flux for a splitting flux Harten-Lax-van Leer (SHLL) scheme on high-end graphic processing units. The proposed solver is implemented using the weighted essentially non-oscillatory reconstruction method to simulate compressible gas flows that are derived using an unsteady Euler equation. Instructions in the low-level assembly code, i.e. parallel thread execution and instruction set architecture in compute unified device architecture (CUDA), are used to optimize the CUDA kernel for the flux reconstruction method. The flux reconstruction method is a fifth-order one that is used to process the high-resolution intercell flux for achieving a highly localized scheme, such as the high-order implementation of SHLL scheme. Many benchmarking test cases including shock-Tube and four-shock problems are demonstrated and compared. The results show that the reconstruction method is computationally very intensive and can achieve excellent performance up to 5183 GFLOP/s, ∼66% of peak performance of NVIDIA V100, using the low-level CUDA assembly code. The computational efficiency is twice the value as compared with the previous studies. The CUDA assembly code reduces 26.7% calculation and increases 37.5% bandwidth. The results show that the optimal kernel reaches up to 990 GB/s for the bandwidth. The overall efficiency of bandwidth and computation performance achieves 127% of the predicted performance based on the HBM2-memory roofline model estimated by Empirical Roofline Tool.

Original languageEnglish
Pages (from-to)496-512
Number of pages17
JournalJournal of Mechanics
StatePublished - Aug 2021


  • CFD
  • Finite volume method
  • GPU
  • Massively parallel computation


Dive into the research topics of 'Implementation of a parallel high-order weno-Type euler equation solver using a cuda ptx paradigm'. Together they form a unique fingerprint.

Cite this