warp-lang 1.2.1__py3-none-macosx_10_13_universal2.whl → 1.3.0__py3-none-macosx_10_13_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of warp-lang might be problematic. Click here for more details.
- warp/__init__.py +8 -6
- warp/autograd.py +823 -0
- warp/bin/libwarp-clang.dylib +0 -0
- warp/bin/libwarp.dylib +0 -0
- warp/build.py +6 -2
- warp/builtins.py +1410 -886
- warp/codegen.py +503 -166
- warp/config.py +48 -18
- warp/context.py +401 -199
- warp/dlpack.py +8 -0
- warp/examples/assets/bunny.usd +0 -0
- warp/examples/benchmarks/benchmark_cloth_warp.py +1 -1
- warp/examples/benchmarks/benchmark_interop_torch.py +158 -0
- warp/examples/benchmarks/benchmark_launches.py +1 -1
- warp/examples/core/example_cupy.py +78 -0
- warp/examples/fem/example_apic_fluid.py +17 -36
- warp/examples/fem/example_burgers.py +9 -18
- warp/examples/fem/example_convection_diffusion.py +7 -17
- warp/examples/fem/example_convection_diffusion_dg.py +27 -47
- warp/examples/fem/example_deformed_geometry.py +11 -22
- warp/examples/fem/example_diffusion.py +7 -18
- warp/examples/fem/example_diffusion_3d.py +24 -28
- warp/examples/fem/example_diffusion_mgpu.py +7 -14
- warp/examples/fem/example_magnetostatics.py +190 -0
- warp/examples/fem/example_mixed_elasticity.py +111 -80
- warp/examples/fem/example_navier_stokes.py +30 -34
- warp/examples/fem/example_nonconforming_contact.py +290 -0
- warp/examples/fem/example_stokes.py +17 -32
- warp/examples/fem/example_stokes_transfer.py +12 -21
- warp/examples/fem/example_streamlines.py +350 -0
- warp/examples/fem/utils.py +936 -0
- warp/fabric.py +5 -2
- warp/fem/__init__.py +13 -3
- warp/fem/cache.py +161 -11
- warp/fem/dirichlet.py +37 -28
- warp/fem/domain.py +105 -14
- warp/fem/field/__init__.py +14 -3
- warp/fem/field/field.py +454 -11
- warp/fem/field/nodal_field.py +33 -18
- warp/fem/geometry/deformed_geometry.py +50 -15
- warp/fem/geometry/hexmesh.py +12 -24
- warp/fem/geometry/nanogrid.py +106 -31
- warp/fem/geometry/quadmesh_2d.py +6 -11
- warp/fem/geometry/tetmesh.py +103 -61
- warp/fem/geometry/trimesh_2d.py +98 -47
- warp/fem/integrate.py +231 -186
- warp/fem/operator.py +14 -9
- warp/fem/quadrature/pic_quadrature.py +35 -9
- warp/fem/quadrature/quadrature.py +119 -32
- warp/fem/space/basis_space.py +98 -22
- warp/fem/space/collocated_function_space.py +3 -1
- warp/fem/space/function_space.py +7 -2
- warp/fem/space/grid_2d_function_space.py +3 -3
- warp/fem/space/grid_3d_function_space.py +4 -4
- warp/fem/space/hexmesh_function_space.py +3 -2
- warp/fem/space/nanogrid_function_space.py +12 -14
- warp/fem/space/partition.py +45 -47
- warp/fem/space/restriction.py +19 -16
- warp/fem/space/shape/cube_shape_function.py +91 -3
- warp/fem/space/shape/shape_function.py +7 -0
- warp/fem/space/shape/square_shape_function.py +32 -0
- warp/fem/space/shape/tet_shape_function.py +11 -7
- warp/fem/space/shape/triangle_shape_function.py +10 -1
- warp/fem/space/topology.py +116 -42
- warp/fem/types.py +8 -1
- warp/fem/utils.py +301 -83
- warp/native/array.h +16 -0
- warp/native/builtin.h +0 -15
- warp/native/cuda_util.cpp +14 -6
- warp/native/exports.h +1348 -1308
- warp/native/quat.h +79 -0
- warp/native/rand.h +27 -4
- warp/native/sparse.cpp +83 -81
- warp/native/sparse.cu +381 -453
- warp/native/vec.h +64 -0
- warp/native/volume.cpp +40 -49
- warp/native/volume_builder.cu +2 -3
- warp/native/volume_builder.h +12 -17
- warp/native/warp.cu +3 -3
- warp/native/warp.h +69 -59
- warp/render/render_opengl.py +17 -9
- warp/sim/articulation.py +117 -17
- warp/sim/collide.py +35 -29
- warp/sim/model.py +123 -18
- warp/sim/render.py +3 -1
- warp/sparse.py +867 -203
- warp/stubs.py +312 -541
- warp/tape.py +29 -1
- warp/tests/disabled_kinematics.py +1 -1
- warp/tests/test_adam.py +1 -1
- warp/tests/test_arithmetic.py +1 -1
- warp/tests/test_array.py +58 -1
- warp/tests/test_array_reduce.py +1 -1
- warp/tests/test_async.py +1 -1
- warp/tests/test_atomic.py +1 -1
- warp/tests/test_bool.py +1 -1
- warp/tests/test_builtins_resolution.py +1 -1
- warp/tests/test_bvh.py +6 -1
- warp/tests/test_closest_point_edge_edge.py +1 -1
- warp/tests/test_codegen.py +66 -1
- warp/tests/test_compile_consts.py +1 -1
- warp/tests/test_conditional.py +1 -1
- warp/tests/test_copy.py +1 -1
- warp/tests/test_ctypes.py +1 -1
- warp/tests/test_dense.py +1 -1
- warp/tests/test_devices.py +1 -1
- warp/tests/test_dlpack.py +1 -1
- warp/tests/test_examples.py +33 -4
- warp/tests/test_fabricarray.py +5 -2
- warp/tests/test_fast_math.py +1 -1
- warp/tests/test_fem.py +213 -6
- warp/tests/test_fp16.py +1 -1
- warp/tests/test_func.py +1 -1
- warp/tests/test_future_annotations.py +90 -0
- warp/tests/test_generics.py +1 -1
- warp/tests/test_grad.py +1 -1
- warp/tests/test_grad_customs.py +1 -1
- warp/tests/test_grad_debug.py +247 -0
- warp/tests/test_hash_grid.py +6 -1
- warp/tests/test_implicit_init.py +354 -0
- warp/tests/test_import.py +1 -1
- warp/tests/test_indexedarray.py +1 -1
- warp/tests/test_intersect.py +1 -1
- warp/tests/test_jax.py +1 -1
- warp/tests/test_large.py +1 -1
- warp/tests/test_launch.py +1 -1
- warp/tests/test_lerp.py +1 -1
- warp/tests/test_linear_solvers.py +1 -1
- warp/tests/test_lvalue.py +1 -1
- warp/tests/test_marching_cubes.py +5 -2
- warp/tests/test_mat.py +34 -35
- warp/tests/test_mat_lite.py +2 -1
- warp/tests/test_mat_scalar_ops.py +1 -1
- warp/tests/test_math.py +1 -1
- warp/tests/test_matmul.py +20 -16
- warp/tests/test_matmul_lite.py +1 -1
- warp/tests/test_mempool.py +1 -1
- warp/tests/test_mesh.py +5 -2
- warp/tests/test_mesh_query_aabb.py +1 -1
- warp/tests/test_mesh_query_point.py +1 -1
- warp/tests/test_mesh_query_ray.py +1 -1
- warp/tests/test_mlp.py +1 -1
- warp/tests/test_model.py +1 -1
- warp/tests/test_module_hashing.py +77 -1
- warp/tests/test_modules_lite.py +1 -1
- warp/tests/test_multigpu.py +1 -1
- warp/tests/test_noise.py +1 -1
- warp/tests/test_operators.py +1 -1
- warp/tests/test_options.py +1 -1
- warp/tests/test_overwrite.py +542 -0
- warp/tests/test_peer.py +1 -1
- warp/tests/test_pinned.py +1 -1
- warp/tests/test_print.py +1 -1
- warp/tests/test_quat.py +15 -1
- warp/tests/test_rand.py +1 -1
- warp/tests/test_reload.py +1 -1
- warp/tests/test_rounding.py +1 -1
- warp/tests/test_runlength_encode.py +1 -1
- warp/tests/test_scalar_ops.py +95 -0
- warp/tests/test_sim_grad.py +1 -1
- warp/tests/test_sim_kinematics.py +1 -1
- warp/tests/test_smoothstep.py +1 -1
- warp/tests/test_sparse.py +82 -15
- warp/tests/test_spatial.py +1 -1
- warp/tests/test_special_values.py +2 -11
- warp/tests/test_streams.py +11 -1
- warp/tests/test_struct.py +1 -1
- warp/tests/test_tape.py +1 -1
- warp/tests/test_torch.py +194 -1
- warp/tests/test_transient_module.py +1 -1
- warp/tests/test_types.py +1 -1
- warp/tests/test_utils.py +1 -1
- warp/tests/test_vec.py +15 -63
- warp/tests/test_vec_lite.py +2 -1
- warp/tests/test_vec_scalar_ops.py +122 -39
- warp/tests/test_verify_fp.py +1 -1
- warp/tests/test_volume.py +28 -2
- warp/tests/test_volume_write.py +1 -1
- warp/tests/unittest_serial.py +1 -1
- warp/tests/unittest_suites.py +9 -1
- warp/tests/walkthrough_debug.py +1 -1
- warp/thirdparty/unittest_parallel.py +2 -5
- warp/torch.py +103 -41
- warp/types.py +344 -227
- warp/utils.py +11 -2
- {warp_lang-1.2.1.dist-info → warp_lang-1.3.0.dist-info}/METADATA +99 -46
- warp_lang-1.3.0.dist-info/RECORD +368 -0
- warp/examples/fem/bsr_utils.py +0 -378
- warp/examples/fem/mesh_utils.py +0 -133
- warp/examples/fem/plot_utils.py +0 -292
- warp_lang-1.2.1.dist-info/RECORD +0 -359
- {warp_lang-1.2.1.dist-info → warp_lang-1.3.0.dist-info}/LICENSE.md +0 -0
- {warp_lang-1.2.1.dist-info → warp_lang-1.3.0.dist-info}/WHEEL +0 -0
- {warp_lang-1.2.1.dist-info → warp_lang-1.3.0.dist-info}/top_level.txt +0 -0
warp/utils.py
CHANGED
|
@@ -644,6 +644,7 @@ class ScopedTimer:
|
|
|
644
644
|
skip_tape (bool): If true, the timer will not be recorded in the tape
|
|
645
645
|
|
|
646
646
|
Attributes:
|
|
647
|
+
extra_msg (str): Can be set to a string that will be added to the printout at context exit.
|
|
647
648
|
elapsed (float): The duration of the ``with`` block used with this object
|
|
648
649
|
timing_results (list[TimingResult]): The list of activity timing results, if collection was requested using ``cuda_filter``
|
|
649
650
|
"""
|
|
@@ -659,6 +660,7 @@ class ScopedTimer:
|
|
|
659
660
|
self.elapsed = 0.0
|
|
660
661
|
self.cuda_filter = cuda_filter
|
|
661
662
|
self.report_func = report_func or wp.timing_print
|
|
663
|
+
self.extra_msg = "" # Can be used to add to the message printed at manager exit
|
|
662
664
|
|
|
663
665
|
if self.dict is not None:
|
|
664
666
|
if name not in self.dict:
|
|
@@ -688,6 +690,10 @@ class ScopedTimer:
|
|
|
688
690
|
if self.print:
|
|
689
691
|
ScopedTimer.indent += 1
|
|
690
692
|
|
|
693
|
+
if warp.config.verbose:
|
|
694
|
+
indent = " " * ScopedTimer.indent
|
|
695
|
+
print(f"{indent}{self.name} ...", flush=True)
|
|
696
|
+
|
|
691
697
|
self.start = time.perf_counter_ns()
|
|
692
698
|
|
|
693
699
|
return self
|
|
@@ -720,13 +726,16 @@ class ScopedTimer:
|
|
|
720
726
|
self.dict[self.name].append(self.elapsed)
|
|
721
727
|
|
|
722
728
|
if self.print:
|
|
723
|
-
indent = "
|
|
729
|
+
indent = " " * ScopedTimer.indent
|
|
724
730
|
|
|
725
731
|
if self.timing_results:
|
|
726
732
|
self.report_func(self.timing_results, indent=indent)
|
|
727
733
|
print()
|
|
728
734
|
|
|
729
|
-
|
|
735
|
+
if self.extra_msg:
|
|
736
|
+
print(f"{indent}{self.name} took {self.elapsed :.2f} ms {self.extra_msg}")
|
|
737
|
+
else:
|
|
738
|
+
print(f"{indent}{self.name} took {self.elapsed :.2f} ms")
|
|
730
739
|
|
|
731
740
|
ScopedTimer.indent -= 1
|
|
732
741
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: warp-lang
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0
|
|
4
4
|
Summary: A Python framework for high-performance simulation and graphics programming
|
|
5
|
-
Author-email: NVIDIA <mmacklin@nvidia.com>
|
|
5
|
+
Author-email: NVIDIA Corporation <mmacklin@nvidia.com>
|
|
6
6
|
License: NVIDIA Software License
|
|
7
7
|
Project-URL: GitHub, https://github.com/NVIDIA/warp
|
|
8
8
|
Project-URL: Documentation, https://nvidia.github.io/warp
|
|
@@ -34,7 +34,7 @@ Requires-Dist: pyglet ; extra == 'extras'
|
|
|
34
34
|

|
|
35
35
|
[](https://pepy.tech/project/warp-lang)
|
|
36
36
|
[](https://codecov.io/github/NVIDIA/warp)
|
|
37
|
-

|
|
38
38
|
[](https://discord.com/invite/nvidiaomniverse)
|
|
39
39
|
|
|
40
40
|
# NVIDIA Warp
|
|
@@ -42,7 +42,8 @@ Requires-Dist: pyglet ; extra == 'extras'
|
|
|
42
42
|
Warp is a Python framework for writing high-performance simulation and graphics code. Warp takes
|
|
43
43
|
regular Python functions and JIT compiles them to efficient kernel code that can run on the CPU or GPU.
|
|
44
44
|
|
|
45
|
-
Warp is designed for spatial computing
|
|
45
|
+
Warp is designed for [spatial computing](https://en.wikipedia.org/wiki/Spatial_computing)
|
|
46
|
+
and comes with a rich set of primitives that make it easy to write
|
|
46
47
|
programs for physics simulation, perception, robotics, and geometry processing. In addition, Warp kernels
|
|
47
48
|
are differentiable and can be used as part of machine-learning pipelines with frameworks such as PyTorch and JAX.
|
|
48
49
|
|
|
@@ -60,19 +61,54 @@ GPU support requires a CUDA-capable NVIDIA GPU and driver (minimum GeForce GTX 9
|
|
|
60
61
|
|
|
61
62
|
The easiest way to install Warp is from [PyPI](https://pypi.org/project/warp-lang/):
|
|
62
63
|
|
|
63
|
-
|
|
64
|
+
```text
|
|
65
|
+
pip install warp-lang
|
|
66
|
+
```
|
|
64
67
|
|
|
65
68
|
You can also use `pip install warp-lang[extras]` to install additional dependencies for running examples and USD-related features.
|
|
66
69
|
|
|
67
|
-
The binaries hosted on PyPI are currently built with the CUDA
|
|
68
|
-
|
|
70
|
+
The binaries hosted on PyPI are currently built with the CUDA 12 runtime and therefore
|
|
71
|
+
require a minimum version of the CUDA driver of 525.60.13 (Linux x86-64) or 528.33 (Windows x86-64).
|
|
72
|
+
|
|
73
|
+
If you require GPU support on a system with an older CUDA driver, you can build Warp from source or
|
|
74
|
+
install wheels built with the CUDA 11.8 runtime from the [GitHub Releases](https://github.com/NVIDIA/warp/releases) page.
|
|
69
75
|
Copy the URL of the appropriate wheel file (`warp-lang-{ver}+cu12-py3-none-{platform}.whl`) and pass it to
|
|
70
76
|
the `pip install` command, e.g.
|
|
71
77
|
|
|
72
|
-
|
|
78
|
+
| Platform | Install Command |
|
|
79
|
+
| --------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
80
|
+
| Linux aarch64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.3.0/warp_lang-1.3.0+cu11-py3-none-manylinux2014_aarch64.whl` |
|
|
81
|
+
| Linux x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.3.0/warp_lang-1.3.0+cu11-py3-none-manylinux2014_x86_64.whl` |
|
|
82
|
+
| Windows x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.3.0/warp_lang-1.3.0+cu11-py3-none-win_amd64.whl` |
|
|
73
83
|
|
|
74
84
|
The `--force-reinstall` option may need to be used to overwrite a previous installation.
|
|
75
85
|
|
|
86
|
+
### CUDA Requirements
|
|
87
|
+
|
|
88
|
+
* Warp packages built with CUDA Toolkit 11.x require NVIDIA driver 470 or newer.
|
|
89
|
+
* Warp packages built with CUDA Toolkit 12.x require NVIDIA driver 525 or newer.
|
|
90
|
+
|
|
91
|
+
This applies to pre-built packages distributed on PyPI and GitHub and also when building Warp from source.
|
|
92
|
+
|
|
93
|
+
Note that building Warp with the `--quick` flag changes the driver requirements. The quick build skips CUDA backward compatibility, so the minimum required driver is determined by the CUDA Toolkit version. Refer to the [latest CUDA Toolkit release notes](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html) to find the minimum required driver for different CUDA Toolkit versions (e.g., [this table from CUDA Toolkit 12.5](https://docs.nvidia.com/cuda/archive/12.5.0/cuda-toolkit-release-notes/index.html#id3)).
|
|
94
|
+
|
|
95
|
+
Warp checks the installed driver during initialization and will report a warning if the driver is not suitable, e.g.:
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
Warp UserWarning:
|
|
99
|
+
Insufficient CUDA driver version.
|
|
100
|
+
The minimum required CUDA driver version is 12.0, but the installed CUDA driver version is 11.8.
|
|
101
|
+
Visit https://github.com/NVIDIA/warp/blob/main/README.md#installing for guidance.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This will make CUDA devices unavailable, but the CPU can still be used.
|
|
105
|
+
|
|
106
|
+
To remedy the situation there are a few options:
|
|
107
|
+
|
|
108
|
+
* Update the driver.
|
|
109
|
+
* Install a compatible pre-built Warp package.
|
|
110
|
+
* Build Warp from source using a CUDA Toolkit that's compatible with the installed driver.
|
|
111
|
+
|
|
76
112
|
## Getting Started
|
|
77
113
|
|
|
78
114
|
An example first program that computes the lengths of random 3D vectors is given below:
|
|
@@ -108,20 +144,32 @@ print(lengths)
|
|
|
108
144
|
|
|
109
145
|
## Running Examples
|
|
110
146
|
|
|
111
|
-
The [warp/examples](./warp/examples/) directory contains a number of scripts categorized under
|
|
112
|
-
that show how to implement
|
|
113
|
-
Most examples will generate USD files containing time-sampled animations
|
|
147
|
+
The [warp/examples](./warp/examples/) directory contains a number of scripts categorized under subdirectories
|
|
148
|
+
that show how to implement various simulation methods using the Warp API.
|
|
149
|
+
Most examples will generate USD files containing time-sampled animations in the current working directory.
|
|
114
150
|
Before running examples, users should ensure that the ``usd-core``, ``matplotlib``, and ``pyglet`` packages are installed using:
|
|
115
151
|
|
|
116
|
-
|
|
152
|
+
```text
|
|
153
|
+
pip install warp-lang[extras]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
These dependencies can also be manually installed using:
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
pip install usd-core matplotlib pyglet
|
|
160
|
+
```
|
|
117
161
|
|
|
118
162
|
Examples can be run from the command-line as follows:
|
|
119
163
|
|
|
120
|
-
|
|
164
|
+
```text
|
|
165
|
+
python -m warp.examples.<example_subdir>.<example>
|
|
166
|
+
```
|
|
121
167
|
|
|
122
168
|
To browse the example source code, you can open the directory where the files are located like this:
|
|
123
169
|
|
|
124
|
-
|
|
170
|
+
```text
|
|
171
|
+
python -m warp.examples.browse
|
|
172
|
+
```
|
|
125
173
|
|
|
126
174
|
Most examples can be run on either the CPU or a CUDA-capable device, but a handful require a CUDA-capable device. These are marked at the top of the example script.
|
|
127
175
|
|
|
@@ -129,10 +177,11 @@ USD files can be viewed or rendered inside [NVIDIA Omniverse](https://developer.
|
|
|
129
177
|
|
|
130
178
|
Built-in unit tests can be run from the command-line as follows:
|
|
131
179
|
|
|
132
|
-
|
|
133
|
-
|
|
180
|
+
```text
|
|
181
|
+
python -m warp.tests
|
|
182
|
+
```
|
|
134
183
|
|
|
135
|
-
### examples/core
|
|
184
|
+
### warp/examples/core
|
|
136
185
|
|
|
137
186
|
<table>
|
|
138
187
|
<tbody>
|
|
@@ -175,40 +224,38 @@ Built-in unit tests can be run from the command-line as follows:
|
|
|
175
224
|
</tbody>
|
|
176
225
|
</table>
|
|
177
226
|
|
|
178
|
-
|
|
179
|
-
### examples/fem
|
|
227
|
+
### warp/examples/fem
|
|
180
228
|
|
|
181
229
|
<table>
|
|
182
230
|
<tbody>
|
|
183
231
|
<tr>
|
|
184
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_apic_fluid.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_apic_fluid.png"></a></td>
|
|
185
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_convection_diffusion.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_convection_diffusion.png"></a></td>
|
|
186
232
|
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_diffusion_3d.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_diffusion_3d.png"></a></td>
|
|
187
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/
|
|
233
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_mixed_elasticity.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_mixed_elasticity.png"></a></td>
|
|
234
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_apic_fluid.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_apic_fluid.png"></a></td>
|
|
235
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_streamlines.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_streamlines.png"></a></td>
|
|
188
236
|
</tr>
|
|
189
237
|
<tr>
|
|
190
|
-
<td align="center">apic fluid</td>
|
|
191
|
-
<td align="center">convection diffusion</td>
|
|
192
238
|
<td align="center">diffusion 3d</td>
|
|
193
|
-
<td align="center">
|
|
239
|
+
<td align="center">mixed elasticity</td>
|
|
240
|
+
<td align="center">apic fluid</td>
|
|
241
|
+
<td align="center">streamlines</td>
|
|
194
242
|
</tr>
|
|
195
243
|
<tr>
|
|
196
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/
|
|
244
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_convection_diffusion.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_convection_diffusion.png"></a></td>
|
|
197
245
|
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_navier_stokes.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_navier_stokes.png"></a></td>
|
|
198
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/
|
|
199
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/
|
|
246
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_burgers.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_burgers.png"></a></td>
|
|
247
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_magnetostatics.py"><img src="https://github.com/NVIDIA/warp/raw/main/docs/img/examples/fem_magnetostatics.png"></a></td>
|
|
200
248
|
</tr>
|
|
201
249
|
<tr>
|
|
202
|
-
<td align="center">
|
|
250
|
+
<td align="center">convection diffusion</td>
|
|
203
251
|
<td align="center">navier stokes</td>
|
|
204
|
-
<td align="center">
|
|
205
|
-
<td align="center">
|
|
252
|
+
<td align="center">burgers</td>
|
|
253
|
+
<td align="center">magnetostatics</td>
|
|
206
254
|
</tr>
|
|
207
255
|
</tbody>
|
|
208
256
|
</table>
|
|
209
257
|
|
|
210
|
-
|
|
211
|
-
### examples/optim
|
|
258
|
+
### warp/examples/optim
|
|
212
259
|
|
|
213
260
|
<table>
|
|
214
261
|
<tbody>
|
|
@@ -239,8 +286,7 @@ Built-in unit tests can be run from the command-line as follows:
|
|
|
239
286
|
</tbody>
|
|
240
287
|
</table>
|
|
241
288
|
|
|
242
|
-
|
|
243
|
-
### examples/sim
|
|
289
|
+
### warp/examples/sim
|
|
244
290
|
|
|
245
291
|
<table>
|
|
246
292
|
<tbody>
|
|
@@ -283,7 +329,6 @@ Built-in unit tests can be run from the command-line as follows:
|
|
|
283
329
|
</tbody>
|
|
284
330
|
</table>
|
|
285
331
|
|
|
286
|
-
|
|
287
332
|
## Building
|
|
288
333
|
|
|
289
334
|
For developers who want to build the library themselves, the following tools are required:
|
|
@@ -295,11 +340,19 @@ For developers who want to build the library themselves, the following tools are
|
|
|
295
340
|
|
|
296
341
|
After cloning the repository, users should run:
|
|
297
342
|
|
|
298
|
-
|
|
343
|
+
```text
|
|
344
|
+
python build_lib.py
|
|
345
|
+
```
|
|
299
346
|
|
|
300
|
-
|
|
347
|
+
Upon success, the script will output platform-specific binary files in `warp/bin/`.
|
|
348
|
+
The build script will look for the CUDA Toolkit in its default installation path.
|
|
349
|
+
This path can be overridden by setting the `CUDA_PATH` environment variable. Alternatively,
|
|
350
|
+
the path to the CUDA Toolkit can be passed to the build command as
|
|
351
|
+
`--cuda_path="..."`. After building, the Warp package should be installed using:
|
|
301
352
|
|
|
302
|
-
|
|
353
|
+
```text
|
|
354
|
+
pip install -e .
|
|
355
|
+
```
|
|
303
356
|
|
|
304
357
|
This ensures that subsequent modifications to the library will be reflected in the Python package.
|
|
305
358
|
|
|
@@ -327,7 +380,7 @@ See the [FAQ](https://nvidia.github.io/warp/faq.html) in the Warp documentation.
|
|
|
327
380
|
|
|
328
381
|
Problems, questions, and feature requests can be opened on [GitHub Issues](https://github.com/NVIDIA/warp/issues).
|
|
329
382
|
|
|
330
|
-
The Warp team also monitors the **#warp** channel on the public [Omniverse Discord](https://discord.com/invite/nvidiaomniverse) server, come chat
|
|
383
|
+
The Warp team also monitors the **#warp** channel on the public [Omniverse Discord](https://discord.com/invite/nvidiaomniverse) server, come chat with us!
|
|
331
384
|
|
|
332
385
|
## Versioning
|
|
333
386
|
|
|
@@ -335,12 +388,12 @@ Versions take the format X.Y.Z, similar to [Python itself](https://devguide.pyth
|
|
|
335
388
|
|
|
336
389
|
* Increments in X are reserved for major reworks of the project causing disruptive incompatibility (or reaching the 1.0 milestone).
|
|
337
390
|
* Increments in Y are for regular releases with a new set of features.
|
|
338
|
-
* Increments in Z are for bug fixes. In principle there are no new features. Can be omitted if 0 or not relevant.
|
|
391
|
+
* Increments in Z are for bug fixes. In principle, there are no new features. Can be omitted if 0 or not relevant.
|
|
339
392
|
|
|
340
|
-
This is similar to [Semantic Versioning](https://semver.org/) but less strict
|
|
341
|
-
Like with Python, some breaking changes can be present between minor versions if well
|
|
393
|
+
This is similar to [Semantic Versioning](https://semver.org/) but is less strict regarding backward compatibility.
|
|
394
|
+
Like with Python, some breaking changes can be present between minor versions if well-documented and gradually introduced.
|
|
342
395
|
|
|
343
|
-
Note that prior to 0.11.0 this schema was not strictly adhered to.
|
|
396
|
+
Note that prior to 0.11.0, this schema was not strictly adhered to.
|
|
344
397
|
|
|
345
398
|
## License
|
|
346
399
|
|
|
@@ -349,12 +402,12 @@ Warp is provided under the NVIDIA Software License, please see [LICENSE.md](./LI
|
|
|
349
402
|
## Contributing
|
|
350
403
|
|
|
351
404
|
Contributions and pull requests from the community are welcome and are taken under the
|
|
352
|
-
terms described in the **
|
|
405
|
+
terms described in the **Feedback** section of [LICENSE.md](LICENSE.md#9-feedback).
|
|
353
406
|
[CONTRIBUTING.md](./CONTRIBUTING.md) provides additional information on how to open a pull request for Warp.
|
|
354
407
|
|
|
355
408
|
## Citing
|
|
356
409
|
|
|
357
|
-
If you use Warp in your research please use the following citation:
|
|
410
|
+
If you use Warp in your research, please use the following citation:
|
|
358
411
|
|
|
359
412
|
```bibtex
|
|
360
413
|
@misc{warp2022,
|