Skip to content

Commit

Permalink
Merge branch 'ershi/bump-version-1.4' into 'main'
Browse files Browse the repository at this point in the history
Update version and changelog for 1.4.0

See merge request omniverse/warp!768
  • Loading branch information
shi-eric committed Oct 1, 2024
2 parents 1701ee3 + ca955d9 commit a8f59c5
Show file tree
Hide file tree
Showing 9 changed files with 162 additions and 16 deletions.
10 changes: 5 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CHANGELOG

## [Unreleased] - 2024-??
## [1.4.0] - 2024-10-01

### Added

Expand All @@ -10,7 +10,7 @@
in high-priority streams over pending work in low-priority streams when possible
([docs](https://nvidia.github.io/warp/modules/concurrency.html#stream-priorities)).
- Adaptive sparse grid geometry to `warp.fem` ([docs](https://nvidia.github.io/warp/modules/fem.html#adaptivity)).
- Support for `wp.kernel` and `wp.func` closures.
- Support for defining `wp.kernel` and `wp.func` objects from within closures.
- Support for defining multiple versions of kernels, functions, and structs without manually assigning unique keys.
- Support for default argument values for user functions decorated with `wp.func`.
- Allow passing custom launch dimensions to `jax_kernel()` ([GH-310](https://github.com/NVIDIA/warp/pull/310)).
Expand All @@ -19,7 +19,6 @@
- Support `wp.mod()` for vector types ([GH-282](https://github.com/NVIDIA/warp/issues/282)).
- Expose the modulo operator `%` to Python's runtime scalar and vector types.
- Support for fp64 `atomic_add`, `atomic_max`, and `atomic_min` ([GH-284](https://github.com/NVIDIA/warp/issues/284)).
- Support for local vec/mat/quat component gradient tracking in backwards mode.
- Support for quaternion indexing (e.g. `q.w`).
- Support shadowing builtin functions ([GH-308](https://github.com/NVIDIA/warp/issues/308)).
- Support for redefining function overloads.
Expand Down Expand Up @@ -65,14 +64,14 @@
- Fix code generation errors when overloading generic kernels defined in a Python function.
- Fix issues with unrelated functions being treated as overloads (e.g., closures).
- Fix handling of `stream` argument in `array.__dlpack__()`.
- Fix some bugs related to module hashing and caching.
- Fix a bug related to reloading CPU modules.
- Fix a crash when kernel functions are not found in CPU modules.
- Fix conditions not being evaluated as expected in `while` statements.
- Fix printing Boolean and 8-bit integer values.
- Fix array interface type strings used for Boolean and 8-bit integer values.
- Fix initialization error when setting struct members.
- Fix Warp not being initialized upon entering a `wp.Tape` context.
- Use `kDLBool` instead of `kDLUInt` for DLPack interop of Booleans.

## [1.3.3] - 2024-09-04

Expand Down Expand Up @@ -1136,7 +1135,8 @@

- Initial publish for alpha testing

[Unreleased]: https://github.com/NVIDIA/warp/compare/v1.3.3...HEAD
[Unreleased]: https://github.com/NVIDIA/warp/compare/v1.4.0...HEAD
[1.4.0]: https://github.com/NVIDIA/warp/releases/tag/v1.4.0
[1.3.3]: https://github.com/NVIDIA/warp/releases/tag/v1.3.3
[1.3.2]: https://github.com/NVIDIA/warp/releases/tag/v1.3.2
[1.3.1]: https://github.com/NVIDIA/warp/releases/tag/v1.3.1
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ the `pip install` command, e.g.

| Platform | Install Command |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Linux aarch64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.3.3/warp_lang-1.3.3+cu11-py3-none-manylinux2014_aarch64.whl` |
| Linux x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.3.3/warp_lang-1.3.3+cu11-py3-none-manylinux2014_x86_64.whl` |
| Windows x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.3.3/warp_lang-1.3.3+cu11-py3-none-win_amd64.whl` |
| Linux aarch64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.4.0/warp_lang-1.4.0+cu11-py3-none-manylinux2014_aarch64.whl` |
| Linux x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.4.0/warp_lang-1.4.0+cu11-py3-none-manylinux2014_x86_64.whl` |
| Windows x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.4.0/warp_lang-1.4.0+cu11-py3-none-win_amd64.whl` |

The `--force-reinstall` option may need to be used to overwrite a previous installation.

Expand Down
2 changes: 1 addition & 1 deletion VERSION.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.3.3
1.4.0
6 changes: 3 additions & 3 deletions docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ the ``pip install`` command, e.g.
* - Platform
- Install Command
* - Linux aarch64
- ``pip install https://github.com/NVIDIA/warp/releases/download/v1.3.3/warp_lang-1.3.3+cu11-py3-none-manylinux2014_aarch64.whl``
- ``pip install https://github.com/NVIDIA/warp/releases/download/v1.4.0/warp_lang-1.4.0+cu11-py3-none-manylinux2014_aarch64.whl``
* - Linux x86-64
- ``pip install https://github.com/NVIDIA/warp/releases/download/v1.3.3/warp_lang-1.3.3+cu11-py3-none-manylinux2014_x86_64.whl``
- ``pip install https://github.com/NVIDIA/warp/releases/download/v1.4.0/warp_lang-1.4.0+cu11-py3-none-manylinux2014_x86_64.whl``
* - Windows x86-64
- ``pip install https://github.com/NVIDIA/warp/releases/download/v1.3.3/warp_lang-1.3.3+cu11-py3-none-win_amd64.whl``
- ``pip install https://github.com/NVIDIA/warp/releases/download/v1.4.0/warp_lang-1.4.0+cu11-py3-none-win_amd64.whl``

The ``--force-reinstall`` option may need to be used to overwrite a previous installation.

Expand Down
2 changes: 1 addition & 1 deletion exts/omni.warp.core/config/extension.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
# Semantic Versioning is used: https://semver.org/
version = "1.3.3"
version = "1.4.0"
authors = ["NVIDIA"]
title = "Warp Core"
description="The core Warp Python module"
Expand Down
73 changes: 73 additions & 0 deletions exts/omni.warp.core/docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,78 @@
# CHANGELOG

## [1.4.0] - 2024-10-01

### Added

- Support for a new `wp.static(expr)` function that allows arbitrary Python expressions to be evaluated at the time of
function/kernel definition ([docs](https://nvidia.github.io/warp/codegen.html#static-expressions)).
- Support for stream priorities to hint to the device that it should process pending work
in high-priority streams over pending work in low-priority streams when possible
([docs](https://nvidia.github.io/warp/modules/concurrency.html#stream-priorities)).
- Adaptive sparse grid geometry to `warp.fem` ([docs](https://nvidia.github.io/warp/modules/fem.html#adaptivity)).
- Support for defining `wp.kernel` and `wp.func` objects from within closures.
- Support for defining multiple versions of kernels, functions, and structs without manually assigning unique keys.
- Support for default argument values for user functions decorated with `wp.func`.
- Allow passing custom launch dimensions to `jax_kernel()` ([GH-310](https://github.com/NVIDIA/warp/pull/310)).
- JAX interoperability examples for sharding and matrix multiplication ([docs](https://nvidia.github.io/warp/modules/interoperability.html#using-shardmap-for-distributed-computation)).
- Interoperability support for the PaddlePaddle ML framework ([GH-318](https://github.com/NVIDIA/warp/pull/318)).
- Support `wp.mod()` for vector types ([GH-282](https://github.com/NVIDIA/warp/issues/282)).
- Expose the modulo operator `%` to Python's runtime scalar and vector types.
- Support for fp64 `atomic_add`, `atomic_max`, and `atomic_min` ([GH-284](https://github.com/NVIDIA/warp/issues/284)).
- Support for quaternion indexing (e.g. `q.w`).
- Support shadowing builtin functions ([GH-308](https://github.com/NVIDIA/warp/issues/308)).
- Support for redefining function overloads.
- Add an ocean sample to the `omni.warp` extension.
- Support for a new `wp.static(expr)` function that allows arbitrary Python expressions to be evaluated at the time of
function/kernel definition ([docs](https://nvidia.github.io/warp/codegen.html#static-expressions)).
- Add a contributing guide to the Sphinx docs.
- Add documentation for dynamic code generation.
- Support for a new `wp.static(expr)` function that allows arbitrary Python expressions to be evaluated at the time of function/kernel definition ([docs](https://nvidia.github.io/warp/codegen.html#static-expressions)).
- `warp.sim.VBDIntegrator` now supports body-particle collision.
- Add a [contributing guide](https://nvidia.github.io/warp/modules/contribution_guide.html) to the Sphinx docs .
- Add documentation for dynamic code generation ([docs](https://nvidia.github.io/warp/codegen.html#dynamic-kernel-creation)).

### Changed

- `wp.sim.Model.edge_indices` now includes boundary edges.
- Unexposed `wp.rand*()`, `wp.sample*()`, and `wp.poisson()` from the Python scope.
- Skip unused functions in module code generation, improving performance.
- Avoid reloading modules if their content does not change, improving performance.
- `wp.Mesh.points` is now a property instead of a raw data member, its reference can be changed after the mesh is initialized.
- Improve error message when invalid objects are referenced in a Warp kernel.
- `if`/`else`/`elif` statements with constant conditions are resolved at compile time with no branches being inserted in the generated code.
- Include all non-hidden builtins in the stub file.
- Improve accuracy of symmetric eigenvalues routine in `warp.fem`.

### Fixed

- Fix for `wp.func` erroring out when defining a `Tuple` as a return type hint ([GH-302](https://github.com/NVIDIA/warp/issues/302)).
- Fix array in-place op (`+=`, `-=`) adjoints to compute gradients correctly in the backwards pass
- Fix vector, matrix in-place assignment adjoints to compute gradients correctly in the backwards pass, e.g.: `v[1] = x`
- Fix a bug in which Python docstrings would be created as local function variables in generated code.
- Fix a bug with autograd array access validation in functions from different modules.
- Fix a rare crash during error reporting on some systems due to glibc mismatches.
- Handle `--num_tiles 1` in `example_render_opengl.py` ([GH-306](https://github.com/NVIDIA/warp/issues/306)).
- Fix the computation of body contact forces in `FeatherstoneIntegrator` when bodies and particles collide.
- Fix bug in `FeatherstoneIntegrator` where `eval_rigid_jacobian` could give incorrect results or reach an infinite
loop when the body and joint indices were not in the same order. Added `Model.joint_ancestor` to fix the indexing
from a joint to its parent joint in the articulation.
- Fix wrong vertex index passed to `add_edges()` called from `ModelBuilder.add_cloth_mesh()` ([GH-319](https://github.com/NVIDIA/warp/issues/319)).
- Add a workaround for uninitialized memory read warning in the `compute-sanitizer` initcheck tool when using `wp.Mesh`.
- Fix name clashes when Warp functions and structs are returned from Python functions multiple times.
- Fix name clashes between Warp functions and structs defined in different modules.
- Fix code generation errors when overloading generic kernels defined in a Python function.
- Fix issues with unrelated functions being treated as overloads (e.g., closures).
- Fix handling of `stream` argument in `array.__dlpack__()`.
- Fix a bug related to reloading CPU modules.
- Fix a crash when kernel functions are not found in CPU modules.
- Fix conditions not being evaluated as expected in `while` statements.
- Fix printing Boolean and 8-bit integer values.
- Fix array interface type strings used for Boolean and 8-bit integer values.
- Fix initialization error when setting struct members.
- Fix Warp not being initialized upon entering a `wp.Tape` context.
- Use `kDLBool` instead of `kDLUInt` for DLPack interop of Booleans.

## [1.3.3] - 2024-09-04

- Bug fixes
Expand Down
4 changes: 2 additions & 2 deletions exts/omni.warp/config/extension.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
# Semantic Versioning is used: https://semver.org/
version = "1.3.3"
version = "1.4.0"
authors = ["NVIDIA"]
title = "Warp"
description="Warp OmniGraph Nodes and Sample Scenes"
Expand Down Expand Up @@ -35,7 +35,7 @@ exclude = ["Ogn*Database.py", "*/ogn*"]
"omni.timeline" = {}
"omni.ui" = {optional = true}
"omni.usd" = {}
"omni.warp.core" = {version = "1.3.3", exact = true}
"omni.warp.core" = {version = "1.4.0", exact = true}

[[python.module]]
name = "omni.warp._extension"
Expand Down
73 changes: 73 additions & 0 deletions exts/omni.warp/docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,78 @@
# CHANGELOG

## [1.4.0] - 2024-10-01

### Added

- Support for a new `wp.static(expr)` function that allows arbitrary Python expressions to be evaluated at the time of
function/kernel definition ([docs](https://nvidia.github.io/warp/codegen.html#static-expressions)).
- Support for stream priorities to hint to the device that it should process pending work
in high-priority streams over pending work in low-priority streams when possible
([docs](https://nvidia.github.io/warp/modules/concurrency.html#stream-priorities)).
- Adaptive sparse grid geometry to `warp.fem` ([docs](https://nvidia.github.io/warp/modules/fem.html#adaptivity)).
- Support for defining `wp.kernel` and `wp.func` objects from within closures.
- Support for defining multiple versions of kernels, functions, and structs without manually assigning unique keys.
- Support for default argument values for user functions decorated with `wp.func`.
- Allow passing custom launch dimensions to `jax_kernel()` ([GH-310](https://github.com/NVIDIA/warp/pull/310)).
- JAX interoperability examples for sharding and matrix multiplication ([docs](https://nvidia.github.io/warp/modules/interoperability.html#using-shardmap-for-distributed-computation)).
- Interoperability support for the PaddlePaddle ML framework ([GH-318](https://github.com/NVIDIA/warp/pull/318)).
- Support `wp.mod()` for vector types ([GH-282](https://github.com/NVIDIA/warp/issues/282)).
- Expose the modulo operator `%` to Python's runtime scalar and vector types.
- Support for fp64 `atomic_add`, `atomic_max`, and `atomic_min` ([GH-284](https://github.com/NVIDIA/warp/issues/284)).
- Support for quaternion indexing (e.g. `q.w`).
- Support shadowing builtin functions ([GH-308](https://github.com/NVIDIA/warp/issues/308)).
- Support for redefining function overloads.
- Add an ocean sample to the `omni.warp` extension.
- Support for a new `wp.static(expr)` function that allows arbitrary Python expressions to be evaluated at the time of
function/kernel definition ([docs](https://nvidia.github.io/warp/codegen.html#static-expressions)).
- Add a contributing guide to the Sphinx docs.
- Add documentation for dynamic code generation.
- Support for a new `wp.static(expr)` function that allows arbitrary Python expressions to be evaluated at the time of function/kernel definition ([docs](https://nvidia.github.io/warp/codegen.html#static-expressions)).
- `warp.sim.VBDIntegrator` now supports body-particle collision.
- Add a [contributing guide](https://nvidia.github.io/warp/modules/contribution_guide.html) to the Sphinx docs .
- Add documentation for dynamic code generation ([docs](https://nvidia.github.io/warp/codegen.html#dynamic-kernel-creation)).

### Changed

- `wp.sim.Model.edge_indices` now includes boundary edges.
- Unexposed `wp.rand*()`, `wp.sample*()`, and `wp.poisson()` from the Python scope.
- Skip unused functions in module code generation, improving performance.
- Avoid reloading modules if their content does not change, improving performance.
- `wp.Mesh.points` is now a property instead of a raw data member, its reference can be changed after the mesh is initialized.
- Improve error message when invalid objects are referenced in a Warp kernel.
- `if`/`else`/`elif` statements with constant conditions are resolved at compile time with no branches being inserted in the generated code.
- Include all non-hidden builtins in the stub file.
- Improve accuracy of symmetric eigenvalues routine in `warp.fem`.

### Fixed

- Fix for `wp.func` erroring out when defining a `Tuple` as a return type hint ([GH-302](https://github.com/NVIDIA/warp/issues/302)).
- Fix array in-place op (`+=`, `-=`) adjoints to compute gradients correctly in the backwards pass
- Fix vector, matrix in-place assignment adjoints to compute gradients correctly in the backwards pass, e.g.: `v[1] = x`
- Fix a bug in which Python docstrings would be created as local function variables in generated code.
- Fix a bug with autograd array access validation in functions from different modules.
- Fix a rare crash during error reporting on some systems due to glibc mismatches.
- Handle `--num_tiles 1` in `example_render_opengl.py` ([GH-306](https://github.com/NVIDIA/warp/issues/306)).
- Fix the computation of body contact forces in `FeatherstoneIntegrator` when bodies and particles collide.
- Fix bug in `FeatherstoneIntegrator` where `eval_rigid_jacobian` could give incorrect results or reach an infinite
loop when the body and joint indices were not in the same order. Added `Model.joint_ancestor` to fix the indexing
from a joint to its parent joint in the articulation.
- Fix wrong vertex index passed to `add_edges()` called from `ModelBuilder.add_cloth_mesh()` ([GH-319](https://github.com/NVIDIA/warp/issues/319)).
- Add a workaround for uninitialized memory read warning in the `compute-sanitizer` initcheck tool when using `wp.Mesh`.
- Fix name clashes when Warp functions and structs are returned from Python functions multiple times.
- Fix name clashes between Warp functions and structs defined in different modules.
- Fix code generation errors when overloading generic kernels defined in a Python function.
- Fix issues with unrelated functions being treated as overloads (e.g., closures).
- Fix handling of `stream` argument in `array.__dlpack__()`.
- Fix a bug related to reloading CPU modules.
- Fix a crash when kernel functions are not found in CPU modules.
- Fix conditions not being evaluated as expected in `while` statements.
- Fix printing Boolean and 8-bit integer values.
- Fix array interface type strings used for Boolean and 8-bit integer values.
- Fix initialization error when setting struct members.
- Fix Warp not being initialized upon entering a `wp.Tape` context.
- Use `kDLBool` instead of `kDLUInt` for DLPack interop of Booleans.

## [1.3.3] - 2024-09-04

- Bug fixes
Expand Down
2 changes: 1 addition & 1 deletion warp/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from typing import Optional

version: str = "1.3.3"
version: str = "1.4.0"
"""Warp version string"""

verify_fp: bool = False
Expand Down

0 comments on commit a8f59c5

Please sign in to comment.