论文标题
一个分析性能模型,用于重叠在多核心CPU上内存结合的循环内核执行
An analytic performance model for overlapping execution of memory-bound loop kernels on multicore CPUs
论文作者
论文摘要
在多层处理器上运行的复杂应用显示出丰富的性能现象学。由于系统噪声,负载不平衡或基于任务的编程模型,每个CCNUMA域的核心数量增加会使对内存的代码的性能分析复杂化,这可能会导致线程对异步。因此,无法维持所有核心执行相同循环的简化假设。通过观察到HPCG基准的普通和修改版本的观察,我们构建了记忆结合循环内核执行的性能模型。它可以根据活性内核的数量以及内核与内核的数量进行预测,每个内核的内存带宽共享。所需的唯一代码功能是每个内核的单线程缓存线访问频率,该频率与单线程存储器带宽直接相关,其饱和带宽。可以直接测量它,也可以使用执行 - 速度记忆(ECM)性能模型进行预测。内核的计算强度和代码的详细结构没有意义。我们在英特尔·布罗德威尔(Intel Broadwell),英特尔(Intel Cascade Lake)和AMD罗马处理器上验证了模型,以配对各种流媒体和模板内核。预测每个内核的带宽份额的错误小于8%。
Complex applications running on multicore processors show a rich performance phenomenology. The growing number of cores per ccNUMA domain complicates performance analysis of memory-bound code since system noise, load imbalance, or task-based programming models can lead to thread desynchronization. Hence, the simplifying assumption that all cores execute the same loop can not be upheld. Motivated by observations on plain and modified versions of the HPCG benchmark, we construct a performance model of execution of memory-bound loop kernels. It can predict the memory bandwidth share per kernel on a memory contention domain depending on the number of active cores and which other workload the kernel is paired with. The only code features required are the single-thread cache line access frequency per kernel, which is directly related to the single-thread memory bandwidth, and its saturated bandwidth. It can either be measured directly or predicted using the Execution-Cache-Memory (ECM) performance model. The computational intensity of the kernels and the detailed structure of the code is of no significance. We validate our model on Intel Broadwell, Intel Cascade Lake, and AMD Rome processors pairing various streaming and stencil kernels. The error in predicting the bandwidth share per kernel is less than 8%.