模拟/建模/设计

NVIDIA cuDSS 库推动美国电网优化无障碍发展

随着电力需求不断增长,电网的电力系统优化(PSO)对于确保高效的资源管理、可持续性和能源安全至关重要。

东部互联是北美的主要电网,由大约 70,000 个节点组成 (图 1)。除了规模庞大之外,此类电网的优化还因灾难性天气事件和发电中断等不确定性而变得复杂。

PSO 通常涉及解决大规模非线性优化问题,例如交变电流最优功率流(ACOPF)模型,这些模型通常包含数百万个变量和约束。实时获得准确的结果对于保持电网稳定性和效率至关重要,但这是一项极其困难的任务。

Sungho Shin 教授 (MIT)、François Pacaud 教授 (MINES Paris – PSL) 和博士后研究员 Alexis Montoison (ANL) 一直在开发非线性优化算法和求解器,这些算法和求解器使用 NVIDIA 工具来解决大规模 PSO 和其他复杂的非线性优化问题。

他们最近发表的论文 《在 GPU 上进行非线性编程的凝聚空间方法》利用 NVIDIA cuDSS (Direct Sparse Solver) 库和 NVIDIA Grace Hopper Superchip 等高内存 GPU,以前所未有的规模解决问题。

解决非线性优化问题 

大规模、稀疏、受限问题(如 PSO)非线性优化主要使用内部点方法解决。IPOPT、KNITRO 和 MadNLP 等求解器通过计算步长方向迭代地搜索解决方案,其中包括求解一系列 Karush-Kuhn-Tucker(KKT)系统,并通过行搜索标准确定步长(图 2)。

KKT 系统条目(目标和约束的导数)及其评估和 KKT 系统的数值解的计算量很大,通常委托给外部库执行。导数评估由具有自动微分功能的代数建模系统(AMPL、Pyomo 或 JuMP.jl)处理,而 KKT 系统则使用稀疏线性求解器(Pardiso、MUMPS 或 HSL)求解。

 A diagram shows the primary steps of an interior-point solver for nonlinear optimization problems, including problem formulation, Newton’s step computation, and line search. Algebraic modeling systems such as ExaModels, nonlinear optimization solvers such as MadNLP, and sparse linear solvers such as NVIDIA CUDA are shown.
图 2、使用内部点法计算非线性优化问题的标准工作流程 

内部点算法的主要瓶颈是解决 KKT 系统,这些系统通常是大型、稀疏和条件不良的。由于难以为迭代线性求解器设计预处理器,直接求解器成为获得 KKT 系统足够准确的解的首选工具。

在传统实现中,常用于使用 LBLᵀ分解的稀疏求解器,例如 libHSL 集合中的 MA27 和 MA57 线性求解器。虽然加速并行计算在加速大规模优化方面具有巨大潜力,但高效的直接稀疏求解器对于 GPU 来说一直是难以实现的。

NVIDIA cuDSS 等库专注于解决这些差距。

使用 cuDSS 为大规模 PSO 求解器提供支持 

得益于 MadNLP 程序中可以利用新 cuDSS 库的突破,现在可以实现内部点方法的高效 GPU 实现。MadNLP 使用精简的 KKT 程序(lifted 和 hybrid),将问题重新表述为稀疏正定系统,而不是最初的无限系统。

然后,cuDSS 可以在 GPU 上高效地分解和求解压缩的 KKT 系统,从而显著提高大规模非线性优化的性能。

Sungho、François 和 Alexis 利用这些功能开发了一套全面的软件套件,可完全在 NVIDIA GPU 上运行非线性优化。此套件包括用于代数建模和自动微分的 ExaModels,以及用于实现内部点方法的 MadNLP,后者使用提升和混合 KKT 系统策略(图 2)。

这套工具为 PSO 问题带来了巨大的加速,其规模足以对整个东部互连进行建模,节点数量超过 70K 个,对应 674K 的维度系统。借助 NVIDIA A100 GPU 加速工作流程中的 ExaModels、MadNLP 和 cuDSS 部分,首次实现了针对这种规模问题的实时解决方案 (不到 20 秒)。这表明计算屏障不再抑制整个东部互连的实际 PSO。

A bar chart shows the GPU-accelerated implementation resulted in more than a 10x speedup on the A100 GPU, from >3 min on other GPUs to <20 seconds in real time.
图 3、为拥有超过 70K 个节点 (对应于超过 674K 的维度系统) 的网格的 PSO 提供解决方案所需的时间

与之前在 AMD EPYC 7443 CPU 上采用的先进技术相比,他们的 GPU 加速实现了 10 倍以上的加速(图 3)。通过将基于 CPU 的 HSL MA27 线性求解器替换为 cuDSS,数值分解和三角求解步骤的速度提高了 30 倍。

实现这些加速的部分原因是 KKT 程序特别适用于 cuDSS。它们呈现固定的稀疏模式,确保在预处理阶段只需执行一次昂贵且具有挑战性的并行符号分析步骤。然后,算法的其余部分仅依赖于高效的 cuDSS 重构例程。

借助 NVIDIA GH200 重新定义 PSO 的极限 

PSO 的一些重要应用涉及复杂度更大的问题,例如具有数百万个变量和约束的问题。例如,多周期表述有助于预测未来电力需求,而安全受限的表述有助于通过应急规划确保国家基础设施的可靠性。

这些问题非常庞大且复杂,需要在加速计算硬件方面取得突破才能变得易于处理。

NVIDIA Grace Hopper 超级芯片 (GH200)使 MadNLP 能够解决以前认为棘手的问题。最近的一份出版物展示了如何需要 GH200 来解决具有超过 10M 个变量(图 4)和约束的多周期优化问题,以及 576 GB 统一内存(480-GB CPU 加 96-GB GPU)带来的优势。

对于小问题实例,由于向 GPU 传输数据的开销,CPU 的速度更快。

A point graph of solution time by nvars shows that Grace Hopper enables solutions at scale greater than can fit in a single GPU memory.
图 4、Grace Hopper 超级芯片的统一内存

研究结果极具突破性,作者表示:“我们预计,具有统一内存的 CPU/GPU 系统 (如 NVIDIA GH200) 将在不久的将来成为主流硬件,并提供更高的 RAM 容量。这些进步可以为电力市场运作提供强大的计算工具。”

加速新一代能效 

Sungho、François 和 Alexis 在实际解决具有挑战性的 PSO 问题方面已经取得了巨大进步。他们计划继续努力,提高求解器的数值精度和健壮性。

他们正在开发新的求解器 MadNCL,该求解器使用 MadNLP 解一系列子问题,以最小化增强拉格朗日量。这一方法展示了在优化过程中提高准确性和对退化的鲁棒性的巨大前景。

这些新方法继续依赖于 cuDSS 和 NVIDIA GPU 快速发展的功能,包括通过多 GPU 多节点支持扩展以解决更大问题的能力。

开始使用 cuDSS 

您可以下载早期访问版的 cuDSS 库 ,开始加速您的应用程序。有关 cuDSS 功能的更多信息,请参阅 NVIDIA cuDSS (预览版):用于直接稀疏求解器的高性能 CUDA 库 。如需详细了解可与 cuDSS 结合使用的其他数学库,请参阅 CUDA-X GPU 加速库

如果您对 PSO 和其他 GPU 加速的非线性优化应用程序感兴趣,请探索 ExaModels MadNLP GitHub 资源库。

对于实际部署,了解 Honeywell 如何将 cuDSS 集成到 UniSim Design 中, 实现高达 78 倍的性能提升

 

标签