This patch release primarily contains bug fixes as expected.
However, to support the adoption of Warp by the MuJoCo MJX physics engine, it also includes new features and deprecations limited to the jax_experimental
module. We are flagging this deviation from our standard versioning practices to ensure clarity. Normal versioning practices will resume with the next release.
Full Changelog
Deprecated
- This is the final release that will provide builds for or support the CUDA 11.x Toolkit and driver. Starting with v1.9.0, Warp will require CUDA 12.x or newer.
- Deprecate the
graph_compatible
boolean flag injax_callable()
in favor of the newgraph_mode
argument withGraphMode
enum (#848).
Added
- Add documentation for creating and manipulating Warp structured arrays using NumPy (#852)
- Add documentation for
wp.indexedarray()
(#468). - Support input-output aliasing in JAX FFI (#815).
- Support capturing
jax_callable()
using Warp via the newgraph_mode
parameter (GraphMode.WARP
), enabling capture of graphs with conditional nodes that cannot be used as subgraphs in a JAX capture (#848).
Fixed
- Fix
tape.zero()
to correctly reset gradient arrays in nested structs (#807). - Fix incorrect adjoints for
div(scalar, vec)
,div(scalar, mat)
, anddiv(scalar, quat)
, and other miscellaneous issues with adjoints (#831). - Fix a module-hashing issue for functions or kernels using static expressions that cannot be resolved at the time of declaration (#830).
- Fix a bug in which changes to
wp.config.mode
were not being picked up after module initialization (#856). - Fix a bug where CUDA modules could get prematurely unloaded when conditional graph nodes are used.
- Fix compile time regression for kernels using matmul, Cholesky, and FFT solvers by upgrading to libmathdx 0.2.2 (#809).
- Fix potential uninitialized memory issues in
wp.tile_sort()
(#836). - Fix
wp.tile_min()
andwp.tile_argmin()
to return correct values for large tiles with low occupancy (#725). - Fix codegen errors associated with adjoint of
wp.tile_sum()
when using shared tiles (#822). - Fix driver entry point error for
cuDeviceGetUuid
caused by using an incorrect version (#851). - Fix an issue that caused Warp to request PTX generation from NVRTC for architectures unsupported by the compiler (#858).
- Fix a regression where
wp.sparse.bsr_from_triplets()
ignored theprune_numerical_zeros=False
setting (#832). - Fix missing cloth-body contact in
wp.sim.VBDIntegrator
withhandle_self_contact=False
(#862). - Fix a bug causing potential infinite loops in the color balancing calculation (#816).
- Fix box-box collision by computing the contact normal at the closest point of approach instead of at the center of the source box (#839).
- Fix the OpenGL renderer not correctly displaying colors for box shapes (#810).
- Fix a bug in
OpenGLRenderer
where meshes with differentscale
attributes were incorrectly instanced, causing them all to be rendered with the same scaleOpenGLRenderer
(#828).