← 返回 PaperDaily 视觉与图像

机器人优化告别单线程:jaxipm吞吐暴涨25倍

这篇论文把“单个问题慢慢解”改成了“很多问题一起解”,而且还是在GPU上批量跑非线性规划。对机器人、轨迹优化和模型预测控制来说,这种吞吐量思路很实用,属于把优化器从老式单机房,直接拎进了GPU流水线。

机器人优化告别单线程:jaxipm吞吐暴涨25倍
🐉 龙哥读论文知识星球来了!
公众号每日8篇拆解不够看?星球无上限更AI领域论文、资讯、招聘、招博、开源代码,一站式干货,每日2分钟刷完即赚!
👇扫码加入「龙哥读论文」知识星球,前沿干货、实用资源一站式拿捏~ xingqiu_header

龙哥推荐理由:
这篇论文把“单个问题慢慢解”改成了“很多问题一起解”,而且还是在GPU上批量跑非线性规划。对机器人、轨迹优化和模型预测控制来说,这种吞吐量思路很实用,属于把优化器从老式单机房,直接拎进了GPU流水线。


原论文信息如下:
论文标题:
Scaling Nonlinear Optimization: Many Problems One GPU
发表日期:
2026年06月
发表单位:
没有
原文链接:
https://arxiv.org/pdf/2606.26341v1.pdf
开源代码链接:
https://github.com/johnviljoen/jaxipm

GPU上的NLP求解器:从1到N的飞跃

非线性规划(NLP,Nonlinear Program)在机器人里几乎是“老熟人”了:轨迹优化、逆运动学、接触丰富的运动规划,很多最后都能写成一个带约束的最优化问题。过去这类问题通常交给 IPOPT 这样的成熟求解器来解,优点是约束处理硬、收敛性质稳,缺点也很现实——它们大多跑在 CPU 上,而且一次只解一个问题。这就像一位老师傅拿着老算盘,算得准,但一题一题慢慢来;而现代机器人和学习系统已经开始用 GPU 批量“开工”,老算盘自然就显得有点跟不上节奏了。
这篇论文的核心目标很直接:把“NLP 求解器”从“单线程手工活”改造成“GPU 批处理流水线”。作者提出的 jaxipm,号称是首个 GPU-batched NLP solver,基于 IPOPT 的思想重写,并且用 JAX 实现。它不是单纯把某个矩阵乘法搬上 GPU,而是把整个求解流程重新设计成适合并行执行的形态。说白了,不是给老房子换个灯泡,而是直接把老房子推平,按 GPU 的规矩重盖一座。
封面
图1:论文封面图。它最想表达的不是“单个问题跑得多快”,而是“很多问题能不能一起跑”。这就是 jaxipm 的故事主线。

机器人NLP求解的瓶颈:CPU上的单线程困境

先把基础概念捋顺:NLP 不是“自然语言处理”,这里是“非线性规划”。它的意思是,目标函数和约束里都允许出现非线性关系。机器人里最常见的场景之一,就是模型预测控制(MPC)或者非线性模型预测控制(NMPC,Nonlinear Model Predictive Control)。给定当前状态,求未来一段时间内的最优控制序列,让机器人既别撞墙,又别发疯,还得尽量优雅地到达目标。
问题在于,传统 NLP 求解器虽然“稳”,但它们的执行逻辑很像一位谨慎到有点啰嗦的老司机:先试一步,发现不对就回退;线性化不准,就做二阶修正;不行就恢复可行性;再不行就切换策略。每个问题在每一步都可能走不同的分支。单个问题时,这种复杂控制流是鲁棒性的来源;一旦把一批问题塞进 GPU,麻烦就来了:GPU 最喜欢大家动作整齐划一,最烦每个线程都各走各的岔路。于是,CPU 上的单问题优化器GPU 上的批量并行之间,就出现了明显的结构冲突。
论文里给出的背景公式也很经典。对带边界和等式约束的 NLP,作者先写出带对数障碍项的目标:
图2:障碍函数目标
图2:障碍函数形式。这里的 μ 是障碍参数,越往后越小;两项对数分别对应上下界,作用是把变量“拴”在可行区间里。它的直觉很简单:别越界,越界就罚你,而且罚得很优雅。
再配上拉格朗日函数:
图3:拉格朗日函数
图3:拉格朗日函数把目标、等式约束和边界约束统一到一个表达式里。yc 是等式约束乘子,zLzU 分别对应下界和上界的乘子。它们一起构成了 IPOPT 的“主舞台”。

打破瓶颈:jaxipm的异构迭代融合与迭代级批处理

jaxipm 的第一招叫 异构迭代融合。名字听着像武侠小说里的绝学,实际思路却很朴素:既然一批问题在同一轮迭代里可能走不同分支,那就干脆把这些分支都“摊平”成同一种迭代体。原来 IPOPT 会根据当前状态决定走回溯线搜索、二阶修正、可行性恢复、微小步长接受、障碍参数切换等不同路径;jaxipm 则把这些分支拆成两部分:共享计算分支特有计算。共享的先批量算,特有的也尽量统一算完,再按条件选结果。
图4:jaxipm整体流程
图4:jaxipm 的整体思路。不同颜色代表不同优化问题,它们在同一轮里可能走不同分支,但被统一成同一个批处理迭代体。这样 GPU 才不会因为“大家想法不一致”而集体摸鱼。
第二招叫 迭代级批处理。传统批处理常常是“等这一批都解完,再开下一批”,这会让快的样本陪慢的样本一起罚站。jaxipm 不这么干,它在每次迭代边界检查谁已经收敛,收敛的就立刻热重启一个新问题顶上来,没收敛的继续往前走。这样 GPU 的流水线不会因为少数慢问题而空转,吞吐量自然就上来了。
图5:迭代级批处理与求解级批处理对比
图5:左边是求解级批处理,快的任务也要等慢的任务;右边是迭代级批处理,完成的任务立刻换新,GPU 几乎不空转。这个差别,像极了“整桌人等最后一道菜”和“先吃完先走”的区别,效率完全不是一个量级。
如果把它写成流程,大概就是这样:
    输入一批非线性规划问题
    对每个问题初始化原始-对偶变量
    重复直到所有问题都完成:
        1. 统一计算共享量:梯度、雅可比、海森矩阵、KKT 系统等
        2. 对所有可能分支并行计算所需量
        3. 根据每个问题的状态选择对应分支输出
        4. 在迭代边界检查收敛情况
        5. 已收敛问题热重启新实例,继续占用批处理槽位
    输出整批最优解
    这套设计的关键,不是“把一切都并行化”这么简单,而是尽量保留 IPOPT 原本的数值稳健性,同时把控制流改造成 GPU 友好的统一执行模式。换句话说,它不是把算法精神阉割掉,而是给它换了个更会跑 GPU 的身体。

    性能验证:四旋翼NMPC任务上的显著加速

    作者用四旋翼 NMPC 作为验证平台,原因很合理:四旋翼动力学是非线性的,而且状态、控制、约束都不算简单,足够把求解器的脾气试出来。实验里包含三类任务:带障碍的参考跟踪、多个四旋翼的协同避碰交换位置、以及不同初始分布下的导航任务。它们共同指向一个问题:在机器人场景里,批量求解很多个“同构但参数不同”的 NLP,到底能不能真正跑起来
    图6:批量导航任务分布
    图6:批量导航任务的俯视图。左、右两种初始分布分别对应 90° 和 180° 的初始位置弧段,底部是对应的迭代次数分布。这个图很能说明问题:不同样本虽然结构一样,但难度可以明显不同,这正是迭代级批处理能发挥作用的地方。
    图7:时间变化障碍下的参考跟踪
    图7:时间变化障碍下的参考跟踪任务。作者改变参考速度 来提升难度,速度越高,问题越“拧巴”。即便如此,jaxipm 仍然保持了稳定的吞吐表现,说明它不是只会在“简单题”上刷分。
    图8:多四旋翼协同任务
    图8:多四旋翼协同任务。2 架和 4 架四旋翼都要交换位置,还得始终保持最小安全距离。这个任务把“维度变大”和“约束变多”一起端上来了,算是对求解器的双重拷问。
    实验结果里最醒目的,是吞吐量。论文给出的表格显示,在 90° 和 180° 两种导航场景下,jaxipm 的求解吞吐量分别达到 25.25×24.74× 的提升,相比 IPOPT 是非常实在的加速。更有意思的是,MadNLP 虽然也做了 GPU 加速,但它主要加速的是线性代数部分,算法逻辑仍在 CPU 上,因此吞吐优势并没有被彻底释放出来。
    表格1:吞吐量结果
    表格1:不同求解器在导航任务上的吞吐量对比。可以看到 jaxipm 在 solves/s 上明显领先,说明“把很多问题一起解”不是口号,而是能写进数字里的收益。
    表格2:难度变化下的吞吐量结果
    表格2:参考跟踪任务在不同速度设置下的吞吐量结果。难度增加后,jaxipm 仍能维持比较稳定的加速,说明它对问题难度的适应性不错。
    表格3:维度变化下的吞吐量结果
    表格3:多四旋翼任务在 2 架和 4 架四旋翼下的吞吐量结果。随着维度上升,GPU 显存压力变大,批大小变小,因此加速比会下降,但仍明显优于 CPU 基线。
    表格4:多四旋翼任务逐问题吞吐量与质量
    表格4:多四旋翼协同问题的逐问题吞吐量与解质量。它说明一个关键点:不等于,jaxipm 的解质量仍保持在可接受范围内。

    数值一致性:与IPOPT的逐迭代步级比对

    很多 GPU 加速方法最怕一句话:“快是快了,但结果是不是已经变味了?” 这篇论文专门做了一个正确性验证,思路很老实:找一个特别难的起点,让 IPOPT 从头收敛,并把每一步的状态都存下来;再把同样的状态喂给 jaxipm,比较它们在每个迭代步上的差异。这样不是只看最终答案像不像,而是直接看“走路姿势”像不像。
    作者定义的逐步差异为:
    图9:逐步差异度量
    图9:逐步差异度量。这里比较的是 jaxipm 和 IPOPT 在同一迭代类型下的变量差异,分母加上 1 是为了避免数值太小的时候分数爆炸。这个指标的意思很直接:如果它接近 0,说明两者在数值轨迹上基本一致。
    图10:逐步差异的经验累积分布
    图10:jaxipm 与 IPOPT 的逐步差异经验累积分布。不同颜色表示不同迭代类型。这个图的重点不是“有没有一点点误差”,而是大多数步的误差都很小,说明异构迭代融合并没有把数值行为搞得面目全非。
    这部分实验很关键,因为它回答了一个本质问题:把控制流统一成批处理之后,会不会损失 IPOPT 原本的数值特性?从结果看,作者给出的逐步比对表明,jaxipm 在多数迭代类型上都能保持和 IPOPT 很接近的轨迹。也就是说,它不是靠“换个算法名字”强行提速,而是在尽量保留原算法行为的前提下,把执行方式改造成 GPU 友好型。

    总结与展望:开启批处理NLP求解的新时代

    这篇论文最有意思的地方,不是又做了一个“更快的优化器”,而是提出了一个很明确的方向:NLP 求解器也可以像深度学习一样批量化、GPU 化、流水线化。过去机器人里,学习方法之所以在 GPU 时代一路狂奔,很大程度上是因为它们天然适合批量算;而优化方法虽然精度和约束处理更强,却常常被单线程 CPU 卡住。jaxipm 试图把这道墙拆掉。
    当然,它也不是“无敌版”。论文自己也承认,随着问题维度变大,GPU 显存压力会让批大小下降,加速比会被压一截;此外,这类方法目前主要适合结构相近、参数不同的批量问题。也就是说,它特别适合机器人批量轨迹优化、数据生成、仿真训练这些场景,但如果是单个极其复杂、结构多变、实时要求又苛刻的问题,仍然需要进一步打磨。
    从更大的图景看,这项工作给很多“优化+学习”的系统提供了一个很有价值的接口:如果优化器也能像神经网络一样批量跑,那么大规模数据生成、策略蒸馏、闭环控制调参,都会更顺手。换句话说,jaxipm 不是把优化从 CPU 搬到 GPU 这么简单,而是在尝试把“优化”重新接入现代机器人和学习框架的主干通道。这个方向,确实值得继续往下挖。😊

    龙迷三问

    下面是龙哥对于大家可能的一些问题的解答:

    这篇论文到底解决什么问题?它解决的是“非线性规划求解器在 GPU 上只能慢慢一个一个解”的瓶颈。jaxipm 通过异构迭代融合和迭代级批处理,让很多 NLP 可以在一块 GPU 上并行推进,特别适合机器人这类需要批量求解的场景。

    “异构迭代融合”是什么意思?意思是把原来会因为不同问题状态而分叉的控制流,尽量统一成一个批处理迭代体。共享计算先一起做,分支特有计算也统一算完再选择结果,避免 GPU 因为线程分歧而效率下降。

    它和 IPOPT 是什么关系?jaxipm 是基于 IPOPT 思想重写的 GPU-batched 求解器,不是另起炉灶。论文还做了逐迭代数值比对,说明它在很多迭代类型上与 IPOPT 保持了较强的一致性。

    如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

    龙哥点评

    论文创新性分数:★★★★☆

    把“单问题、CPU、顺序执行”的成熟 NLP 求解器,重构成“多问题、GPU、批处理”的系统,这个方向很新,而且不是简单工程搬运。

    实验合理度:★★★★☆

    用了四旋翼 NMPC 这种典型且足够刁钻的任务,还做了吞吐、难度、维度和逐步一致性验证,实验链条比较完整。

    学术研究价值:★★★★☆

    它为“优化器如何进入 GPU 批处理时代”提供了清晰路线,对机器人与优化交叉领域很有启发。

    稳定性:★★★☆☆

    从 IPOPT 继承了较强的数值鲁棒性,但批处理、显存和分支统一都会带来工程复杂度,离“随便塞进任何系统就能稳跑”还有距离。

    适应性以及泛化能力:★★★☆☆

    对结构相似、参数不同的一批 NLP 很合适,但对结构差异很大或强实时单实例场景,优势会打折。

    硬件需求及成本:★★★☆☆

    需要 GPU 和足够显存,问题维度一上来批大小就受影响;但一旦场景合适,吞吐收益很可观。

    复现难度:★★★★☆

    作者开源了代码,复现门槛不算离谱;不过要完整复现性能,还得有合适的 GPU 环境和对应依赖。

    产品化成熟度:★★★☆☆

    更像是面向研究和批量优化工作流的基础设施,适合数据生成、仿真训练、离线规划;要进实时产品,还得看任务结构、显存和工程集成。

    可能的问题:思路很漂亮,但对显存、批大小和任务同构性依赖明显;更像“批量优化时代的开门砖”,还不是万能钥匙。


    主要参考文献

    [1] Viljoen J, Haffner J, Tomizuka M, Mehr N. Scaling Nonlinear Optimization: Many Problems One GPU. arXiv, 2026.
    [2] jaxipm 开源代码:https://github.com/johnviljoen/jaxipm

    *本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!       

    end
    欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。
    『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群
    wechat_helperdianzan
    转发文章 微博 X LinkedIn Facebook
    龙哥读论文 · PaperDaily

    本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。