🟢 🏥 实践应用 发布于: · 1 分钟阅读 ·

PyTorch:LinkedIn 将求解器 DuaLip 在 GPU 上加速 75 倍

编辑插图:LinkedIn 将求解器 DuaLip 在 GPU 上加速 75 倍

PyTorch 基金会发布了一则案例研究,介绍 LinkedIn 如何在 PyTorch 上重新架构其分布式线性规划求解器 DuaLip。新的 GPU 加速版本的迭代速度比原始 Scala 代码快达 75 倍,可求解包含数万亿决策变量的优化问题。

🤖

本文由人工智能基于一手来源生成。

PyTorch 基金会发布了一则案例研究,介绍 LinkedIn 如何在 PyTorch 上改造其分布式线性规划求解器 DuaLip,以求解极端规模的优化问题。原始工具依赖于绑定处理器的 Scala/Spark 栈,而新的 GPU 加速版本则命名为 DuaLip-GPU。

线性规划在 LinkedIn 上解决了什么问题?

线性规划(LP)是一种在给定约束下寻找最佳决策的数学方法。在 LinkedIn 上,它解决的问题是:在数百万或数十亿种可能性中,受约束条件下的最佳行动组合是什么?具体示例包括将职位与潜在候选人匹配、在排序和推荐中平衡多项业务指标,以及优化发送电子邮件的数量。这类问题涉及数亿用户和多达数万亿的决策变量。

加速是如何实现的?

PyTorch 实现依赖三项技术:对稀疏(sparse)张量的操作以处理数十亿到数万亿的变量;通过将变量分配到各 GPU 并以集合通信(all-reduce、broadcast)进行同步的分布式优化;以及行归一化和加速梯度下降(AGD/FISTA 变体)等收敛性改进。

结果如何?

该研究指出,在 8 个 GPU 上,每次迭代的实际耗时比原始 Scala 实现快达 75 倍,相较 CPU 系统实现了数量级的加速,并在多 GPU 上实现近乎线性的扩展。与此同时精度得以保持,这使 LinkedIn 能够「在以往无法实现的规模上进行生产级优化」。该实现已作为开源发布。

常见问题

什么是 DuaLip?
DuaLip 是 LinkedIn 的分布式线性规划求解器,最初构建于 Scala/Spark CPU 栈之上,现已在 PyTorch 上以 GPU 加速重新架构,命名为 DuaLip-GPU。
PyTorch 版本快多少?
在 8 个 GPU 上,PyTorch 求解器每次迭代的实际耗时比原始 Scala 实现快达 75 倍,并在多 GPU 上实现近乎线性的扩展。

📬 AI 新闻直达您的邮箱

按您的方式定制每日摘要——自选主题、来源和频率,一键退订。