A Portable Framework for Accelerating Stencil Computations on Modern Node Architectures
本文提出 StencilPy 框架,通过高级 DSL 与多架构后端生成高效模板代码,在 CPU、GPU 和 Cerebras 等加速器上实现接近手写优化代码的性能、可移植性与更高开发效率。
2024-07-07 cs.DC
SPIDER: Unleashing Sparse Tensor Cores for Stencil Computation via Strided Swapping
Shanghai Jiao Tong University(上海交通大学);Shanghai Enflame Technology Co.Ltd(上海燧原科技有限公司)
SPIDER通过步进交换技术利用稀疏张量核心,高效加速Stencil计算,性能优于cuDNN和现有张量核心方法。
2025-12-15 cs.DC
StencilFlow: Mapping Large Stencil Programs to Distributed Spatial Computing Systems
空间计算设备已经被证明可以显著地加速模板计算,但是到目前为止,空间计算设备依赖于展开单个模板操作的迭代维度来增加时间局部性。这项工作认为,一般情况下映射有向非循环图的异构模板计算空间计算系统,假设没有一个迭代组件的大型输入程序。StencilFlow最大限度地提高了时间局部性,并确保在此设置中的死锁自由,提供端到端的分析和从高级程序描述到分布式硬件的映射。我们在Stratix 10 FPGA测试平台上评估了我们生成的架构,在单器件和多器件上分别产生1.31 TOp/s和4.18 TOp/s,证明了迄今为止FPGA上模板程序的最高性能。然后,我们利用框架来研究一个复杂的模具程序,从生产天气模拟应用程序。我们的工作使生产力针对分布式空间计算系统与大型模板程序,并提供深入了解其在实践中的高效执行所需的架构特征。
2021-01-11 cs.DC
Accelerating High-Order Stencils on GPUs
在HPC应用中,广泛使用了速度计算。如今,许多HPC平台使用GPU作为加速器。因此,了解如何在GPU上快速执行模板计算非常重要。虽然在GPU上的低阶扩展的实现策略已经在文献中得到了很好的研究,但并不是所有提出的增强都能很好地用于高阶扩展,例如用于地震建模的增强。此外,处理边界条件通常需要不同的计算逻辑,这使得GPU上线程级并行性的有效利用变得复杂。在本文中,我们研究了高阶扩展及其在GPU上的独特特性。我们手工制作了一系列CUDA中25点地震建模模板和相关边界条件的实现。我们评估它们的代码形状、存储层次结构使用、数据获取模式和其他性能属性。我们使用几种成熟和新兴的工具对这些支架进行了实证评估,并讨论了我们的定量研究结果。在我们的实现中,我们实现了两倍的性能的专有代码开发的C和映射到GPU使用OpenACC。此外,我们的一些实现具有出色的性能可移植性。
2020-09-15 cs.DC
Stencil Computations on AMD and Nvidia Graphics Processors: Performance and Tuning Strategies
本研究评估了现代数据中心GPU上模板计算的性能与能效,提出针对缓存密集型模板内核的融合调优策略,发现AMD与Nvidia GPU在软硬件上存在关键差异,需平台特定调优以发挥全部计算潜力。
2024-06-13 cs.DC
Accelerating GPU-Based Out-of-Core Stencil Computation with On-the-Fly Compression
空间计算是一类重要的科学应用,可以通过图形处理单元(GPU)有效地执行。核外方法有助于运行大规模模板代码,这些代码处理的数据大小大于GPU内存的有限容量。然而,基于GPU的核外模板计算的性能总是受到CPU和GPU之间的数据传输的限制。人们已经探索了许多优化方法来减少这种数据传输,但对使用动态压缩技术的研究还远远不够。在这项研究中,我们提出了一种方法,加速基于GPU的核外模板计算与即时压缩。我们介绍了一种新的数据压缩方法,解决了两个相邻的分解数据块之间的数据依赖。我们还修改了一个广泛使用的基于GPU的压缩库,以支持重叠的CPU/GPU数据传输与GPU计算的流水线。实验结果表明,该方法与未压缩的方法相比,实现了1.2倍的加速比。此外,虽然压缩所涉及的精度损失随着时间步长的增加而增加,但精度损失在高达4,320个时间步长时是微不足道的,这证明了所提出的方法的有用性。
2021-09-12 cs.DC
Improving Memory Hierarchy Utilisation for Stencil Computations on Multicore Machines
虽然现代超级计算机由多核机器组成,但人们可以找到仍然执行其遗留应用程序的科学家,这些应用程序被开发为单核集群,其中存储层次结构专用于单个核心。本文的主要目的是提出和评估一种算法,确定一个有效的块大小应用于MPI模板计算多核机器上。根据广泛的实验分析,这项工作显示了识别块大小的好处,将划分数据的各种核心,并提出了一种方法,探索在现代机器的存储层次结构。
2013-10-30 cs.DC
Beyond 16GB: Out-of-Core Stencil Computations
速记计算是一类关键的应用程序,广泛用于科学计算社区,这类应用程序特别受益于高内存带宽架构的性能改进。不幸的是,这样的体系结构具有有限的快速内存,这限制了可以有效解决的问题的大小。在本文中,我们解决这一挑战,通过应用著名的高速缓存阻塞平铺技术,大规模的模板代码实现的OPS域特定的语言,如三叶草2D,三叶草3D,OpenSBLI。我们引入了许多技术和优化,以帮助管理驻留在快速内存中的数据,并最大限度地减少数据移动。通过对我们在英特尔Knights Landing平台和NVIDIA P100 GPU上的工作进行评估,我们证明了解决比片上存储器大小大3倍的问题是可能的,效率损失最多为15\%。
2017-10-26 cs.DC
Stencil Matrixization
针对矩阵计算硬件,本文提出基于向量外积的新型模板算法,并通过内存、流水线和数据复用优化获得显著加速。
2024-03-01 cs.DC
A parallel pattern for iterative stencil + reduce
我们提倡使用Loop-of-Stencil-Reduce模式来简化异构多核平台上数据并行程序的实现。Loop-of-stencil-reduce足够通用,可以在数据并行和流应用程序中或两者的组合中使用map、reduce、map-reduce、stencil、stencil-reduce,以及更重要的是,它们在循环中的使用。该模式使得在不同的GPU上部署单个模板计算内核成为可能。我们讨论了在FastFlow中实现Loop-of-stencil-reduce,FastFlow是一个基于并行模式的应用程序实现框架。实验来说明使用环的模板减少在开发数据并行内核运行在异构系统上。
2016-09-15 cs.DC
AN5D: Automated Stencil Framework for High-Degree Temporal Blocking on GPUs
摘要空间计算是高性能计算应用中最广泛使用的计算模式之一。已经提出了空间和时间分块,以通过将存储器压力从外部存储器移动到GPU上的片上存储器来克服这种类型的计算的存储器受限性质。然而,在考虑GPU的架构和存储层次结构的复杂性的同时正确地实现这些优化以实现高性能是困难的。我们提出了AN5D,一个自动化的模板框架,它能够自动转换和优化模板模式在一个给定的C源代码,并生成相应的CUDA代码。在我们的框架中,参数调整是由我们的性能模型指导的。与现有的实现相比,我们的新优化策略减少了共享内存和寄存器压力,允许性能扩展到10的时间阻塞度。我们在最先进的Tesla V100 GPU上实现了迄今为止所有评估的模板基准测试的最高性能。
2020-02-03 cs.DC
Efficient Process-to-Node Mapping Algorithms for Stencil Computations
良好的进程到计算节点映射对于HPC应用程序的良好性能具有决定性意义。进程到节点映射问题的一个特殊而重要的类别是将以稀疏模板模式通信的进程映射到笛卡尔网格的问题。通过充分利用这种类型的问题固有的结构,我们设计了三种新的分布式算法,能够有效地处理任意模板通信模式。我们分析了我们的算法的基础上的一个抽象模型的节点间和节点内通信的预期性能。在几台HPC机器上进行的广泛的实验评估表明,我们的算法在运行时间上比(顺序)高质量的通用图形映射工具快两个数量级,同时在通信性能上获得类似的结果。此外,我们的算法也实现了显着更好的映射质量相比,以前的国家的最先进的笛卡尔网格映射算法。这将使MPI_Neighbor_alltoall交换操作的性能提高三倍。我们的新算法可用于实现MPI_Cart_create功能。
2020-05-20 cs.DC
Stencil Computation at the Intersection of AI and HPC
Intel Corporation(英特尔公司);TotalEnergies EP Research and Technology US(道达尔能源EP美国研究与技术)
本文证明AI张量编译器可高效实现高阶stencil,TinyTC在Intel硬件上性能领先,PyTorch/Triton提供可移植性基线。
2026-09-10 cs.DC
Evaluation of Programming Models and Performance for Stencil Computation on Current GPU Architectures
本文在NVIDIA A100和GH200上评估CUDA、OpenACC与OpenMP目标卸载三种编程模型下的模板计算性能,揭示新架构行为并给出优化建议,其中最佳CUDA实现比优化OpenACC快2.1倍。
2024-08-12 cs.DC
Fast Stencil-Code Computation on a Wafer-Scale Processor
基于CPU和基于GPU的系统的性能通常对于PDE码是低的,其中必须求解大型、稀疏且通常结构化的线性方程组。迭代求解器受到数据移动的限制,包括缓存和内存之间以及节点之间。在这里,我们描述的解决方案,这样的系统的方程的Cerebras系统CS-1,晶圆级处理器,具有内存带宽和通信延迟执行良好。我们实现了0.86 PFLOPS在一个单一的晶圆级系统的解决方案,由BiCGStab的线性系统所产生的7点有限差分模板上600 X 595 X 1536网格,实现约三分之一的机器的峰值性能。我们解释了系统,它的体系结构和编程,以及它在这个问题和相关问题上的表现。我们讨论内存容量和浮点精度的问题。我们概述了将这项工作扩展到全面应用的计划。
2020-10-07 cs.DC
Algorithm-Based Fault Tolerance for Parallel Stencil Computations
HPC系统尺寸和复杂性的增加,以及片上晶体管密度、功率限制和组件数量的增加,使得现代HPC系统容易出现软错误。无声数据损坏(SDC)通常由存储器子系统中的位翻转形式的这种软错误引起,并且阻碍科学应用的正确性。这项工作解决的问题,保护一类迭代计算内核,称为stenetron,对SDC在并行HPC系统上执行时。现有的SDC检测和纠正方法通常要么不准确、效率低下,要么针对不包括模板的特定应用程序类。这项工作提出了一种新的基于算法的容错(ABFT)方法,以保护科学应用程序,包含任意模板计算对SDC。ABFT方法可以在线和离线应用,以准确地检测和校正2D和3D并行模板计算中的SDC。我们提出了一个正式的模型,所提出的方法,包括定理和相关的校验和的计算,以及错误检测和纠正证明。我们实验评估使用建议的ABFT方法在一个真正的三维模板为基础的应用程序(HotSpot3D)通过故障注入,检测和校正活动。结果表明,所提出的ABFT方法实现了不到8%的开销相比,未受保护的模板应用程序的性能。此外,它可以准确地检测和纠正SDC。虽然离线ABFT版本更准确地纠正错误,但它可能会比在线版本产生少量额外开销。
2019-09-02 cs.DC cs.PF
Multicore-optimized wavefront diamond blocking for optimizing stencil updates
基于模板的算法在计算科学中的重要性使得基于多级缓存的处理器的优化并行实现受到关注。时间阻塞方案利用高速缓存的大带宽和低延迟来加速模板更新并接近理论峰值性能。一个关键因素是减少了慢速数据路径上的数据流量,特别是主存储器接口。在这项工作中,我们结合了多核波前时间阻塞和钻石瓷砖的想法,达到模板更新计划,显示内存压力大幅减少相比,现有的方法。由此产生的方案在带宽不足的情况下表现出性能优势,这是加剧了高字节每格更新的情况下的可变系数。我们的线程组概念在并发和内存使用之间提供了一个可控的权衡,转移了内存接口和CPU之间的压力。我们展示了当代英特尔处理器上的性能结果。
2014-10-12 cs.DC
Fast Stencil Computations using Fast Fourier Transforms
时空计算被广泛用于模拟物理系统在多个时间步长上跨多维网格的状态变化。该领域的最新技术分为三类:缓存感知的平铺循环算法,缓存无关的分治梯形算法和Krylov子空间方法。在本文中,我们提出了两个有效的并行算法进行线性模板计算。目前在这个领域的直接求解器计算效率低下,Krylov方法需要手工劳动和数学训练。我们解决这些问题的线性stenestrant通过使用DFT预处理的Krylov方法实现直接求解器,这是快速和通用的。事实上,虽然所有目前可用的算法,用于解决一般的线性stentleman执行$Θ(NT)$工作,其中$N$是空间网格的大小和$T$是时间步的数量,我们的算法执行$o(NT)$工作。据我们所知,我们给出了第一个算法,使用快速傅立叶变换来计算最终的网格数据,通过不断演变的初始数据为许多时间步长一次。我们的算法处理周期性和非周期性边界条件,并实现多项式更好的性能界限(即,计算复杂性和并行运行时间)。初步的实验结果表明,我们的算法,大约$10^5$时间步长的演变网格$10^7$细胞运行的数量级快于国家的最先进的实现周期性的模板问题,和1.3 $\times$到8.5 $\times$更快的非周期性的模板问题。
2021-05-14 cs.DC cs.DS
Distributed Parallelization of xPU Stencil Computations in Julia
我们提出了一种简单的方法,用于基于模板的xPU应用程序在规则交错网格上的分布式并行化,该网格在包ImplicitGlobalGrid.jl中实例化。该方法允许利用远程直接内存访问,并在数千个GPU上实现接近理想的实际应用程序的弱扩展。通信成本很容易隐藏在计算背后。
2022-11-28 cs.DC physics.comp-ph physics.geo-ph
Efficient multicore-aware parallelization strategies for iterative stencil computations
在许多科学仿真代码中,时间表计算消耗了运行时的主要部分。作为这类算法的原型,我们认为迭代雅可比和高斯-赛德尔平滑和高速缓存为基础的多核架构的高效并行实现的目标。临时缓存阻塞是一种已知的高级优化技术,其可以显著地减少存储器总线上的压力。我们应用和完善这种优化最近提出的时间阻塞策略,旨在明确利用多核特性。特别是对于高斯-赛德尔平滑的情况下,我们表明,同时多线程(SMT)可以产生显着的性能改进,我们的优化算法。
2010-04-10 cs.DC cs.PF
Combined Spatial and Temporal Blocking for High-Performance Stencil Computation on FPGAs Using OpenCL
高级综合工具的最新发展吸引了软件程序员在FPGA上加速其高性能计算应用。尽管已经证明FPGA可以在模板计算的性能方面与GPU竞争,但大多数以前的工作都是通过避免空间阻塞和限制相对于FPGA片上存储器的输入尺寸来实现的。在这项工作中,我们使用面向OpenCL的英特尔FPGA SDK创建了一个模板加速器,可以在没有此类限制的情况下实现高性能。我们结合了空间和时间的分块,以避免输入大小的限制,并采用多个FPGA特定的优化,以解决增加的设计复杂性所产生的问题。加速器参数调整由我们的性能模型指导,我们还使用该模型来预测即将推出的英特尔Stratix 10设备的性能。在Arria 10 GX 1150设备上,我们的加速器可以分别达到760和375 GFLOP/s的计算性能,用于2D和3D扩展,这与高度优化的GPU实现的性能相媲美。此外,我们估计即将推出的Stratix 10设备可以分别实现高达3.5 TFLOP/s和1.6 TFLOP/s的2D和3D模板计算性能。
2018-02-01 cs.AR cs.DC
GPU Support for Automatic Generation of Finite-Differences Stencil Kernels
石油和天然气行业中待处理数据的增长与基于模板计算的不断发展的算法所提出的要求相匹配,例如全波形反演和逆时偏移。图形处理单元(GPU)由于其高度的数据并行性而成为模板计算的有吸引力的体系结构目标。然而,快速的体系结构和技术进步使得即使是最熟练的程序员也很难在微体系结构级别上保持与技术进步同步。在这项工作中,我们提出了一个扩展的开源编译器,旨在产生高度优化的有限差分内核用于反演方法命名为Devito。我们嵌入它与牛津并行域特定语言(OP-DSL),以使自动代码生成的GPU架构从一个高层次的表示。我们的目标是使用户能够在符号表示级别上编码,从而毫不费力地通过GPU架构的处理能力来利用他们的实现。在NVIDIA GTX Titan Z和NVIDIA Tesla V100上对所实现的后端进行了评估,并通过屋顶线模型对3D声学各向同性波传播模板内核的不同空间顺序离散化级别进行了操作强度评估,并进行了符号优化。它实现了V100峰值性能的63%和Titan Z峰值性能的24%,用于256点网格上的模板内核。我们的研究表明,提高内存使用率应该是最有效的策略,利用性能的评估架构上实现的解决方案。
2019-12-02 cs.DC
Mapping Stencils on Coarse-grained Reconfigurable Spatial Architecture
模板表示一类计算模式,其中输出网格点取决于输入网格中相邻点的固定形状。在科学应用中,速记计算是普遍的,占用了超级计算资源的很大一部分。因此,优化模板程序以获得最佳性能一直很重要。大量的研究集中在几乎所有并行架构上优化模板计算。Stenchmark应用程序具有规则的依赖模式、固有的流水线并行性和大量的数据重用。这使得这些应用程序成为粗粒度可重构空间架构(CGRA)的完美匹配。CGRA由许多与片上网络连接的简单小型处理元件(PE)组成。每个PE可以配置为执行模板计算的一部分,并且所有PE并行运行;网络也可以配置为使加载的数据可以直接从PE传递到邻居PE,从而由许多PE重用,而不会出现寄存器溢出和内存流量。如何有效地将模板计算映射到CGRA是性能的关键。在本文中,我们展示了一些独特的和可推广的方式映射一个和多维模板计算的CGRA,充分利用数据重用的机会和并行性。我们的模拟实验表明,这些映射是有效的,使CGRA的性能优于国家的最先进的GPU。
2021-03-22 cs.AR cs.DC cs.PF
Quantifying performance bottlenecks of stencil computations using the Execution-Cache-Memory model
正则格上的压缩算法广泛应用于计算科学的各个领域,人们一直在努力优化算法的实现。这些活动通常不受提供预期加速估计的性能模型的指导。通过性能建模了解性能属性和瓶颈,可以清楚地看到有希望的优化机会。在这项工作中,我们完善了最近开发的执行缓存内存(ECM)模型,并使用它来量化当代英特尔处理器上的模板算法的性能瓶颈。这包括应用该模型来达到典型的角落情况模板循环内核的单核性能和可扩展性预测。ECM模型的指导下,我们准确地量化的“层条件”,这是需要通过存储层次结构估计的数据流量的意义,并研究典型的优化方法,如空间阻塞,强度降低,和时间阻塞的影响,其预期的好处。我们还比较了ECM模型的广为人知的Roofline模型。
2015-01-17 cs.DC cs.PF
A Generic Library for Stencil Computations
在这个计算机体系结构多样化和异构化的时代,可编程性问题,如生产率和可移植性效率,对软件开发和算法设计至关重要。解决这个问题的一种方法是远离传统的顺序程序设计语言,转向特定于领域的编程环境,以在表达性和效率之间取得平衡。为了证明这一原则,我们开发了一个特定领域的C++通用库模板计算,如PDE求解器。该库具有高层次的结构,以指定计算,并允许开发并行模板计算非常有限的努力。高抽象构造(如do_all和do_reduce)使程序更短、更清晰,并增加了上下文信息,以实现更好的性能利用。结果显示,从Windows多核到HPC集群和具有加速器(如GPU)的机器,性能都很好。
2012-07-06 cs.DC cs.MS cs.PF
High-performance xPU Stencil Computations in Julia
我们提出了一种高效的方法,用于在Julia中编写与架构无关的并行高性能模板计算,该方法在包中实例化。强大的元编程、低成本的抽象和多分派功能使您能够编写单个代码,既适合在单个CPU线程上进行生产性原型设计,又适合在多GPU或CPU工作站或超级计算机上进行生产运行。我们展示了接近GPU上的3-D热扩散求解器的理论上限的性能,这是一个巨大的改进与CUDA.jl数组编程的可达性能。
2022-11-28 cs.DC physics.comp-ph physics.geo-ph
Multi-dimensional intra-tile parallelization for memory-starved stencil computations
优化模板算法的性能一直是过去二十年来深入研究的主题。由于许多模板方案具有较低的运算强度,因此大多数优化都集中在增加时态数据访问局部性上,从而减少通过主存接口的数据流量,最终目标是与此瓶颈解耦。然而,只有少数方法明确利用现代多核芯片的共享缓存功能。如果每个线程都在其私有的、单独的缓存块上工作,则可用的缓存空间可能变得太小,并且可能无法实现足够的时间局部性。我们提出了一种灵活的多维瓦片内并行化方法的模板算法在多核CPU与共享外层缓存。这种方法导致所需的高速缓存空间的显着减少,而不会受到硬件预取或TLB不足的不利影响。我们的\emph{Girih}框架包括一个自动调谐器,用于在目标硬件上选择最佳参数配置。我们在两个当代英特尔处理器上进行性能实验,并与最先进的模板框架PLUTO和Pochoir进行比较,使用四个角案例模板方案和各种各样的问题大小。\emph{Girih}在几乎所有的问题规模上都表现出显著的性能优势和最佳的算术强度,特别是在变系数的低强度stentleman上。我们详细研究了性能行为在不同的网格大小,使用现象学的性能建模。我们的能源消耗分析表明,我们的方法可以节省能源,减少DRAM的带宽使用,即使在边际性能增益。因此,它非常适合未来的架构,这些架构将受到数据移动成本的强烈挑战,无论是在性能还是能耗方面。
2015-10-16 cs.DC cs.PF
Stencil Computations on Tenstorrent Wormhole
Sapienza University of Rome(罗马大学)
本文研究了将二维五点 stencil 计算映射到 Tenstorrent Wormhole 上的效率,提出两种异构实现方法,并分析了平台的限制与改进方向。
2026-05-08 cs.DC cs.ET
Exploiting Scratchpad Memory for Deep Temporal Blocking: A case study for 2D Jacobian 5-point iterative stencil kernel (j2d5pt)
针对GPGPU模板计算未充分利用便笺存储器的问题,本文以j2d5pt为案例提出大分块深度时间分块方法,在片上处理多时间步,以更简单且无需代码自动生成的实现达到接近最先进方法的性能。
2023-06-06 cs.DC
Locally-Oriented Programming: A Simple Programming Model for Stencil-Based Computations on Multi-Level Distributed Memory Architectures
用于高性能计算的新兴混合加速器架构通常适合于使用数据并行编程模型。不幸的是,这些体系结构的程序员面临着陡峭的学习曲线,其经常需要学习新的语言(例如,OpenCL)。此外,这些机器的集群的存储器组织的分布式(并且经常是多级)性质提供了额外的复杂性。本文介绍了初步的工作,研究如何编程与本地定位可以提供更简单的访问加速器架构。面向本地的编程模型对于需要应用模板或卷积内核的算法的解决方案特别有用。在这种编程模型中,程序员通过仅修改单个数组元素(称为局部元素)来编写算法,但对局部元素周围的小型子数组具有只读访问权限。我们演示了如何一个面向本地的编程模型可以通过使用源到源程序转换作为语言扩展。
2015-02-12 cs.DC cs.PL
Automatic Differentiation for Adjoint Stencil Loops
Imperial College London(帝国理工学院);Argonne National Laboratory(阿贡国家实验室)
在包括卷积神经网络、用于偏微分方程的结构化网格求解器和图像处理的计算中,血管造影环是常见的主题。Stenchmark循环很容易并行化,它们的快速执行是由编译器,库和特定领域的语言帮助的。反向模式自动微分,也称为算法微分、autodiff、伴随微分或反向传播,有时用于获得包含模板循环的程序的梯度。不幸的是,传统的自动微分导致存储器访问模式不是模板式的并且不容易并行化。在本文中,我们提出了一种新的组合的自动微分和循环变换,保留模板循环的结构和内存访问模式,同时计算完全一致的衍生物。生成的循环可以并行化,并以相同的方式优化性能,并使用与原始计算相同的工具。我们已经在Python工具PerforAD中实现了这项新技术,我们将与本文一起发布来自地震成像和计算流体动力学应用程序的测试用例。
2019-07-05 cs.DC cs.LG cs.PF
Stencil Computations on Cerebras Wafer-Scale Engine
Sapienza University of Rome(罗马第一大学)
本文研究将Stencil算法映射到Cerebras WSE-3,提出CStencil框架,通过实验显示其在内存瓶颈和计算资源利用上的优势,证明WSE架构可用于传统科学算法。
2026-05-08 cs.CE cs.DC cs.ET
QPU Micro-Kernels for Stencil Computation
KTH Royal Institute of Technology(瑞典皇家理工学院)
该研究提出QPU微核(执行模板节点更新的浅层量子电路),将QPU作为采样加速器求解PDEs,其资源占用固定且易编排并行,两种实现(伯努利、分支)在模拟器和IBM Brisbane量子计算机上验证了有效性。
2025-11-16 cs.DC cs.ET quant-ph
TensorFlow as a DSL for stencil-based computation on the Cerebras Wafer Scale Engine
Cerebras Wafer Scale Engine(WSE)是一个加速器,它将数十万个AI核心结合到单个芯片上。虽然这项技术是为机器学习工作负载而设计的,但大量可用的原始计算意味着它也是加速传统HPC计算代码的一个非常有趣的潜在目标。这些算法中的许多是基于模板的,其中更新操作涉及来自相邻元素的贡献,在本文中,我们从技术早期采用者的角度探讨了这种技术对此类代码的适用性,与CPU和GPU相比。使用TensorFlow作为接口,我们探索了性能,并证明了尽管在向用户公开编程接口方面仍有工作要做,但WSE的性能令人印象深刻,因为在我们的实验中,它的性能是四个V100 GPU的2.5倍,两个英特尔至强白金CPU的114倍。因此,该技术在加速未来亿亿次超级计算机上的HPC代码方面发挥重要作用的潜力巨大。
2022-08-26 cs.DC cs.PF
Improved vectorization of OpenCV algorithms for RISC-V CPUs
Lobachevsky State University of Nizhni Novgorod(下诺夫哥罗德罗巴切夫斯基国立大学)
本文针对RISC-V架构计算加速需求,优化OpenCV库中计算机视觉与机器学习算法的向量化,实现了现有RISC-V设备原型上数十个百分点的计算速度提升。
2023-09-19 cs.CV cs.DC cs.PF
Performance Portable Back-projection Algorithms on CPUs: Agnostic Data Locality and Vectorization Optimizations
计算机断层扫描(CT)是一种关键的3D成像技术,其基本上依赖于计算密集的反投影操作来生成3D体积。GPU通常用于生产CT设备中的反投影。然而,随着功率受限的微型CT设备的兴起,以及在性能上与GPU相当的CPU的出现,CPU的背投影可能变得有利。与GPU不同,在CPU上提取反投影算法的并行性是复杂的,因为并行性和局部性没有明确定义和程序员控制,例如使用CUDA时就是这种情况。我们提出了一个新的反投影算法,减少了算术计算,鲁棒地使矢量化,执行定期的内存访问模式,并最大限度地提高数据的局部性。我们还实现了新的算法作为高效的反投影内核,在广泛的CPU性能便携。使用来自不同供应商和不同代的各种CPU进行的性能评估表明,我们的反向投影实现比最广泛使用和优化的开放库的多线程实现平均加速5.2倍。凭借最先进的CPU,我们的性能可与顶级GPU相媲美。
2021-04-27 cs.DC
FPDetect: Efficient Reasoning About Stencil Programs Using Selective Direct Evaluation
我们提出了FPDetect,一个低开销的方法来检测逻辑错误和软错误影响模板计算,而不会产生误报。我们开发了一个离线分析,严格估计跨模板应用程序保留的浮点位数。该估计严格限制了计算的数据空间中的预期值。违反这一界限可以肯定地归因于错误。FPDetect有助于合成针对用户指定的准确度和覆盖范围级别定制的错误检测器。FPDetect还支持基于在空间和时间上粗略部署这些检测器的开销减少技术。实验评估表明,我们的方法的实用性。
2020-08-04 cs.DC cs.NA cs.PF
Temporal blocking of finite-difference stencil operators with sparse "off-the-grid" sources
模板核在一系列科学应用中占据主导地位,包括地震和医学成像、图像处理和神经网络。时间阻塞是一种性能优化,旨在通过在多个时间步长中重用缓存中的数据来减少模板计算所需的内存带宽。它已经被证明是有益的这类算法。然而,将时间分块应用于实际应用的时间表仍然具有挑战性。这些计算通常由不与计算网格对齐的稀疏定位的算子组成(“离网”)。我们的工作的动机是建模问题,其中源注入的波场,然后必须在接收器通过插值从网格波场测量。由此产生的数据依赖性使得采用时间块更具挑战性。我们提出了一种方法来检查这些数据的依赖关系和重新排序的计算,导致模板代码的时间块不适用的性能增益。我们在Devito域特定的编译器工具链中实现了这个新方案。Devito实现了一种嵌入在Python中的特定于领域的语言,可以使用有限差分方法从高级符号问题定义中生成优化的偏微分方程求解器。我们评估我们的计划使用各向同性的声学,各向异性的声学,各向同性的弹性波传播的工业意义。在自动调整之后,性能评估表明,这使得通过时间分块能够实现高达1.6倍的高度优化的矢量化空间分块代码的实质性性能改善。
2021-02-25 cs.DC cs.MS cs.PF
Scalable communication for high-order stencil computations using CUDA-aware MPI
高性能计算中的现代计算节点提供了巨大的并行性和处理能力。然而,由于已经观察到算术性能相对于存储器和网络带宽以更快的速率增加,因此优化数据移动对于在许多通信繁重的应用中实现强大的可扩展性变得至关重要。随着图形处理单元的引入,这种性能差距进一步加剧,图形处理单元可以通过多种因素提供比中央处理单元更高的数据并行任务吞吐量。在这项工作中,我们探讨了迭代模板循环的计算方面,并实现了一个通用的通信方案,使用CUDA感知MPI,我们用它来加速基于高阶有限差分和三阶龙格库塔积分的磁流体力学模拟。我们特别关注提高工作负载的节点内局部性。我们的GPU实现可在$50\%$上从一个$64$设备强烈扩展--基于理论性能模型的预期效率的$87\%$。与多核CPU求解器相比,我们的实现在$16$节点上的计算约束基准测试中表现出$20$-$60\times$加速和$9$ - $12\times$提高的能量效率。
2022-05-10 cs.DC physics.comp-ph physics.flu-dyn
A portable coding strategy to exploit vectorization on combustion simulations
燃烧模拟的复杂性需要最新的高性能计算工具来加快其解决方案的时间。HPC系统的当前趋势是利用具有SIMD或向量扩展的CPU来利用数据并行。我们的工作提出了一种策略,以提高自动矢量化的有限元为基础的科学代码。该方法对数据结构进行参数化配置,以帮助编译器检测可以利用向量计算的代码块,同时保持代码的可移植性。在PRECCINSTA燃烧器模拟中,研究了这种方法对CFD求解器不同阶段的计算影响的详细分析。我们的参数实现已被证明可以帮助编译器在汇编操作中生成更多的向量指令:这导致总执行指令减少高达9.3倍,保持恒定的指令每周期和CPU频率。所提出的策略提高了性能的计算流体动力学的情况下,在MareNostrum 4超级计算机上的研究高达4.67倍。
2022-10-21 cs.DC cs.PF physics.app-ph
Fast Stencil Computations on a Single Arbitrarily Moving Interval
Stony Brook University(石溪大学)
针对一维任意移动单区间的模板计算,提出基于总变差的调度,实现近线性工作量与精确结果,并在Lean 4中机器验证。
2026-10-02 cs.DC cs.DS
Intelligent-Unrolling: Exploiting Regular Patterns in Irregular Applications
现代优化编译器能够利用存储器访问或计算模式来生成向量化代码。然而,由于输入依赖性,不规则应用程序中的这种模式直到运行时才知道。因此,无论是编译器的静态优化还是基于特定输入的配置文件引导的优化都不能预测任何公共输入的模式,这导致次优的代码生成。为了应对这一挑战,我们开发了智能展开,一个框架,自动优化不规则的应用程序与矢量化。智能展开允许用户使用\textit{code seed}来描述计算任务,其中存储器访问和计算模式在\textit{feature table}和\textit{information-code tree}中表示,并生成高效的代码。此外,智能展开采用了几种新的优化技术来优化归约操作和聚集/分散指令。我们评估智能展开与稀疏矩阵向量乘法(SpMV)和图形应用程序。实验结果表明,智能展开是能够生成更有效的矢量化代码相比,国家的最先进的实现。
2019-10-24 cs.DC cs.PF cs.PL
A stencil-based implementation of Parareal in the C++ domain specific embedded language STELLA
ETH Zürich(苏黎世联邦理工学院);Università della Svizzera italiana(瑞士意大利语大学)
本文提出在STELLA中实现时间并行的Parareal方法,结合节点级空间并行与时间并行,通过MPI实现Parareal,分析了CPU和GPU后端在对流扩散问题中的加速、并行效率和能耗。
2014-12-03 cs.DC cs.NA math.NA
Performance comparison between Java and JNI for optimal implementation of computational micro-kernels
在高性能计算(HPC)中使用的通用CPU支持向量指令集和专用于增加指令级并行的乱序引擎。因此,相关的优化是目前至关重要的,以提高需要数值计算的应用程序的性能。此外,在高性能计算中使用Java运行时环境(如HotSpot Java虚拟机(JVM))是一种有前途的替代方案。它受益于其编程灵活性,生产力和性能是由即时(JIT)编译器确保的。然而,JIT编译器有两个主要缺点。首先,JIT对于开发人员来说是一个黑盒子。我们无法控制生成的代码,也无法从其优化阶段(如向量化)获得任何反馈。其次,与GCC或LLVM等静态编译器相比,时间约束缩小了优化程度。因此,使用静态编译的代码是很有吸引力的,因为它可以从减少性能瓶颈的额外优化中受益。Java允许通过Java本机接口(JNI)从动态库调用本机代码。然而,JNI方法不是内联的,与Java方法相比,调用JNI方法需要额外的成本。因此,为了从更好的静态优化中获益,必须通过在每次JNI调用时执行的计算量来平衡这种调用开销。在本文中,我们解决这个问题,我们建议这样做的一组微内核的分析。我们的目标是根据调用上下文定义的计算量来选择最有效的实现。我们还研究了几种不同的优化方案,这是向量化,无序优化,数据对齐,方法内联和使用本机内存JNI方法的性能的影响。
2014-12-21 cs.DC cs.PF cs.PL