Performance Results for Julia, C++ Reference, and CUDA Vendor Implementations of HPCG 3.1 with a Jacobi Smoother
收藏资源简介:
This dataset contains the raw performance results collected for a Master’s thesis about CPU and GPU implementations of version 3.1 of the High Performance Conjugate Gradient (HPCG) benchmark. The dataset contains 483 run results in JSON format. Each configuration was run three times. The experiments were performed on the Snellius supercomputer on multicore CPUs, NVIDIA A100 and H100 GPUs, and an integrated AMD Radeon 760M GPU. They include single-node and multi-node scaling experiments, CPU–GPU comparisons, matched workloads per node, kernel timings, communication and computation measurements, and comparisons between different Julia GPU kernel implementations. The main implementation is written in Julia and supports CPU, CUDA, and AMDGPU backends. The tested Julia kernel implementations use array broadcasting, custom CUDA and AMD GPU kernels, and KernelAbstractions.jl. For comparison, the dataset also contains results from the C++ HPCG reference implementation, identified as CPP, and the CUDA vendor implementation, identified as CUDA. Both comparison implementations were modified to use a Jacobi smoother, so that they use the same smoother as the Julia implementation. Therefore, the CPP and CUDA results were produced with modified versions of these implementations. They do not represent the original upstream implementations and should not be considered as official HPCG benchmark submissions. Each JSON file contains information about the global and local problem dimensions, process decomposition, number of equations, number of nonzero matrix entries, validation results, iteration counts, and execution times. The files also contain kernel-level timings, communication and computation measurements, memory estimates, bandwidth estimates, and FLOP-rate results. The dataset can be used to reproduce the analysis from the thesis and to perform further comparisons of HPCG implementations, GPU kernels, communication costs, and performance portability in Julia.



