NVIDIA Warp

Differentiable Spatial Computing for Python

NVIDIA Warp is an open-source developer framework for building and accelerating data generation and spatial computing in Python. Warp gives coders an easy way to write GPU-accelerated, kernel-based programs for simulation AI, robotics, and machine learning (ML). With Warp, Python developers can create GPU-accelerated, 3D simulation workflows that drive ML pipelines in PyTorch, JAX, PhysicsNeMo, and NVIDIA Omniverse™Benefits include simulation performance equivalent to native CUDA® code, with the convenience and developer productivity of Python.

Download Now

Key Features

Kernel-Based Code

NVIDIA Warp performs a just-in-time (JIT) runtime compilation of Python functions to x86 and CUDA® kernel-level code. Kernel-based programming provides a low-level abstraction that maps closely to GPU hardware, and, in contrast to tensor-based programming, provides implicit kernel fusion (controlled by the user), fine-grained control over threads, native support for conditional logic, and sparse scatter and gather.

Learn more

Differentiable Programming

In addition to generating forward-mode kernel code, Warp can generate reverse-mode (adjoint) kernels that propagate the gradients of simulation results back into frameworks, such as PyTorch and JAX for network training, design optimization, and parameter estimation.

Learn more

Built for Spatial Computing

Warp includes built-in functionality to enable 3D simulation and geometry processing. In addition to a rich spatial math library, Warp provides higher-level data structures, such as meshes, hash grids, and sparse volumes (NanoVDB) for GPU-accelerated geometric queries.

Learn more

See NVIDIA Warp in Action

Many Python developers are using Warp today. In Omniverse, groups are using Warp for digital humans, physics simulation, and procedural animation. Warp includes several higher-level data structures that make implementing simulation and geometry processing algorithms easier.

Meshes

Triangle meshes are ubiquitous in simulation and computer graphics. Warp provides a built-in type for managing mesh data that supports geometric queries, such as closest-point, ray-cast, and overlap checks.

Sparse Volumes

Sparse volumes are incredibly useful for representing grid data over large domains, such as signed distance fields (SDFs) for complex objects, or velocities for large-scale fluid flow. Warp includes support for sparse volumes defined using the NanoVDB standard.

Hash Grids

Many particle-based simulation methods, such as the discrete element method (DEM) or smoothed particle hydrodynamics (SPH), involve iterating over spatial neighbors to compute force interactions. Hash grids are a well-established data structure to accelerate these nearest-neighbor queries and are particularly well-suited to the GPU.

 A quadrotor drone being simulated and controlled using NVIDIA Warp.

Robotics

In this example, Warp is used to simulate the dynamics of a quadrotor drone using the AirSim aerodynamics model. Through Warp’s differentiable simulation capabilities, users can write model-based predictive controllers (MPC) to optimize the drone’s trajectory with loss functions that take into account obstacles and target goals.

img-aAn aerodynamic flow simulation around a vehicle using NVIDIA Warp. lt-text

Simulation

Here, you can see Warp being used to create an incompressible flow solver for aerodynamics simulation around a vehicle. Warp provides built-in support for multidimensional arrays and sparse collision fields via NanoVDB to accurately represent the vehicle’s collision geometry.

imgAn example of differentiable simulation for initial value alt-text

Training and Optimization

We can also use Warp to solve initial value problems. Thanks to Warp’s differentiable kernels, we’re able to simulate the trajectory of the ball and obtain gradients with respect to the initial velocity. These gradients can then be used in PyTorch or JAX to optimize the trajectory and hit the target after a few seconds.

A synthetic image generation pipeline written in NVIDIA Warp.

Data Generation

Warp enables accelerated data generation and processing in Python. In this example, Warp kernels are used to generate procedural image data as part of an Omniverse synthetic data generation (SDG) pipeline.


Accelerate CAE Tool Development

Warp is enabling computer-aided engineering (CAE) industry developers to accelerate physics-based CAE simulations and embrace real-time interactive design using AI-enabled digital twins. Warp gives coders an easy way to write kernel-based programs for CAE and machine learning. Warp supports PyTorch, JAX, PhysicsNeMo, and NVIDIA Omniverse.

Learn More

Introducing Newton, the Next-Generation Open-Source Physics Simulation Engine

Newton is a collaboration between NVIDIA, Google DeepMind, and Disney Research to develop a new open-source physics engine. Built on NVIDIA Warp, Newton is optimized for robotics and compatible with learning frameworks such as MuJoCo Playground or NVIDIA Isaac™ Lab.

Learn More

Credit: Walt Disney Imagineering

Resources

Visit Github to download the latest version of NVIDIA Warp software.

Download Now

  翻译: