warp-lang 1.9.0__py3-none-win_amd64.whl → 1.10.0rc2__py3-none-win_amd64.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 +301 -287
- warp/__init__.pyi +2220 -313
- warp/_src/__init__.py +14 -0
- warp/_src/autograd.py +1075 -0
- warp/_src/build.py +618 -0
- warp/_src/build_dll.py +640 -0
- warp/{builtins.py → _src/builtins.py} +1497 -226
- warp/_src/codegen.py +4359 -0
- warp/{config.py → _src/config.py} +178 -169
- warp/_src/constants.py +57 -0
- warp/_src/context.py +8294 -0
- warp/_src/dlpack.py +462 -0
- warp/_src/fabric.py +355 -0
- warp/_src/fem/__init__.py +14 -0
- warp/_src/fem/adaptivity.py +508 -0
- warp/_src/fem/cache.py +687 -0
- warp/_src/fem/dirichlet.py +188 -0
- warp/{fem → _src/fem}/domain.py +40 -30
- warp/_src/fem/field/__init__.py +131 -0
- warp/_src/fem/field/field.py +701 -0
- warp/{fem → _src/fem}/field/nodal_field.py +30 -15
- warp/{fem → _src/fem}/field/restriction.py +1 -1
- warp/{fem → _src/fem}/field/virtual.py +53 -27
- warp/_src/fem/geometry/__init__.py +32 -0
- warp/{fem → _src/fem}/geometry/adaptive_nanogrid.py +77 -163
- warp/_src/fem/geometry/closest_point.py +97 -0
- warp/{fem → _src/fem}/geometry/deformed_geometry.py +14 -22
- warp/{fem → _src/fem}/geometry/element.py +32 -10
- warp/{fem → _src/fem}/geometry/geometry.py +48 -20
- warp/{fem → _src/fem}/geometry/grid_2d.py +12 -23
- warp/{fem → _src/fem}/geometry/grid_3d.py +12 -23
- warp/{fem → _src/fem}/geometry/hexmesh.py +40 -63
- warp/{fem → _src/fem}/geometry/nanogrid.py +255 -248
- warp/{fem → _src/fem}/geometry/partition.py +121 -63
- warp/{fem → _src/fem}/geometry/quadmesh.py +26 -45
- warp/{fem → _src/fem}/geometry/tetmesh.py +40 -63
- warp/{fem → _src/fem}/geometry/trimesh.py +26 -45
- warp/{fem → _src/fem}/integrate.py +164 -158
- warp/_src/fem/linalg.py +383 -0
- warp/_src/fem/operator.py +396 -0
- warp/_src/fem/polynomial.py +229 -0
- warp/{fem → _src/fem}/quadrature/pic_quadrature.py +15 -20
- warp/{fem → _src/fem}/quadrature/quadrature.py +95 -47
- warp/_src/fem/space/__init__.py +248 -0
- warp/{fem → _src/fem}/space/basis_function_space.py +20 -11
- warp/_src/fem/space/basis_space.py +679 -0
- warp/{fem → _src/fem}/space/dof_mapper.py +3 -3
- warp/{fem → _src/fem}/space/function_space.py +14 -13
- warp/{fem → _src/fem}/space/grid_2d_function_space.py +4 -7
- warp/{fem → _src/fem}/space/grid_3d_function_space.py +4 -4
- warp/{fem → _src/fem}/space/hexmesh_function_space.py +4 -10
- warp/{fem → _src/fem}/space/nanogrid_function_space.py +3 -9
- warp/{fem → _src/fem}/space/partition.py +117 -60
- warp/{fem → _src/fem}/space/quadmesh_function_space.py +4 -10
- warp/{fem → _src/fem}/space/restriction.py +66 -33
- warp/_src/fem/space/shape/__init__.py +152 -0
- warp/{fem → _src/fem}/space/shape/cube_shape_function.py +9 -9
- warp/{fem → _src/fem}/space/shape/shape_function.py +8 -9
- warp/{fem → _src/fem}/space/shape/square_shape_function.py +6 -6
- warp/{fem → _src/fem}/space/shape/tet_shape_function.py +3 -3
- warp/{fem → _src/fem}/space/shape/triangle_shape_function.py +3 -3
- warp/{fem → _src/fem}/space/tetmesh_function_space.py +3 -9
- warp/_src/fem/space/topology.py +459 -0
- warp/{fem → _src/fem}/space/trimesh_function_space.py +3 -9
- warp/_src/fem/types.py +112 -0
- warp/_src/fem/utils.py +486 -0
- warp/_src/jax.py +186 -0
- warp/_src/jax_experimental/__init__.py +14 -0
- warp/_src/jax_experimental/custom_call.py +387 -0
- warp/_src/jax_experimental/ffi.py +1284 -0
- warp/_src/jax_experimental/xla_ffi.py +656 -0
- warp/_src/marching_cubes.py +708 -0
- warp/_src/math.py +414 -0
- warp/_src/optim/__init__.py +14 -0
- warp/_src/optim/adam.py +163 -0
- warp/_src/optim/linear.py +1606 -0
- warp/_src/optim/sgd.py +112 -0
- warp/_src/paddle.py +406 -0
- warp/_src/render/__init__.py +14 -0
- warp/_src/render/imgui_manager.py +289 -0
- warp/_src/render/render_opengl.py +3636 -0
- warp/_src/render/render_usd.py +937 -0
- warp/_src/render/utils.py +160 -0
- warp/_src/sparse.py +2716 -0
- warp/_src/tape.py +1206 -0
- warp/{thirdparty → _src/thirdparty}/unittest_parallel.py +9 -2
- warp/_src/torch.py +391 -0
- warp/_src/types.py +5870 -0
- warp/_src/utils.py +1693 -0
- warp/autograd.py +12 -1054
- warp/bin/warp-clang.dll +0 -0
- warp/bin/warp.dll +0 -0
- warp/build.py +8 -588
- warp/build_dll.py +6 -471
- warp/codegen.py +6 -4246
- warp/constants.py +6 -39
- warp/context.py +12 -7851
- warp/dlpack.py +6 -444
- warp/examples/distributed/example_jacobi_mpi.py +4 -5
- warp/examples/fem/example_adaptive_grid.py +1 -1
- warp/examples/fem/example_apic_fluid.py +1 -1
- warp/examples/fem/example_burgers.py +8 -8
- warp/examples/fem/example_diffusion.py +1 -1
- warp/examples/fem/example_distortion_energy.py +1 -1
- warp/examples/fem/example_mixed_elasticity.py +2 -2
- warp/examples/fem/example_navier_stokes.py +1 -1
- warp/examples/fem/example_nonconforming_contact.py +7 -7
- warp/examples/fem/example_stokes.py +1 -1
- warp/examples/fem/example_stokes_transfer.py +1 -1
- warp/examples/fem/utils.py +2 -2
- warp/examples/interop/example_jax_callable.py +1 -1
- warp/examples/interop/example_jax_ffi_callback.py +1 -1
- warp/examples/interop/example_jax_kernel.py +3 -2
- warp/examples/tile/example_tile_mcgp.py +191 -0
- warp/fabric.py +6 -337
- warp/fem/__init__.py +159 -97
- warp/fem/adaptivity.py +7 -489
- warp/fem/cache.py +9 -648
- warp/fem/dirichlet.py +6 -184
- warp/fem/field/__init__.py +8 -109
- warp/fem/field/field.py +7 -652
- warp/fem/geometry/__init__.py +7 -18
- warp/fem/geometry/closest_point.py +11 -77
- warp/fem/linalg.py +18 -366
- warp/fem/operator.py +11 -369
- warp/fem/polynomial.py +9 -209
- warp/fem/space/__init__.py +5 -211
- warp/fem/space/basis_space.py +6 -662
- warp/fem/space/shape/__init__.py +41 -118
- warp/fem/space/topology.py +6 -437
- warp/fem/types.py +6 -81
- warp/fem/utils.py +11 -444
- warp/jax.py +8 -165
- warp/jax_experimental/__init__.py +14 -1
- warp/jax_experimental/custom_call.py +8 -342
- warp/jax_experimental/ffi.py +17 -853
- warp/jax_experimental/xla_ffi.py +5 -596
- warp/marching_cubes.py +5 -689
- warp/math.py +16 -393
- warp/native/array.h +385 -37
- warp/native/builtin.h +316 -39
- warp/native/bvh.cpp +43 -9
- warp/native/bvh.cu +62 -27
- warp/native/bvh.h +310 -309
- warp/native/clang/clang.cpp +102 -97
- warp/native/coloring.cpp +0 -1
- warp/native/crt.h +208 -0
- warp/native/exports.h +156 -0
- warp/native/hashgrid.cu +2 -0
- warp/native/intersect.h +24 -1
- warp/native/intersect_tri.h +44 -35
- warp/native/mat.h +1456 -276
- warp/native/mesh.cpp +4 -4
- warp/native/mesh.cu +4 -2
- warp/native/mesh.h +176 -61
- warp/native/quat.h +0 -52
- warp/native/scan.cu +2 -0
- warp/native/sort.cu +22 -13
- warp/native/sort.h +2 -0
- warp/native/sparse.cu +7 -3
- warp/native/spatial.h +12 -0
- warp/native/tile.h +837 -70
- warp/native/tile_radix_sort.h +1 -1
- warp/native/tile_reduce.h +394 -46
- warp/native/tile_scan.h +4 -4
- warp/native/vec.h +469 -53
- warp/native/version.h +23 -0
- warp/native/volume.cpp +1 -1
- warp/native/volume.cu +1 -0
- warp/native/volume.h +1 -1
- warp/native/volume_builder.cu +2 -0
- warp/native/warp.cpp +60 -32
- warp/native/warp.cu +313 -201
- warp/native/warp.h +14 -11
- warp/optim/__init__.py +6 -3
- warp/optim/adam.py +6 -145
- warp/optim/linear.py +14 -1585
- warp/optim/sgd.py +6 -94
- warp/paddle.py +6 -388
- warp/render/__init__.py +8 -4
- warp/render/imgui_manager.py +7 -267
- warp/render/render_opengl.py +6 -3616
- warp/render/render_usd.py +6 -918
- warp/render/utils.py +6 -142
- warp/sparse.py +37 -2563
- warp/tape.py +6 -1188
- warp/tests/__main__.py +1 -1
- warp/tests/cuda/test_async.py +4 -4
- warp/tests/cuda/test_conditional_captures.py +1 -1
- warp/tests/cuda/test_multigpu.py +1 -1
- warp/tests/cuda/test_streams.py +58 -1
- warp/tests/geometry/test_bvh.py +157 -22
- warp/tests/geometry/test_hash_grid.py +38 -0
- warp/tests/geometry/test_marching_cubes.py +0 -1
- warp/tests/geometry/test_mesh.py +5 -3
- warp/tests/geometry/test_mesh_query_aabb.py +5 -12
- warp/tests/geometry/test_mesh_query_point.py +5 -2
- warp/tests/geometry/test_mesh_query_ray.py +15 -3
- warp/tests/geometry/test_volume_write.py +5 -5
- warp/tests/interop/test_dlpack.py +14 -14
- warp/tests/interop/test_jax.py +1382 -79
- warp/tests/interop/test_paddle.py +1 -1
- warp/tests/test_adam.py +0 -1
- warp/tests/test_arithmetic.py +9 -9
- warp/tests/test_array.py +529 -100
- warp/tests/test_array_reduce.py +3 -3
- warp/tests/test_atomic.py +12 -8
- warp/tests/test_atomic_bitwise.py +209 -0
- warp/tests/test_atomic_cas.py +4 -4
- warp/tests/test_bool.py +2 -2
- warp/tests/test_builtins_resolution.py +5 -571
- warp/tests/test_codegen.py +34 -15
- warp/tests/test_conditional.py +1 -1
- warp/tests/test_context.py +6 -6
- warp/tests/test_copy.py +242 -161
- warp/tests/test_ctypes.py +3 -3
- warp/tests/test_devices.py +24 -2
- warp/tests/test_examples.py +16 -84
- warp/tests/test_fabricarray.py +35 -35
- warp/tests/test_fast_math.py +0 -2
- warp/tests/test_fem.py +60 -14
- warp/tests/test_fixedarray.py +3 -3
- warp/tests/test_func.py +8 -5
- warp/tests/test_generics.py +1 -1
- warp/tests/test_indexedarray.py +24 -24
- warp/tests/test_intersect.py +39 -9
- warp/tests/test_large.py +1 -1
- warp/tests/test_lerp.py +3 -1
- warp/tests/test_linear_solvers.py +1 -1
- warp/tests/test_map.py +49 -4
- warp/tests/test_mat.py +52 -62
- warp/tests/test_mat_constructors.py +4 -5
- warp/tests/test_mat_lite.py +1 -1
- warp/tests/test_mat_scalar_ops.py +121 -121
- warp/tests/test_math.py +34 -0
- warp/tests/test_module_aot.py +4 -4
- warp/tests/test_modules_lite.py +28 -2
- warp/tests/test_print.py +11 -11
- warp/tests/test_quat.py +93 -58
- warp/tests/test_runlength_encode.py +1 -1
- warp/tests/test_scalar_ops.py +38 -10
- warp/tests/test_smoothstep.py +1 -1
- warp/tests/test_sparse.py +126 -15
- warp/tests/test_spatial.py +105 -87
- warp/tests/test_special_values.py +6 -6
- warp/tests/test_static.py +7 -7
- warp/tests/test_struct.py +13 -2
- warp/tests/test_triangle_closest_point.py +48 -1
- warp/tests/test_tuple.py +96 -0
- warp/tests/test_types.py +82 -9
- warp/tests/test_utils.py +52 -52
- warp/tests/test_vec.py +29 -29
- warp/tests/test_vec_constructors.py +5 -5
- warp/tests/test_vec_scalar_ops.py +97 -97
- warp/tests/test_version.py +75 -0
- warp/tests/tile/test_tile.py +239 -0
- warp/tests/tile/test_tile_atomic_bitwise.py +403 -0
- warp/tests/tile/test_tile_cholesky.py +7 -4
- warp/tests/tile/test_tile_load.py +26 -2
- warp/tests/tile/test_tile_mathdx.py +3 -3
- warp/tests/tile/test_tile_matmul.py +1 -1
- warp/tests/tile/test_tile_mlp.py +2 -4
- warp/tests/tile/test_tile_reduce.py +214 -13
- warp/tests/unittest_suites.py +6 -14
- warp/tests/unittest_utils.py +10 -9
- warp/tests/walkthrough_debug.py +3 -1
- warp/torch.py +6 -373
- warp/types.py +29 -5750
- warp/utils.py +10 -1659
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/METADATA +47 -103
- warp_lang-1.10.0rc2.dist-info/RECORD +468 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/Gaia-LICENSE.txt +6 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/appdirs-LICENSE.txt +22 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/asset_pixel_jpg-LICENSE.txt +3 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/cuda-LICENSE.txt +1582 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/dlpack-LICENSE.txt +201 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/fp16-LICENSE.txt +28 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/libmathdx-LICENSE.txt +220 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/llvm-LICENSE.txt +279 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/moller-LICENSE.txt +16 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/nanovdb-LICENSE.txt +2 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/nvrtc-LICENSE.txt +1592 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/svd-LICENSE.txt +23 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/unittest_parallel-LICENSE.txt +21 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/usd-LICENSE.txt +213 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/windingnumber-LICENSE.txt +21 -0
- warp/examples/assets/cartpole.urdf +0 -110
- warp/examples/assets/crazyflie.usd +0 -0
- warp/examples/assets/nv_ant.xml +0 -92
- warp/examples/assets/nv_humanoid.xml +0 -183
- warp/examples/assets/quadruped.urdf +0 -268
- warp/examples/optim/example_bounce.py +0 -266
- warp/examples/optim/example_cloth_throw.py +0 -228
- warp/examples/optim/example_drone.py +0 -870
- warp/examples/optim/example_inverse_kinematics.py +0 -182
- warp/examples/optim/example_inverse_kinematics_torch.py +0 -191
- warp/examples/optim/example_softbody_properties.py +0 -400
- warp/examples/optim/example_spring_cage.py +0 -245
- warp/examples/optim/example_trajectory.py +0 -227
- warp/examples/sim/example_cartpole.py +0 -143
- warp/examples/sim/example_cloth.py +0 -225
- warp/examples/sim/example_cloth_self_contact.py +0 -316
- warp/examples/sim/example_granular.py +0 -130
- warp/examples/sim/example_granular_collision_sdf.py +0 -202
- warp/examples/sim/example_jacobian_ik.py +0 -244
- warp/examples/sim/example_particle_chain.py +0 -124
- warp/examples/sim/example_quadruped.py +0 -203
- warp/examples/sim/example_rigid_chain.py +0 -203
- warp/examples/sim/example_rigid_contact.py +0 -195
- warp/examples/sim/example_rigid_force.py +0 -133
- warp/examples/sim/example_rigid_gyroscopic.py +0 -115
- warp/examples/sim/example_rigid_soft_contact.py +0 -140
- warp/examples/sim/example_soft_body.py +0 -196
- warp/examples/tile/example_tile_walker.py +0 -327
- warp/sim/__init__.py +0 -74
- warp/sim/articulation.py +0 -793
- warp/sim/collide.py +0 -2570
- warp/sim/graph_coloring.py +0 -307
- warp/sim/import_mjcf.py +0 -791
- warp/sim/import_snu.py +0 -227
- warp/sim/import_urdf.py +0 -579
- warp/sim/import_usd.py +0 -898
- warp/sim/inertia.py +0 -357
- warp/sim/integrator.py +0 -245
- warp/sim/integrator_euler.py +0 -2000
- warp/sim/integrator_featherstone.py +0 -2101
- warp/sim/integrator_vbd.py +0 -2487
- warp/sim/integrator_xpbd.py +0 -3295
- warp/sim/model.py +0 -4821
- warp/sim/particles.py +0 -121
- warp/sim/render.py +0 -431
- warp/sim/utils.py +0 -431
- warp/tests/sim/disabled_kinematics.py +0 -244
- warp/tests/sim/test_cloth.py +0 -863
- warp/tests/sim/test_collision.py +0 -743
- warp/tests/sim/test_coloring.py +0 -347
- warp/tests/sim/test_inertia.py +0 -161
- warp/tests/sim/test_model.py +0 -226
- warp/tests/sim/test_sim_grad.py +0 -287
- warp/tests/sim/test_sim_grad_bounce_linear.py +0 -212
- warp/tests/sim/test_sim_kinematics.py +0 -98
- warp/thirdparty/__init__.py +0 -0
- warp_lang-1.9.0.dist-info/RECORD +0 -456
- /warp/{fem → _src/fem}/quadrature/__init__.py +0 -0
- /warp/{tests/sim → _src/thirdparty}/__init__.py +0 -0
- /warp/{thirdparty → _src/thirdparty}/appdirs.py +0 -0
- /warp/{thirdparty → _src/thirdparty}/dlpack.py +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/WHEEL +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/licenses/LICENSE.md +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/top_level.txt +0 -0
|
@@ -1,169 +1,178 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
-
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
#
|
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
# you may not use this file except in compliance with the License.
|
|
6
|
-
# You may obtain a copy of the License at
|
|
7
|
-
#
|
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
#
|
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
# See the License for the specific language governing permissions and
|
|
14
|
-
# limitations under the License.
|
|
15
|
-
|
|
16
|
-
from typing import Optional
|
|
17
|
-
|
|
18
|
-
version: str = "1.
|
|
19
|
-
"""Warp version string"""
|
|
20
|
-
|
|
21
|
-
verify_fp: bool = False
|
|
22
|
-
"""Enable floating-point verification for inputs and outputs.
|
|
23
|
-
|
|
24
|
-
When enabled, checks if all values are finite before and after operations.
|
|
25
|
-
|
|
26
|
-
Note: Enabling this flag impacts performance.
|
|
27
|
-
"""
|
|
28
|
-
|
|
29
|
-
verify_cuda: bool = False
|
|
30
|
-
"""Enable CUDA error checking after kernel launches.
|
|
31
|
-
|
|
32
|
-
This setting cannot be used during graph capture
|
|
33
|
-
|
|
34
|
-
Note: Enabling this flag impacts performance
|
|
35
|
-
"""
|
|
36
|
-
|
|
37
|
-
print_launches: bool = False
|
|
38
|
-
"""Enable detailed kernel launch logging.
|
|
39
|
-
|
|
40
|
-
Prints information about each kernel launch including:
|
|
41
|
-
|
|
42
|
-
- Launch dimensions
|
|
43
|
-
- Input/output parameters
|
|
44
|
-
- Target device
|
|
45
|
-
|
|
46
|
-
Note: Enabling this flag impacts performance.
|
|
47
|
-
"""
|
|
48
|
-
|
|
49
|
-
mode: str = "release"
|
|
50
|
-
"""Compilation mode for Warp kernels.
|
|
51
|
-
|
|
52
|
-
Args:
|
|
53
|
-
mode: Either ``"release"`` or ``"debug"``.
|
|
54
|
-
|
|
55
|
-
Note: Debug mode may impact performance.
|
|
56
|
-
|
|
57
|
-
This setting can be overridden at the module level by setting the ``"mode"`` module option.
|
|
58
|
-
"""
|
|
59
|
-
|
|
60
|
-
verbose: bool = False
|
|
61
|
-
"""Enable detailed logging during code generation and compilation."""
|
|
62
|
-
|
|
63
|
-
verbose_warnings: bool = False
|
|
64
|
-
"""Enable extended warning messages with source location information."""
|
|
65
|
-
|
|
66
|
-
quiet: bool = False
|
|
67
|
-
"""Disable Warp module initialization messages.
|
|
68
|
-
|
|
69
|
-
Error messages and warnings remain unaffected.
|
|
70
|
-
"""
|
|
71
|
-
|
|
72
|
-
verify_autograd_array_access: bool = False
|
|
73
|
-
"""Enable warnings for array overwrites that may affect gradient computation."""
|
|
74
|
-
|
|
75
|
-
enable_vector_component_overwrites: bool = False
|
|
76
|
-
"""Allow multiple writes to vector/matrix/quaternion components.
|
|
77
|
-
|
|
78
|
-
Note: Enabling this may significantly increase kernel compilation time.
|
|
79
|
-
"""
|
|
80
|
-
|
|
81
|
-
cache_kernels: bool = True
|
|
82
|
-
"""Enable kernel caching between application launches."""
|
|
83
|
-
|
|
84
|
-
kernel_cache_dir: Optional[str] = None
|
|
85
|
-
"""Directory path for storing compiled kernel cache.
|
|
86
|
-
|
|
87
|
-
If ``None``, the path is determined in the following order:
|
|
88
|
-
|
|
89
|
-
1. ``WARP_CACHE_PATH`` environment variable.
|
|
90
|
-
2. System's user cache directory (via ``appdirs.user_cache_directory``).
|
|
91
|
-
|
|
92
|
-
Note: Subdirectories prefixed with ``wp_`` will be created in this location.
|
|
93
|
-
"""
|
|
94
|
-
|
|
95
|
-
cuda_output: Optional[str] = None
|
|
96
|
-
"""Preferred CUDA output format for kernel compilation.
|
|
97
|
-
|
|
98
|
-
Args:
|
|
99
|
-
cuda_output: One of {``None``, ``"ptx"``, ``"cubin"``}. If ``None``, format is auto-determined.
|
|
100
|
-
"""
|
|
101
|
-
|
|
102
|
-
ptx_target_arch: Optional[int] = None
|
|
103
|
-
"""Target architecture version for PTX generation, e.g., ``ptx_target_arch = 75``.
|
|
104
|
-
|
|
105
|
-
If ``None``, the architecture is determined by devices present in the system.
|
|
106
|
-
"""
|
|
107
|
-
|
|
108
|
-
lineinfo: bool = False
|
|
109
|
-
"""Enable the compilation of modules with line information.
|
|
110
|
-
|
|
111
|
-
Modules compiled for GPU execution will be compiled with the
|
|
112
|
-
``--generate-line-info`` compiler option, which generates line-number
|
|
113
|
-
information for device code. Line-number information is always included when
|
|
114
|
-
compiling a module in ``"debug"`` mode regardless of this setting.
|
|
115
|
-
|
|
116
|
-
This setting can be overridden at the module level by setting the ``"lineinfo"`` module option.
|
|
117
|
-
"""
|
|
118
|
-
|
|
119
|
-
line_directives: bool = True
|
|
120
|
-
"""Enable Python source line mapping in generated code.
|
|
121
|
-
|
|
122
|
-
If ``True``, ``#line`` directives are inserted in generated code for modules
|
|
123
|
-
compiled with line information
|
|
124
|
-
"""
|
|
125
|
-
|
|
126
|
-
compile_time_trace: bool = False
|
|
127
|
-
"""Enable the generation of Trace Event Format files for runtime module compilation.
|
|
128
|
-
|
|
129
|
-
These are JSON files that can be opened by tools like ``edge://tracing/`` and
|
|
130
|
-
``chrome://tracing/``.
|
|
131
|
-
|
|
132
|
-
This setting is currently only effective when compiling modules for the GPU with NVRTC (CUDA 12.8+).
|
|
133
|
-
|
|
134
|
-
This setting can be overridden at the module level by setting the ``"compile_time_trace"`` module option.
|
|
135
|
-
"""
|
|
136
|
-
|
|
137
|
-
enable_backward: bool = True
|
|
138
|
-
"""Enable compilation of kernel backward passes.
|
|
139
|
-
|
|
140
|
-
This setting can be overridden at the module level by setting the ``"enable_backward"`` module option.
|
|
141
|
-
"""
|
|
142
|
-
|
|
143
|
-
llvm_cuda: bool = False
|
|
144
|
-
"""Use Clang/LLVM compiler instead of NVRTC for CUDA compilation."""
|
|
145
|
-
|
|
146
|
-
enable_graph_capture_module_load_by_default: bool = True
|
|
147
|
-
"""Enable automatic module loading before graph capture.
|
|
148
|
-
|
|
149
|
-
Only affects systems with CUDA driver versions below 12.3.
|
|
150
|
-
"""
|
|
151
|
-
|
|
152
|
-
enable_mempools_at_init: bool = True
|
|
153
|
-
"""Enable CUDA memory pools during device initialization when supported."""
|
|
154
|
-
|
|
155
|
-
max_unroll: int = 16
|
|
156
|
-
"""Maximum unroll factor for loops.
|
|
157
|
-
|
|
158
|
-
Note that ``max_unroll`` does not consider the total number of iterations in
|
|
159
|
-
nested loops. This can result in a large amount of automatically generated code
|
|
160
|
-
if each nested loop is below the ``max_unroll`` threshold.
|
|
161
|
-
|
|
162
|
-
This setting can be overridden at the module level by setting the ``"max_unroll"`` module option.
|
|
163
|
-
"""
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
"""
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
from typing import Optional
|
|
17
|
+
|
|
18
|
+
version: str = "1.10.0rc2"
|
|
19
|
+
"""Warp version string"""
|
|
20
|
+
|
|
21
|
+
verify_fp: bool = False
|
|
22
|
+
"""Enable floating-point verification for inputs and outputs.
|
|
23
|
+
|
|
24
|
+
When enabled, checks if all values are finite before and after operations.
|
|
25
|
+
|
|
26
|
+
Note: Enabling this flag impacts performance.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
verify_cuda: bool = False
|
|
30
|
+
"""Enable CUDA error checking after kernel launches.
|
|
31
|
+
|
|
32
|
+
This setting cannot be used during graph capture
|
|
33
|
+
|
|
34
|
+
Note: Enabling this flag impacts performance
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
print_launches: bool = False
|
|
38
|
+
"""Enable detailed kernel launch logging.
|
|
39
|
+
|
|
40
|
+
Prints information about each kernel launch including:
|
|
41
|
+
|
|
42
|
+
- Launch dimensions
|
|
43
|
+
- Input/output parameters
|
|
44
|
+
- Target device
|
|
45
|
+
|
|
46
|
+
Note: Enabling this flag impacts performance.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
mode: str = "release"
|
|
50
|
+
"""Compilation mode for Warp kernels.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
mode: Either ``"release"`` or ``"debug"``.
|
|
54
|
+
|
|
55
|
+
Note: Debug mode may impact performance.
|
|
56
|
+
|
|
57
|
+
This setting can be overridden at the module level by setting the ``"mode"`` module option.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
verbose: bool = False
|
|
61
|
+
"""Enable detailed logging during code generation and compilation."""
|
|
62
|
+
|
|
63
|
+
verbose_warnings: bool = False
|
|
64
|
+
"""Enable extended warning messages with source location information."""
|
|
65
|
+
|
|
66
|
+
quiet: bool = False
|
|
67
|
+
"""Disable Warp module initialization messages.
|
|
68
|
+
|
|
69
|
+
Error messages and warnings remain unaffected.
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
verify_autograd_array_access: bool = False
|
|
73
|
+
"""Enable warnings for array overwrites that may affect gradient computation."""
|
|
74
|
+
|
|
75
|
+
enable_vector_component_overwrites: bool = False
|
|
76
|
+
"""Allow multiple writes to vector/matrix/quaternion components.
|
|
77
|
+
|
|
78
|
+
Note: Enabling this may significantly increase kernel compilation time.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
cache_kernels: bool = True
|
|
82
|
+
"""Enable kernel caching between application launches."""
|
|
83
|
+
|
|
84
|
+
kernel_cache_dir: Optional[str] = None
|
|
85
|
+
"""Directory path for storing compiled kernel cache.
|
|
86
|
+
|
|
87
|
+
If ``None``, the path is determined in the following order:
|
|
88
|
+
|
|
89
|
+
1. ``WARP_CACHE_PATH`` environment variable.
|
|
90
|
+
2. System's user cache directory (via ``appdirs.user_cache_directory``).
|
|
91
|
+
|
|
92
|
+
Note: Subdirectories prefixed with ``wp_`` will be created in this location.
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
cuda_output: Optional[str] = None
|
|
96
|
+
"""Preferred CUDA output format for kernel compilation.
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
cuda_output: One of {``None``, ``"ptx"``, ``"cubin"``}. If ``None``, format is auto-determined.
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
ptx_target_arch: Optional[int] = None
|
|
103
|
+
"""Target architecture version for PTX generation, e.g., ``ptx_target_arch = 75``.
|
|
104
|
+
|
|
105
|
+
If ``None``, the architecture is determined by devices present in the system.
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
lineinfo: bool = False
|
|
109
|
+
"""Enable the compilation of modules with line information.
|
|
110
|
+
|
|
111
|
+
Modules compiled for GPU execution will be compiled with the
|
|
112
|
+
``--generate-line-info`` compiler option, which generates line-number
|
|
113
|
+
information for device code. Line-number information is always included when
|
|
114
|
+
compiling a module in ``"debug"`` mode regardless of this setting.
|
|
115
|
+
|
|
116
|
+
This setting can be overridden at the module level by setting the ``"lineinfo"`` module option.
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
line_directives: bool = True
|
|
120
|
+
"""Enable Python source line mapping in generated code.
|
|
121
|
+
|
|
122
|
+
If ``True``, ``#line`` directives are inserted in generated code for modules
|
|
123
|
+
compiled with line information to map back to the original Python source file.
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
compile_time_trace: bool = False
|
|
127
|
+
"""Enable the generation of Trace Event Format files for runtime module compilation.
|
|
128
|
+
|
|
129
|
+
These are JSON files that can be opened by tools like ``edge://tracing/`` and
|
|
130
|
+
``chrome://tracing/``.
|
|
131
|
+
|
|
132
|
+
This setting is currently only effective when compiling modules for the GPU with NVRTC (CUDA 12.8+).
|
|
133
|
+
|
|
134
|
+
This setting can be overridden at the module level by setting the ``"compile_time_trace"`` module option.
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
enable_backward: bool = True
|
|
138
|
+
"""Enable compilation of kernel backward passes.
|
|
139
|
+
|
|
140
|
+
This setting can be overridden at the module level by setting the ``"enable_backward"`` module option.
|
|
141
|
+
"""
|
|
142
|
+
|
|
143
|
+
llvm_cuda: bool = False
|
|
144
|
+
"""Use Clang/LLVM compiler instead of NVRTC for CUDA compilation."""
|
|
145
|
+
|
|
146
|
+
enable_graph_capture_module_load_by_default: bool = True
|
|
147
|
+
"""Enable automatic module loading before graph capture.
|
|
148
|
+
|
|
149
|
+
Only affects systems with CUDA driver versions below 12.3.
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
enable_mempools_at_init: bool = True
|
|
153
|
+
"""Enable CUDA memory pools during device initialization when supported."""
|
|
154
|
+
|
|
155
|
+
max_unroll: int = 16
|
|
156
|
+
"""Maximum unroll factor for loops.
|
|
157
|
+
|
|
158
|
+
Note that ``max_unroll`` does not consider the total number of iterations in
|
|
159
|
+
nested loops. This can result in a large amount of automatically generated code
|
|
160
|
+
if each nested loop is below the ``max_unroll`` threshold.
|
|
161
|
+
|
|
162
|
+
This setting can be overridden at the module level by setting the ``"max_unroll"`` module option.
|
|
163
|
+
"""
|
|
164
|
+
|
|
165
|
+
enable_tiles_in_stack_memory: bool = True
|
|
166
|
+
"""Use stack memory instead of static memory for tile allocations on the CPU.
|
|
167
|
+
|
|
168
|
+
Static memory in kernels is not well supported on some architectures (notably AArch64). We work
|
|
169
|
+
around it by reserving stack memory on kernel entry and pointing a reserved callee-saved
|
|
170
|
+
register to it (AArch64) or a single static pointer (x86-64). To disable this and revert to relying
|
|
171
|
+
on the JIT-compiler's support for static memory, set this flag to ``False``.
|
|
172
|
+
"""
|
|
173
|
+
|
|
174
|
+
_git_commit_hash: Optional[str] = None
|
|
175
|
+
"""Git commit hash associated with the Warp installation.
|
|
176
|
+
|
|
177
|
+
Set automatically by CI, do not modify.
|
|
178
|
+
"""
|
warp/_src/constants.py
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
import math
|
|
17
|
+
|
|
18
|
+
from warp._src.types import constant
|
|
19
|
+
|
|
20
|
+
__all__ = [ # noqa: RUF022
|
|
21
|
+
"E",
|
|
22
|
+
"e",
|
|
23
|
+
"INF",
|
|
24
|
+
"inf",
|
|
25
|
+
"LOG2E",
|
|
26
|
+
"log2e",
|
|
27
|
+
"LOG10E",
|
|
28
|
+
"log10e",
|
|
29
|
+
"LN2",
|
|
30
|
+
"ln2",
|
|
31
|
+
"LN10",
|
|
32
|
+
"ln10",
|
|
33
|
+
"NAN",
|
|
34
|
+
"nan",
|
|
35
|
+
"PHI",
|
|
36
|
+
"phi",
|
|
37
|
+
"PI",
|
|
38
|
+
"pi",
|
|
39
|
+
"HALF_PI",
|
|
40
|
+
"half_pi",
|
|
41
|
+
"TAU",
|
|
42
|
+
"tau",
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
E = e = constant(2.71828182845904523536) # e
|
|
46
|
+
LOG2E = log2e = constant(1.44269504088896340736) # log2(e)
|
|
47
|
+
LOG10E = log10e = constant(0.43429448190325182765) # log10(e)
|
|
48
|
+
LN2 = ln2 = constant(0.69314718055994530942) # ln(2)
|
|
49
|
+
LN10 = ln10 = constant(2.30258509299404568402) # ln(10)
|
|
50
|
+
PHI = phi = constant(1.61803398874989484820) # golden constant
|
|
51
|
+
PI = pi = constant(3.14159265358979323846) # pi
|
|
52
|
+
HALF_PI = half_pi = constant(1.57079632679489661923) # half pi
|
|
53
|
+
TAU = tau = constant(6.28318530717958647692) # 2 * pi
|
|
54
|
+
|
|
55
|
+
INF = inf = constant(math.inf)
|
|
56
|
+
|
|
57
|
+
NAN = nan = constant(float("nan"))
|