Mirage: Towards Low-interruption Services on Batch GPU Clusters with Reinforcement Learning
针对批量GPU集群上长期DL作业因调度中断影响效率的问题,提出基于强化学习的Mirage资源预配器,实验显示可减少17%-100%中断并保护23%-76%作业零中断。
2023-06-25 cs.DC
Thread Batching for High-performance Energy-efficient GPU Memory Design
GPU中的大规模多线程给内存子系统带来了巨大的压力。由于GPU线程级并行性的快速增长和峰值内存带宽的缓慢提高,内存成为GPU性能和能效的瓶颈。在这项工作中,我们提出了一个集成的架构方案,以优化内存访问,从而提高GPU的性能和能源效率。首先,我们提出了一个线程批启用内存分区(TEMP),以提高GPU的内存访问并行性。具体地,TEMP将共享相同页集合的多个线程块分组到线程批中,并且应用页着色机制以将每个流多处理器(SM)绑定到专用存储体。之后,TEMP将线程批调度到SM,以确保来自不同线程块的高并行内存访问流。其次,线程批感知调度(TBAS)计划,以提高GPU的存储器访问的局部性,减少对存储器控制器和互连网络的竞争。实验结果表明,TEMP和TBAS的集成可以实现高达10.3%的性能提高和11.3%的DRAM能源减少在不同的GPU应用。我们还评估了混合CPU+GPU工作负载的性能干扰,当它们运行在一个异构系统,采用我们提出的计划。我们的结果表明,一个简单的解决方案可以有效地确保GPU和CPU应用程序的高效执行。
2019-06-13 cs.AR cs.DC
CROSSBOW: Scaling Deep Learning with Small Batch Sizes on Multi-GPU Servers
Imperial College London(帝国理工学院);Microsoft Research(微软研究院);Humboldt-Universität zu Berlin(柏林洪堡大学)
深度学习模型在具有许多GPU的服务器上训练,并且训练必须随着GPU的数量而扩展。TensorFlow和Caffe 2等系统使用并行同步随机梯度下降来训练模型:它们一次处理一批训练数据,在GPU之间进行分区,并对产生的部分梯度进行平均,以获得更新的全局模型。为了充分利用所有GPU,系统必须增加批量大小,这会阻碍统计效率。用户调整超参数,如学习率,以补偿这一点,这是复杂的和特定于模型的。我们描述了CROSSBOW,这是一种用于训练深度学习模型的新的单服务器多GPU系统,使用户能够自由选择他们喜欢的批量大小-无论多么小-同时扩展到多个GPU。CROSSBOW使用许多并行模型副本,并通过一种新的同步训练方法避免了统计效率的降低。我们引入SMA,模型平均的同步变体,其中副本独立地探索解空间与梯度下降,但调整其搜索同步的基础上的全局一致的平均模型的轨迹。CROSSBOW通过在每个GPU上训练多个模型副本,自动调整副本数量以最大化吞吐量,从而在小批量的情况下实现高硬件效率。我们的实验表明,与TensorFlow相比,CROSSBOW将深度学习模型在8 GPU服务器上的训练时间缩短了1.3- 4倍。
2019-01-08 cs.DC cs.LG
GraphVine: A Data Structure to Optimize Dynamic Graph Processing on GPUs
本文提出GraphVine,一种面向GPU的动态图数据结构,通过优化批量更新与查询,在减少内存消耗的同时,显著提升初始化及边插入删除性能。
2023-07-26 cs.DC cs.DS
Distributed Hybrid CPU and GPU training for Graph Neural Networks on Billion-Scale Graphs
图神经网络(GNN)在从图结构数据中学习方面取得了巨大的成功。它们被广泛用于各种应用,例如推荐、欺诈检测和搜索。在这些域中,图通常是大的和异构的,包含数百万或数十亿个不同类型的顶点和边。为了应对这一挑战,我们开发了DistDGLv 2,这是一个扩展DistDGL的系统,用于使用分布式混合CPU/GPU训练,以小批量方式在大规模异构图上训练GNN。DistDGLv 2将图形数据放置在分布式CPU内存中,并在GPU中执行小批量计算。为了便于使用,DistDGLv 2采用了与Deep Graph Library(DGL)的小批量训练和异构图形API兼容的API,这使得分布式训练几乎不需要修改代码。为了确保模型的准确性,DistDGLv 2遵循同步训练方法,并允许形成小批量的自我网络包含非局部顶点。为了保证数据的局部性和负载均衡,DistDGLv 2使用一种带最小边割和多个均衡约束的多级划分算法对异构图进行划分. DistDGLv 2部署了一个异步小批量生成管道,使计算和数据访问异步,以充分利用所有硬件(CPU,GPU,网络,PCIe)。这种组合使DistDGLv 2能够训练高质量的模型,同时实现高并行效率和内存可扩展性。我们在各种GNN工作负载上演示了DistDGLv 2。我们的结果表明,DistDGLv 2实现了2- 3倍的速度比DistDGL和18倍的速度比欧拉。在具有64个GPU的…
2022-03-13 cs.DC
Lightning: Scaling the GPU Programming Model Beyond a Single GPU
GPU编程模型主要针对运行一个GPU的应用程序的开发。然而,这将GPU代码的可扩展性限制在单个GPU在计算能力和内存容量方面的能力。为了进一步扩展GPU应用程序,通常需要大量的工程工作:工作和数据必须手动分配到多个GPU上,可能在多个节点上,数据必须手动从GPU内存溢出到更高级别的内存。我们介绍Lightning:一个遵循常见GPU编程范式的框架,但可以轻松扩展到大型问题。Lightning支持GPU内核的多GPU执行,甚至跨多个节点,并将数据无缝溢出到更高级别的内存(主内存和磁盘)。现有的CUDA内核可以很容易地适应Lightning,这些内核上的数据访问注释允许Lightning推断其数据需求和后续内核启动之间的依赖关系。Lightning在GPU之间有效地分配工作/数据,并通过重叠调度,数据移动和内核执行来最大限度地提高效率。我们介绍了Lightning的设计和实现,以及在多达32个GPU上进行8个基准测试和1个实际应用的实验结果。评估显示了出色的性能和可扩展性,例如使用Lighting的CPU加速57.2倍,16个GPU,4个节点和80 GB的数据,远远超过一个GPU的内存容量。
2022-03-02 cs.DC
Faster GPU Based Genetic Programming Using A Two Dimensional Stack
遗传编程(GP)是一种计算密集型技术,同时具有高度的自然并行性。并行计算架构已经变得司空见惯,特别是关于图形处理单元(GPU)。因此,已经实现了利用这些高度并行的计算平台的GP版本,使得能够实现GP的计算速度的显著增益。然而,最近使用多核CPU的GP的二维的堆栈方法也表现出相当大的性能增益。事实上,性能相当于或超过了GPU实现的。本文将证明,类似的二维的堆栈方法也可以应用于基于GPU的方法,以更好地利用底层技术。当利用GPU时,性能增益超过标准的一维堆栈方法。总体而言,观察到每秒超过550亿次遗传编程操作的峰值计算速度,比文献中最好的基于GPU的一维堆栈方法提高了两倍。
2016-01-02 cs.DC
Mind the Memory Gap: Unveiling GPU Bottlenecks in Large-Batch LLM Inference
Barcelona Supercomputing Center(巴塞罗那超级计算中心);Universitat Politècnica de Catalunya - BarcelonaTech (UPC)(巴塞罗那技术大学 - 巴塞罗那技术学院);IBM Research(IBM研究院)
本文揭示大批量LLM推理仍受限于DRAM带宽饱和而非计算能力,提出批处理配置顾问(BCA)优化内存分配,并利用模型复制提升吞吐量与GPU利用率。
2025-07-11 cs.DC cs.LG
Online Evolutionary Batch Size Orchestration for Scheduling Deep Learning Workloads in GPU Clusters
National University of Singapore(新加坡国立大学);ByteDance(字节跳动)
高效的GPU资源调度对于最大限度地提高资源利用率和节省训练成本至关重要,因为共享GPU集群中的深度学习工作负载量不断增加。现有的GPU处理器在很大程度上依赖于静态策略来利用深度学习作业的性能特征。然而,由于缺乏弹性,它们很难达到最佳效率。为了解决这个问题,我们提出了ONES,一个在线进化的弹性批量编排。ONES根据训练批量大小自动管理每个作业的弹性,从而最大化GPU利用率,提高调度效率。它通过在线进化搜索确定每个作业的批量大小,可以不断优化调度决策。我们评估的有效性与64 GPU的TACC的长角超级计算机上的ONES。结果表明,ONES可以以显著更短的平均作业完成时间胜过之前的深度学习算法。
2021-08-08 cs.AI cs.DC cs.LG
Concurrent CPU-GPU Task Programming using Modern C++
在本文中,我们介绍了Heteroflow,一个新的C++库,以帮助开发人员使用任务依赖图快速编写并行CPU-GPU程序。Heteroflow利用了现代C++和基于任务的方法的强大功能来实现异构分解策略的高效实现。我们新的CPU-GPU编程模型允许用户以一种适应有效分离关注点和专业知识封装的方式来表达问题。与现有库相比,Heteroflow在性能扩展、编程效率和解决方案通用性方面更具成本效益。我们已经在VLSI设计自动化的两个实际应用中评估了Heteroflow,并展示了不同CPU-GPU数量和问题大小的性能可扩展性。在百万级任务处理的超大规模集成电路时序分析的一个特定示例中,Heteroflow在具有40个CPU核心和4个GPU的机器上实现了比基线高出7.7倍的运行时速度(99分钟vs 13分钟)。
2022-03-16 cs.DC
Leveraging GPU batching for scalable nonlinear programming through massive Lagrangian decomposition
我们提出了一个信赖域牛顿算法ExaTron的实现有界约束非线性规划问题,完全运行在多个GPU上。在CPU和GPU之间没有数据传输的情况下,我们的实现在内存受限的情况下消除了一个主要的性能瓶颈,特别是在批量解决许多小问题时。我们讨论了我们的核函数和核心操作的设计原则和实现细节。不同的设计选择是合理的数值实验。通过使用分布式控制的交流最优潮流,其中一个大的问题被分解成许多较小的非线性程序,使用拉格朗日方法的应用程序,我们证明了ExaTron的计算性能的首脑会议超级计算机在橡树岭国家实验室。我们的数值计算结果显示,相对于批量大小和GPU的数量和超过35倍的加速比在一个节点上的40个CPU上的6个GPU的线性缩放。
2021-06-28 cs.DC cs.MS math.OC
GPU Programming for AI Workflow Development on AWS SageMaker: An Instructional Approach
本文介绍一门面向本研学生的GPU编程与AI开发课程,通过AWS平台进行云端GPU配置与RAG优化实践,结果表明该体验式教学有效提升了学生的技术能力与问题解决能力。
2025-09-17 cs.DC
Decoupling GPU Programming Models from Resource Management for Enhanced Programming Ease, Portability, and Performance
应用程序资源规范--一个静态的参数规范,如线程数量和每个线程块的暂存器内存使用量--形成了现代GPU编程模型的关键组成部分。该规范确定了应用程序在执行期间的并行性,从而确定了应用程序的性能,因为相应的片上硬件资源是基于该规范分配和管理的。软件提供的资源规范和硬件中的资源管理之间的这种紧密耦合导致了编程简易性、可移植性和性能方面的重大挑战。Zorua是一个新的资源虚拟化框架,它将程序员指定的GPU应用程序的资源使用与片上硬件资源的实际分配相结合。Zorua通过对程序员透明地虚拟化每个资源来实现这种解耦。我们证明,通过提供更多的资源比物理上可用的通过控制和协调的虚拟化的错觉,Zorua提供了几个重要的好处:(一)编程容易。Zorua减轻了程序员的负担,提供了经过优化以有效利用物理可用的片上资源的代码。(ii)便携性。Zorua强调了在跨GPU代移植应用程序时重新调整应用程序资源使用的必要性。(iii)性能通过动态分配资源并在必要时仔细超额订阅,Zorua提高或保持了已经高度调整以最佳利用资源的应用程序的性能。
2018-05-02 cs.DC
Evaluating OpenMP Offloading for Intra-node Multi-GPU Programming across NVIDIA, AMD, and Intel Architectures: A 3D Heat Transfer Case Study
Rudolfovo-Science and Technology Centre Novo mesto(鲁多尔沃夫诺沃梅斯托科学与技术中心);Faculty of Mechanical Engineering, University of Ljubljana(卢布尔雅那大学机械工程学院);Department of Computer Science, FSTM, University of Luxembourg(卢森堡大学科学技术学院计算机科学系)
本研究以3D热传导为例,对比分析OpenMP Offloading在三类GPU上的性能,发现其多GPU实现较单GPU可获2倍、4倍左右性能提升。
2026-09-16 cs.DC
SIMD-X: Programming and Processing of Graph Algorithms on GPUs
凭借高计算能力和内存带宽,图形处理单元(GPU)有助于加速数据密集型分析,尤其是当此类应用程序适合单指令多数据(SIMD)模型时。然而,由于内存访问和控制流的不规则性,诸如宽度优先搜索和k核之类的图形算法通常无法充分利用GPU。为了应对这一挑战,我们开发了SIMD-X,用于在GPU上编程和处理单指令多个复杂数据。具体来说,新的主动计算合并(ACC)模型不仅为程序员提供了编程的便利,更重要的是为系统级优化创造了机会。为此,SIMD-X利用即时任务管理,在运行时过滤掉不活动的顶点,并智能地将各种任务映射到不同数量的GPU核心,以追求工作负载平衡。此外,SIMD-X利用基于推拉的内核融合,在新的无死锁全局屏障的帮助下,将大量的计算内核减少到非常少。使用SIMD-X,用户可以在数十行代码中编写图形算法,同时实现3?,六个?二十四?三个?Gunrock,Galois,CuSha和Ligra的加速。
2018-12-10 cs.DC
How to Correctly Deal With Pseudorandom Numbers in Manycore Environments - Application to GPU programming with Shoverand
随机模拟通常对表征其结果的统计质量的随机性来源敏感。因此,我们需要高度可靠的随机数发生器(RNG)来满足这些应用。最近的发展试图通过越来越多的通用图形处理单元(GP-GPU)来缩短计算时间,以加速随机模拟。这种设备带来了新的并行化的可能性,但它们也引入了新的编程困难。由于RNG是任何随机模拟的基础,因此它们也需要移植到GP-GPU。在GP-GPU平台上仍然缺乏经过质量验证的RNG的精心设计的实现。在本文中,我们介绍了ShoveRand,一个框架定义的共同规则,产生随机数均匀的GP-GPU。我们的框架旨在应对任何支持GPU的开发平台,并向用户公开一个简单的界面。我们还提供了一个现有的RNG实现与此框架,以证明其在开发和易用性的效率。
2014-12-29 cs.DC
Accelerating Communication for Parallel Programming Models on GPU Systems
随着越来越多的领先级系统在向亿级的竞争中采用GPU加速器,GPU数据的有效通信正在成为高性能计算的最关键组件之一。对于并行编程模型的开发人员来说,使用GPU(如CUDA)的本机API实现对GPU感知通信的支持可能是一项艰巨的任务,因为它需要相当大的努力,性能几乎没有保证。在这项工作中,我们展示了统一通信X(UCX)框架组成GPU感知通信层的能力,该层为Charm++生态系统的多个并行编程模型提供服务:Charm++,自适应MPI(AMPI)和Charm4py。我们使用改编自OSU基准测试套件的微基准测试来展示我们设计的性能影响,在Charm++中获得了高达10.1倍的延迟改进,在AMPI中获得了11.7倍的延迟改进,在Charm4py中获得了17.4倍的延迟改进。我们还观察到Charm++的带宽增加了10.1倍,AMPI增加了10倍,Charm4py增加了10.5倍。通过评估Jacobi迭代法的代理应用程序,我们展示了我们的设计对现实世界应用程序的潜在影响,在Charm++中将通信性能提高了12.4倍,在AMPI中提高了12.8倍,在Charm4py中提高了19.7倍。
2022-03-22 cs.DC
B$^3$-PWL: GPU-Batched Branch-and-Bound for Piecewise-Linear Optimization with SOS2 Constraints
Johns Hopkins University(约翰斯·霍普金斯大学);University of North Carolina, Chapel Hill(北卡罗来纳大学教堂山分校);City University of Hong Kong(香港城市大学);The Hong Kong Institute of AI for Science(香港人工智能科学研究所)
本文提出以GPU为中心的B³-PWL框架,通过批处理LP松弛子问题等技术,在PWL优化问题上实现了相对于cuOpt的9.25倍几何平均加速,性能优于多款CPU求解器。
2026-09-01 cs.DC math.OC
A Programming Model for GPU Load Balancing
我们提出了一个GPU细粒度的负载平衡抽象,从工作处理中提取负载均衡,旨在支持静态和动态调度,并通过可编程接口实现新的负载平衡调度。在我们的工作之前,释放GPU在不规则问题上的潜力的唯一方法是通过特定于应用程序的紧耦合负载平衡技术来实现工作负载平衡。通过我们的开源负载平衡框架,我们希望在GPU上开发不规则并行算法时提高程序员的生产力,并通过允许快速试验各种现有负载平衡技术来提高此类应用程序的整体性能特征。因此,我们也希望通过在我们的抽象中将负载平衡的关注点从工作处理中分离出来,管理现有代码并将其扩展到未来的架构中变得更加容易。
2023-01-12 cs.DC
Solving Dynamic Programming Problem by Pipeline Implementation on GPU
在本文中,我们展示了在GPU上的动态规划(DP)的流水线实现的有效性。作为一个例子,我们解释了如何解决一个矩阵链乘法(MCM)问题的DP在GPU上。这个问题可以通过DP在$O(n^3)$步骤中顺序地解决,其中$n$是矩阵的数量,因为它的解表的大小为$n \times n$,并且表中的每个元素可以在$O(n)$步骤中计算。为此,典型的加速策略是并行化每个元素的$O(n)$步长计算,这可以通过并行前缀计算容易地实现,即,以锦标赛方式使用$n$线程的$O(\log n)$步骤计算。通过这种标准的并行化方法,我们可以用$n$线程在$O(n^2 \log n)$步骤中解决MCM问题。在我们的方法中,我们以流水线的方式在GPU上解决MCM问题,即,我们使用GPU核心来支持流水线阶段,使得解表的许多元素同时被部分地并行计算。我们的实现确定一个输出值,每一个计算步骤与$n$线程在一个管道的方式和构造的解决方案表完全在$O(n^2)$步骤与$n$线程。
2020-08-05 cs.DC
Gunrock: A High-Performance Graph Processing Library on the GPU
对于GPU上的大规模图形分析,数据访问和控制流的不规则性以及GPU编程的复杂性一直是开发可编程高性能图形库的两个重大挑战。我们的图形处理系统“Gunrock”是专门为GPU设计的,它使用了一个高层次的、批量同步的、以数据为中心的抽象,专注于顶点或边缘边界上的操作。Gunrock通过将高性能GPU计算原语和优化策略与高级编程模型相结合,实现了性能和表现力之间的平衡,该模型允许程序员以较小的代码大小和最少的GPU编程知识快速开发新的图形原语。我们评估Gunrock上的五个关键图形原语,并表明Gunrock平均至少有一个数量级的加速比Boost和PowerGraph,可比的性能最快的GPU硬连线原语,和更好的性能比任何其他GPU的高级图形库。
2016-02-22 cs.DC
Advanced Programming Platform for efficient use of Data Parallel Hardware
图形处理单元(GPU)已经从能够在游戏中渲染高质量图形的专用硬件发展为用于以并行模式有效处理数据块的商品硬件。这种演变对于科学团体来说特别有趣,他们传统上主要使用CPU作为工作机器,现在可以从GPU硬件到HPC集群的到来中获益。这种新的GPU硬件有望提高峰值性能,但使用起来并不轻松。在这篇文章中,提出了一个编程平台,旨在促进直接使用这种专门的硬件。该平台包括一个并行数据流的可视化编辑器,它是面向在分布式集群与GPU的执行。在两个特征问题,快速傅立叶变换和图像压缩的应用程序的例子,也显示。
2012-03-23 cs.DC
Automatic Multi-GPU Code Generation applied to Simulation of Electrical Machines
电气和电子工程已经使用并行编程来解决其大规模的复杂问题的性能的原因。然而,由于并行编程需要任务和数据的非平凡分布,开发人员发现很难有效地实现他们的应用程序。因此,为了降低设计的复杂性,我们提出了一种方法来生成代码的混合架构(如CPU + GPU)使用OpenCL,异构系统的并行编程的开放标准。该方法基于模型驱动工程(MDE)和对象管理组织(OMG)提出的MARTE规范。其目的是为并行编程的非专家提供资源,以实现他们的应用程序。此外,由于模型重用能力,我们可以添加/更改功能或目标架构。因此,这种方法可以帮助行业实现其上市时间限制,并通过实验测试证实,使用多GPU环境可以提高性能。
2011-07-04 cs.DC
Term Rewriting on GPUs
我们提出了一种在GPU上实现项重写的方法。我们通过让GPU重复执行所有子项的大规模并行计算来做到这一点。我们发现,如果长期重写系统表现出足够的内部并行性,GPU重写大大优于CPU。由于我们希望我们的实现可以进一步优化,并且因为在任何情况下,GPU在未来都会变得更加强大,这表明GPU是一个有趣的术语重写平台。由于项重写可以被看作是一种通用的程序设计语言,这也开辟了一条通过项重写对GPU进行编程的途径,特别是对于不规则的计算。
2020-09-15 cs.DC
ABS-SGD: A Delayed Synchronous Stochastic Gradient Descent Algorithm with Adaptive Batch Size for Heterogeneous GPU Clusters
Zhejiang University(浙江大学)
针对异构GPU集群中分布式SGD资源利用不足和收敛慢的问题,提出自适应批大小的延迟同步算法ABS-SGD,通过累积延迟梯度并充分利用计算资源,在4节点训练ResNet18时平均提速1.30倍。
2023-08-29 cs.DC cs.LG
A Study of Performance Programming of CPU, GPU accelerated Computers and SIMD Architecture
该研究梳理CPU、GPU、SIMD三类并行计算实现方式及现有研究瓶颈,汇总并行编程技术资料,呈现其现状与趋势,为后续研究提供背景支撑。
2024-09-16 cs.DC
Global Neighbor Sampling for Mixed CPU-GPU Training on Giant Graphs
University of California, Los Angeles(加利福尼亚大学洛杉矶分校);AWS AI(亚马逊云科技人工智能部门)
图神经网络(GNN)是用于从图数据学习的强大工具,并且广泛用于各种应用,诸如社交网络推荐、欺诈检测和图搜索。这些应用程序中的图通常很大,通常包含数亿个节点。在如此大的图上有效地训练GNN模型仍然是一个巨大的挑战。尽管已经提出了许多基于采样的方法来支持大型图上的小批量训练,但这些方法尚未被证明适用于真正的行业规模图,这些图需要GPU或混合CPU-GPU训练。最先进的基于采样的方法通常不会针对这些现实世界的硬件设置进行优化,其中CPU和GPU之间的数据移动是一个瓶颈。为了解决这个问题,我们提出了全局邻域采样,旨在在巨型图上训练GNN,专门用于混合CPU-GPU训练。该算法定期对所有小批量节点的全局缓存进行采样,并将其存储在GPU中。这种全局缓存允许小批量的GPU内重要性采样,这大大减少了小批量中的节点数量,特别是在输入层中,以减少CPU和GPU之间的数据复制和小批量计算,而不影响训练收敛速度或模型精度。我们提供了一个高效的实现这种方法,并表明我们的实现优于一个有效的节点明智的邻居采样基线的一个因素的2X-4X的巨型图。该算法的性能比具有小层数的LARKING算法高出2X-14 X倍,同时精度也比LARKING算法高得多。我们还从理论上分析了该算法,并表明在缓存节点数据大小合适的情况下,该算法的收敛速度与底层的逐节点采样方法相当。
2021-06-11 cs.DC cs.LG
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
Constraint Programming Models For Serial Batch Scheduling With Minimum Batch Size
Georgia Institute of Technology(佐治亚理工学院)
针对具有最小批量要求的串行批调度问题,本文提出三种约束规划模型,实验表明在大规模实例上比现有MIP模型更快获得更优解。
2025-07-10 cs.AI cs.DC math.OC
GPU PaaS Computation Model in Aneka Cloud Computing Environment
由于产生的数据量的激增以及人工智能(AI)技术(如机器学习和深度学习)的快速发展,现有的传统计算模型已经不足以处理用于提取内在信息的巨大数据量和复杂的应用逻辑。诸如图形处理单元(GPU)的计算加速器已经成为许多大数据和机器学习应用的事实上的SIMD计算系统。另一方面,传统的计算模式也逐渐从传统的基于所有权的计算转向基于订阅的云计算模式。然而,缺乏以无缝方式开发云原生应用程序以利用云中的CPU和GPU资源的编程模型和框架已成为快速应用程序开发的瓶颈。为了支持这种应用程序对同时使用异构资源的需求,需要编程模型和新的框架来有效地管理底层资源。Aneka是一种流行的PaaS计算模型,用于在单个容器.NET平台中使用多个编程模型(如Thread,Task和MapReduce)开发云应用程序。由于Aneka解决了使用基于CPU的资源的MIMD应用程序开发问题,而GPU编程(如CUDA)是为SIMD应用程序开发而设计的,因此本章讨论了Aneka Cloud的GPU PaaS计算模型,以实现.NET平台的快速云应用程序开发。流行的开源GPU库被利用并集成到现有的Aneka任务编程模型中。扩展了调度策略,可以自动识别GPU机器并相应地调度相应的任务。最后,以图像处理为例,介绍了基于PaaS Aneka SDK和CUDA库构建的系统。
2018-08-20 cs.DC
Anonymized Network Sensing using C++26 std::execution on GPUs
本文探讨使用 C++26 Senders 模型在密集 GPU 系统上开发匿名网络感知图挑战,该方法将 GPU 视为一等资源,在 8 个 NVIDIA A100 上相比串行 GraphBLAS 基线实现高达 55 倍性能提升。
2025-10-15 cs.DC
High-level GPU programming in Julia
GPU是用于加速科学计算的流行设备。然而,由于GPU代码通常是用低级语言编写的,它打破了科学程序员流行的高级语言的抽象。为了克服这一点,我们提出了一个框架的CUDA GPU编程的高级朱莉娅程序设计语言。此框架编译Julia源代码以供GPU执行,并使用现代代码生成技术处理必要的低级交互,以避免运行时开销。评估框架及其API的案例研究,包括跟踪变换领域的图像处理,我们发现,对性能的影响是最小的,同时大大提高了程序员的生产力。Julia语言的元编程能力证明了这一点。我们的框架显着提高了GPU的可用性,使它们能够被广泛的程序员访问。它可以作为自由和开源软件在MIT许可证下获得许可。
2016-04-12 cs.DC cs.PL
C-for-Metal: High Performance SIMD Programming on Intel GPUs
SIMT执行模型通常用于通用GPU开发。CUDA和OpenCL开发人员编写标量代码,由编译器和硬件隐式并行化。然而,在英特尔GPU上,这种抽象具有深刻的性能影响,因为底层ISA是SIMD,并且无法充分利用重要的硬件功能。为了缩小这一性能差距,我们引入了C-For-Metal(CM),这是一种显式SIMD编程框架,旨在在英特尔GPU上提供接近最佳性能。CM程序设计语言及其向量/矩阵类型提供了一个直观的界面来利用底层硬件功能,允许细粒度寄存器管理、SIMD大小控制和跨通道数据共享。实验结果表明,来自不同领域的CM应用程序的性能优于最知名的基于SIMT的OpenCL实现,在最新的英特尔GPU上实现高达2.7倍的加速。
2021-01-26 cs.DC cs.PL
A Multi-GPU Programming Library for Real-Time Applications
我们提出了MGPU,一个针对单节点多GPU系统的C++编程库。这样的系统结合了不成比例的浮点性能与高数据局部性,因此非常适合实现实时的【形】算法。我们描述了库的设计,编程接口和实现细节,在这个特定的问题域。这项工作的核心概念是一种新的容器抽象和类似MPI的通信方法,用于系统内通信。我们进一步展示了如何MGPU是用来作为一个框架,现有的GPU库移植到多设备架构。为了测试我们的库,我们使用多个GPU加速了用于实时的【形】磁共振成像的迭代非线性图像重建算法。我们使用2个GPU实现了约1.7的加速,并使用4个GPU达到最终2.1的加速。这些有希望的结果使我们得出结论,多GPU系统是一个可行的解决方案,实时的【形】MRI重建以及一般的信号处理应用。
2013-01-07 cs.DC cs.PF
GPU-Accelerated Primal Heuristics for Mixed Integer Programming
Nvidia(英伟达)
本研究提出融合GPU加速的混合整数规划原始启发式算法,通过GPU加速PDLP求解器、新增探测缓存并优化多种前沿启发式算法,在MIPLIB2017基准上显著提升了可行解数量与目标质量。
2025-10-30 cs.DC math.OC
A GPU-Outperforming FPGA Accelerator Architecture for Binary Convolutional Neural Networks
Arizona State University(亚利桑那州立大学);Nanyang Technological University(南洋理工大学)
基于FPGA的卷积神经网络(CNN)硬件加速器由于其比GPU更高的能量效率而受到广泛关注。然而,基于FPGA的解决方案要实现比GPU更高的吞吐量是具有挑战性的。在本文中,我们证明了当CNN在权重和激活的二进制约束下进行训练时,FPGA加速在吞吐量和能效方面都是一种优越的解决方案。具体来说,我们提出了一种优化的FPGA加速器架构,专为逐位卷积和归一化而设计,具有大规模的空间并行性和深流水线阶段。FPGA加速器的一个关键优势是其性能对数据批量大小不敏感,而GPU加速的性能在很大程度上取决于数据的批量大小。实验结果表明,在Virtex-7 FPGA上运行的二进制CNN的加速器架构比Titan X GPU快8.3倍,能效高75倍,可以处理小批量的在线个人请求。对于处理大批量静态数据,该解决方案在吞吐量方面与Titan X GPU不相上下,同时提供9.5倍的能效。
2017-06-08 cs.AR cs.CV cs.DC
Contract-Based General-Purpose GPU Programming
使用GPU作为通用处理器,通过为大量且不断增长的算法集提供台式机上的大规模数据并行化,彻底改变了并行计算。然而,广泛采用的一个障碍是编程的困难和实现良好性能所需的硬件的低级控制。本文提出了一个编程库,SafeGPU,旨在达到程序员的生产力和性能之间的平衡,使GPU的数据并行操作可从一个经典的面向对象的程序设计语言。该解决方案与合同设计方法相结合,通过将可执行程序规范嵌入到程序文本中,提高了对功能程序正确性的信心。我们表明,我们的库导致模块化和维护代码,可访问GPGPU的非专家,同时提供的性能是与手写的CUDA代码。此外,运行时合约检查是可行的,因为合约可以在GPU上执行。
2015-08-21 cs.DC cs.SE
A Variant of Concurrent Constraint Programming on GPU
Interdisciplinary Centre for Security, Reliability and Trust (SnT)(安全、可靠性与信任跨学科中心(SnT));University of Luxembourg(卢森堡大学)
如今,图形计算单元(GPU)上的核心数量达到数千个,而处理器的时钟速度停滞不前。不幸的是,约束编程求解器还没有利用GPU并行性。一个原因是约束求解器主要是在顺序计算的心理框架内设计的。为了解决这个问题,我们退一步,并有助于一个简单的,本质上是并行的,无锁和形式上正确的程序设计语言的基础上并发约束编程。然后,我们重新审视并行约束求解的GPU在这种形式主义,并开发涡轮,一个简单的约束求解器完全在GPU上编程。Turbo验证了我们的方法的正确性,并积极比较基于CPU的并行求解器。
2022-07-18 cs.AI cs.DC cs.PL
Technical Report: Parallel Distance Threshold Query Processing for Spatiotemporal Trajectory Databases on the GPU
处理移动对象的轨迹出现在许多应用领域,并已解决了从业者在时空数据库和地理信息系统社区。在这项工作中,我们专注于一个轨迹相似性搜索,距离阈值查询,它发现在给定的距离d内的搜索轨迹在一个时间间隔内的所有轨迹。我们展示了一个多线程实现的性能,其特点是使用一个R-树索引,并具有很高的并行效率(78%-90%)。我们介绍了一个GPGPU的实现,它避免了使用索引树,而是具有GPU友好的索引方法。我们比较多线程和GPU实现的性能,并表明,可以使用后者获得的加速比。我们提出了两类算法,SetSplit和GreedySetSplit,以创建高效的查询批次,减少内存压力和GPU上的计算成本。然而,我们发现使用固定大小的批次在实践中是足够有效的。我们开发了一个经验的性能模型,我们的GPGPU实现,可用于预测的响应时间的距离阈值查询。这个模型可以用来选择一个好的查询批量大小。
2014-09-13 cs.DB cs.DC
Taking GPU Programming Models to Task for Performance Portability
针对现有GPU编程模型无法保证性能可移植性的问题,本研究对比评估了7种主流GPU编程模型在NVIDIA和AMD GPU上的性能,提出基于Spack脚本的可复现实验方法,并分析性能差异原因、给出部分优化方案。
2025-09-04 cs.DC cs.PF
PARIS and ELSA: An Elastic Scheduling Algorithm for Reconfigurable Multi-GPU Inference Servers
KAIST(韩国科学技术院)
在云机器学习(ML)推理系统中,为最终用户提供低延迟至关重要。然而,最大限度地提高服务器利用率和系统吞吐量对于ML服务提供商来说也是至关重要的,因为它有助于降低总拥有成本。GPU经常因ML推理的使用而受到批评,因为其庞大的计算和内存吞吐量在低批量推理场景下难以充分利用。为了解决这种限制,NVIDIA最近发布的Ampere GPU架构提供了将一个大型单片GPU“重新配置”为多个较小的“GPU分区”的功能。这一特性为云机器学习服务提供商提供了利用可重配置GPU的能力,不仅可以进行大批量训练,还可以进行小批量推理,从而实现高资源利用率。在本文中,我们研究了这种新兴的GPU架构与可重构性,以开发一个高性能的多GPU ML推理服务器。我们的第一个命题是一个复杂的可重构GPU的分区算法,系统地确定一组异构的多粒度GPU分区,最适合推理服务器的部署。此外,我们共同设计了一个弹性调度算法,为我们的异构分区GPU服务器,有效地平衡低延迟和高GPU利用率。
2022-02-27 cs.AI cs.AR cs.DC
Batch Query Processing and Optimization for Agentic Workflows
National University of Singapore(新加坡国立大学)
Halo通过统一查询优化与异构LLM服务,提升代理工作流在批量推理和在线服务中的效率,实现3.6倍速度提升和2.6倍吞吐量改进。
2026-01-19 cs.DB cs.DC
GPU Programming - Speeding Up the 3D Surface Generator VESTA
新颖的“体积包围表面提取算法”(VESTA)从计算机断层摄影体积图像和/或三维(3D)模拟数据生成三角形等值面。在这里,我们提出了VESTA和当前最先进的Marching Cubes算法(MCA)的基于GPU的代码实现的各种基准。这项研究的一个主要结果是VESTA运行速度明显快于MCA。
2015-01-26 cs.CG cs.DC cs.GR
Many Cores, Many Models: GPU Programming Model vs. Vendor Compatibility Overview
针对当前HPC领域多厂商GPU、多编程模型并存且支持情况复杂的问题,本文梳理了三大厂商GPU与各编程模型的适配关系,以表格和注释呈现并评估支持程度,为科研程序员提供参考指南。
2023-10-04 cs.DC cs.PL
GPU-based parallelism for ASP-solving
Università di Udine(乌迪内大学);Università di Perugia(佩鲁贾大学);Libera Università di Bolzano(波尔扎诺自由大学)
答案集编程(ASP)已成为逻辑编程和非单调推理领域的首选范式。由于有效的求解器的可用性,ASP已成功地应用于大量的应用领域。术语GPU计算表示旨在使现代并行图形处理单元(GPU)用于通用计算的最近编程范例。在本文中,我们描述了一种利用GPU并行性解决ASP问题的方法。基于GPU的求解器的设计提出了各种挑战,由于GPU的软件和硬件架构的特殊性和可满足性问题的内在性质。
2019-09-04 cs.AI cs.DC
Iris: First-Class Multi-GPU Programming Experience in Triton
Advanced Micro Devices, Inc.
针对多GPU编程中性能与可编程性难以兼顾的问题,提出基于Python和Triton实现的通信库Iris,通过适配Triton模型的tile对称内存抽象简化开发,性能可媲美甚至超越RCCL等优化库。
2025-11-16 cs.DC cs.LG
Zorua: Enhancing Programming Ease, Portability, and Performance in GPUs by Decoupling Programming Models from Resource Management
应用程序资源规范--线程数量和每个线程块的暂存器内存使用率等几个参数的静态规范--形成了现有GPU编程模型的关键组成部分。此规范决定了应用程序在执行期间的性能,因为相应的片上硬件资源完全基于此规范进行分配和管理。软件提供的资源规范和硬件资源管理之间的这种紧密耦合导致编程的易用性,可移植性和性能的重大挑战,因为我们在这项工作中证明。我们在这项工作中的目标是减少软件提供的资源规范的性能的依赖,同时减轻上述挑战。为此,我们介绍了Zorua,一个新的资源虚拟化框架,它将程序员指定的GPU应用程序的资源使用从片上硬件资源的实际分配中分离出来。Zorua通过对程序员透明地虚拟化每个资源来实现这种解耦。我们证明,通过提供更多的资源比物理可用的错觉,Zorua提供了几个重要的好处:(一)编程容易:Zorua减轻了程序员的负担,提供的代码是调整,以有效地利用物理可用的片上资源。(ii)可移植性:Zorua强调了在跨GPU代移植应用程序时重新调整应用程序资源使用的必要性。(iii)性能表现:通过动态分配资源并在必要时仔细超额订阅,Zorua提高或保持了已经高度调整以最佳利用资源的应用程序的性能。Zorua提供的整体虚拟化还有许多其他潜在用途,我们将在本文中介绍。
2018-02-07 cs.AR cs.DC
MPIX Stream: An Explicit Solution to Hybrid MPI+X Programming
混合MPI+X编程范式,其中X指的是线程或GPU,在高性能计算领域获得了突出地位。这与系统架构变得更加异构的趋势相对应。当前的MPI标准只指定了MPI和线程运行时之间的兼容性级别。应用程序不存在MPI概念或接口来显式地将线程上下文或GPU流上下文传递给MPI实现。这种缺乏使得性能优化在某些情况下变得复杂,在其他情况下变得不可能。我们在MPI中提出了一个新的概念,称为MPIX流,来表示X运行时中存在的一般串行执行上下文。MPIX流可以直接映射到线程或GPU执行流。将线程上下文传递到MPI允许实现将执行上下文精确地映射到网络端点。将GPU执行上下文传递到MPI允许实现直接对GPU流进行操作,从而降低CPU/GPU同步成本。
2022-08-30 cs.DC cs.PF
SlideDP: Scaling Host-Resident LLM Fine-Tuning Across Multiple GPUs
The Hong Kong University of Science and Technology (Guangzhou)(香港科技大学(广州));Beijing Academy of Artificial Intelligence(北京智源人工智能研究院)
SlideDP提出同步数据并行运行时,通过宿主机状态权威、通信解耦和流水线化,在共享宿主机多GPU上实现高效大语言模型微调,吞吐量优于现有系统。
2026-10-14 cs.DC cs.LG
Characterization of Request and Token Energy Costs for LLM Inference Workloads on GPU Platforms
该研究构建LLM推理分解能耗模型,在NVIDIA H100、H200 GPU上评估密集与MoE模型的能耗特征,发现需同时优化请求与令牌能耗,而非仅降低单位令牌能耗。
2026-08-31 cs.DC cs.LG cs.PF
GigaAPI for GPU Parallelization
GigaAPI是一个简化多GPU编程的用户空间API,通过抽象底层CUDA和C++复杂性提供全面功能,实验证明其能提升并行计算效率,推动GPU计算的普及。
2025-04-02 cs.AR cs.DC cs.PF
Efficient Strong Scaling Through Burst Parallel Training
MIT(麻省理工学院)
随着新兴深度神经网络(DNN)模型的规模不断增长,使用大型GPU集群来训练DNN正成为实现可接受的训练时间的基本要求。在本文中,我们考虑的情况下,未来的集群大小的增加将导致全球批量大小,可用于训练模型达到一个基本的限制:超过一定的点,更大的全球批量大小导致样本效率下降,增加整体时间的准确性。因此,为了进一步提高训练性能,我们必须考虑“强缩放”策略,保持全局批量大小不变,并将较小的批量分配给每个GPU。不幸的是,这使得有效地使用集群资源变得更加困难。我们提出了DeepPool,一个通过两个关键思想来解决这一效率挑战的系统。首先,突发并行性将大量GPU分配给突发中的前台作业,以利用跨层并行性的不均匀性。其次,GPU多路复用优先考虑前台训练作业的吞吐量,同时打包后台训练作业以回收未充分利用的GPU资源,从而提高整个集群的利用率。这两个想法使DeepPool能够在集群规模较大的情况下,通过单个任务实现比标准数据并行提高1.2 - 2.3倍的集群总吞吐量。
2022-05-23 cs.CV cs.DC cs.LG
Heterogeneous CPU+GPU Stochastic Gradient Descent Algorithms
University of California Merced(加州大学默塞德分校)
广泛采用的做法是使用专用硬件加速器训练深度学习模型,例如,GPU或TPU,由于其在线性代数运算上的卓越性能。然而,这种策略并没有有效地利用大量的CPU和内存资源--它们只用于预处理、数据传输和调度--这些资源在加速服务器上默认可用。在本文中,我们研究了异构CPU + GPU架构上的深度学习训练算法。我们的双重目标-同时最大化收敛速度和资源利用率-使问题具有挑战性。为了允许对设计空间进行原则性探索,我们首先介绍了一个通用的深度学习框架,该框架通过异步消息传递利用CPU和GPU之间的计算能力和存储层次结构的差异。通过实验的框架获得的见解的基础上,我们设计了两个异构异步随机梯度下降(SGD)算法。第一种算法-CPU + GPU Hogbatch-将CPU上的小批量与GPU上的大批量相结合,以最大限度地利用两种资源。然而,这会产生一个不平衡的模型更新分布,这阻碍了统计收敛。第二种算法-自适应Hogbatch-根据CPU和GPU的相对速度分配具有不断变化的大小的批次。这以可定制的利用率降低为代价来平衡模型更新率。我们表明,在拟议的CPU + GPU框架中实现这些算法,在几个真实数据集和两个计算架构(本地服务器和云实例)上实现了比TensorFlow更快的收敛和更高的资源利用率。
2020-04-19 cs.DB cs.DC cs.LG
Modular GPU Programming with Typed Perspectives
Massachusetts Institute of Technology(麻省理工学院);University of Pennsylvania(宾夕法尼亚大学)
针对GPU编程中线程级控制与集体操作协同的冲突导致模块化代码易出错的问题,提出带类型化视角的GPU语言Prism,可在不损失性能的前提下保障模块化编程的安全性。
2025-11-14 cs.DC cs.PL