Nvidia-Newton物理仿真引擎记录

1. 前言

砚上三五笔,落墨鹧鸪啼

本文用于记录:Nvidia-新物理仿真引擎Newton。
笔者梦到哪里写到 哪里。。。😃
如有不对,欢迎评论区指正!

2. 正文

2.1 overview

img_v3_02ri_0eb8cab2-eca2-41b6-a356-82fce57a70ag

2.2 Warp

  • Nvidia Warp

  • Cuda直接调用C,CPP接口,Warp提供了API for Cuda调用。
    “Tile-based”是一个在游戏开发、图形学和地理信息系统等领域广泛使用的技术和设计理念。它的核心思想是:将一个大而连续的空间或图像,分割成许多个小的、规则排列的、可重复使用的单元,这些单元就叫做“Tile”(图块)。

  • standalone 自包含的,独立的,这种方法包含环境的全部(isaaclab里面的文件夹名称)

  • 可修改底层的kernel实现更好的solver结构

  • Warp重新包装了PhyX的Cpp的形式。
    img_v3_02ri_f8331f5a-ed84-4253-a4c6-5042e8a23e1g

2.3 pipeline

img_v3_02ri_c49f6bc5-924a-41e1-bc07-90a6b871bcdg

2.5 Contact solver

  • 最早Phyx基于JAX,这种tensor-based的方法实现。
  • warp基于kernel的GPU加速的计算模式。
@warp的装饰器

2.7 Newton Solvers

其实包含很多的solver,这是一个泛称。canonical的solver实现。是一个很ganeral的solvers,包含了很多的solver。

  • VBD solver。Vertex Block Descent Solver
    将顶点分组成块去加速优化和仿真。

  • Implicit MPM Solver
    高效的模拟连续介质的、流体与固体耦合等的场景。比如沙子,雪等。

  • Style3D Solver
    布标仿真的solver,针对布料的仿真优化。

  • 多solver的coupling的情况。

2.8 Isaac lab集成

  • --headless --newton_visualizer
    去调用,基于OPENGL的简化界面。

2.9 时间线

  • 2025。9月,发布支持Mujoco Warp-GA的Release,Neural Solver
  • 2026.3 发布Newton 1.0, 和Isaac Lab 3.0 Release,kamino求解器的实现。(Disney Research的贡献)。

3. 后记

Q&A

  • 是不是只有仿真越真实,机器人的模型部署和真实的效果才会越来越好??
  • DGX Spark的AI,是Arm版本的,Neural solver目前还没有完整的论文等的集成。NERD
  • 和Phyx 的区别

只能说Physics X对大场景的集成,而Newton在GPU并行优化上有所提升,精细化操作也更好(他自己说的)。最早的集成会在Isaac Lab。

  • kamino solver目前还没有开源。
  • openGl的solver是没有RTX的依赖的,但是如果达到比较逼真得效果就还需要Ominverse得底层的一些库,如果任务需要一些渲染,就需要RTX core的显卡,不需要 渲染的话就不必使用。
  • Newton的数据结构都是使用的Warp Array,这是里面的数据结构。Fabric一般指USD里面渲染的一些状态。
  • Mujoco支持Tendon的支持。
  • 软体接触可以仿真静摩擦力吗?可以。
  • 未来sim2sim的验证,是不是有望在Newton上做,而不是在mujoco或者Gazebo上。
  • 多面片的mesh的地形仿真。
  • Newton支持肉体和流体的仿真吗?支持。
  • 不同的物理建模,底层的偏微分方程的,通过数值迭代的方法区求解一些方程。所以不可避免得要实现偏微分方程的求解。
  • 先和Isaac Lab进行集成后再进行isaac sim的集成。。。。。
  • 如果Newton支持可微分,后面有可微分的solver的支持,比如碰撞的反传。有使用Warp 可微分的性质加快强化学习的policy的收敛????
  • Mujoco是不支持可微分的?
  • Warp和TensorRT有区别吗?

这是 TensorRT 最核心、最有效的优化手段。
问题:一个神经网络由许多细小的操作(层)组成,如卷积、激活函数(ReLU)、偏置加法等。如果每个操作都单独启动一个 GPU 内核,会产生大量的内核启动开销和内存读写操作。
解决方案:TensorRT 会分析计算图,将多个相邻的、可以合并的操作融合成一个单一的、更复杂的 GPU 内核。

下面是一些常见的实现的步骤:

步骤。导出模型:从你的训练框架(PyTorch, TensorFlow等)中将模型导出为一个中间格式,最常用的是 ONNX。
构建优化引擎:
使用 TensorRT 的 Builder 读取 ONNX 模型。
Builder 会执行上述的所有优化操作(图融合、精度校准等)。
最终生成一个高度优化的、序列化后的文件,称为 TensorRT 引擎(.engine 文件)。这个引擎是特定于你的目标 GPU 模型和 TensorRT 版本的。
部署推理:
在你的应用程序中,加载这个 .engine 文件。
创建一个 TensorRT Runtime 实例。
将输入数据送入引擎,执行推理,并获得输出结果。

不用tensorRT的话,模型的推理速度会更慢。

  • kamino solver是针对铰链机器人的,以及支持一些并联结构的机器人仿真。(Disney Research的研究)。
  • Newton主要在GPU加速上通过Warp框架的集成来提升性能。物理精度上有一些明显的提升。PhysX不支持多粒子的仿真,但是Newton支持。
  • Newton的solver相比于mujoco的软体、布料等仿真,以及未来集成进来disney research的kamino solver的支持并联 结构的solver,但是mujoco的solver还是对铰链的结构仿真更好。
  • 支持土壤参数吗?MPM solver的土壤的参数的模拟。
  • 灵巧手的接触力的solver的 IPC solver 北京大学开源 的灵巧手接触力。

To be continued....

posted @ 2025-10-30 18:51  泪水下的笑靥  阅读(111)  评论(0)    收藏  举报