warp-lang 1.6.1__py3-none-win_amd64.whl → 1.7.0__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 +21 -7
- warp/autograd.py +14 -6
- warp/bin/warp-clang.dll +0 -0
- warp/bin/warp.dll +0 -0
- warp/build.py +424 -6
- warp/build_dll.py +20 -20
- warp/builtins.py +467 -368
- warp/codegen.py +193 -125
- warp/config.py +56 -12
- warp/constants.py +14 -6
- warp/context.py +524 -277
- warp/dlpack.py +22 -12
- warp/examples/__init__.py +14 -6
- warp/examples/assets/nonuniform.usd +0 -0
- warp/examples/assets/nvidia_logo.png +0 -0
- warp/examples/benchmarks/benchmark_api.py +14 -6
- warp/examples/benchmarks/benchmark_cloth.py +14 -6
- warp/examples/benchmarks/benchmark_cloth_cupy.py +14 -6
- warp/examples/benchmarks/benchmark_cloth_jax.py +14 -6
- warp/examples/benchmarks/benchmark_cloth_numba.py +15 -0
- warp/examples/benchmarks/benchmark_cloth_numpy.py +14 -6
- warp/examples/benchmarks/benchmark_cloth_paddle.py +14 -6
- warp/examples/benchmarks/benchmark_cloth_pytorch.py +14 -6
- warp/examples/benchmarks/benchmark_cloth_taichi.py +14 -6
- warp/examples/benchmarks/benchmark_cloth_warp.py +14 -6
- warp/examples/benchmarks/benchmark_gemm.py +82 -48
- warp/examples/benchmarks/benchmark_interop_paddle.py +14 -6
- warp/examples/benchmarks/benchmark_interop_torch.py +14 -6
- warp/examples/benchmarks/benchmark_launches.py +14 -6
- warp/examples/benchmarks/benchmark_tile_load_store.py +103 -0
- warp/examples/browse.py +14 -6
- warp/examples/core/example_cupy.py +14 -6
- warp/examples/core/example_dem.py +14 -6
- warp/examples/core/example_fluid.py +14 -6
- warp/examples/core/example_graph_capture.py +14 -6
- warp/examples/core/example_marching_cubes.py +14 -6
- warp/examples/core/example_mesh.py +14 -6
- warp/examples/core/example_mesh_intersect.py +14 -6
- warp/examples/core/example_nvdb.py +14 -6
- warp/examples/core/example_raycast.py +14 -6
- warp/examples/core/example_raymarch.py +14 -6
- warp/examples/core/example_render_opengl.py +14 -6
- warp/examples/core/example_sample_mesh.py +300 -0
- warp/examples/core/example_sph.py +14 -6
- warp/examples/core/example_torch.py +14 -6
- warp/examples/core/example_wave.py +14 -6
- warp/examples/fem/example_adaptive_grid.py +14 -6
- warp/examples/fem/example_apic_fluid.py +15 -7
- warp/examples/fem/example_burgers.py +16 -8
- warp/examples/fem/example_convection_diffusion.py +14 -6
- warp/examples/fem/example_convection_diffusion_dg.py +14 -6
- warp/examples/fem/example_deformed_geometry.py +15 -7
- warp/examples/fem/example_diffusion.py +14 -6
- warp/examples/fem/example_diffusion_3d.py +14 -6
- warp/examples/fem/example_diffusion_mgpu.py +14 -6
- warp/examples/fem/example_distortion_energy.py +15 -7
- warp/examples/fem/example_magnetostatics.py +20 -12
- warp/examples/fem/example_mixed_elasticity.py +14 -6
- warp/examples/fem/example_navier_stokes.py +14 -6
- warp/examples/fem/example_nonconforming_contact.py +14 -6
- warp/examples/fem/example_stokes.py +14 -6
- warp/examples/fem/example_stokes_transfer.py +14 -6
- warp/examples/fem/example_streamlines.py +14 -6
- warp/examples/fem/utils.py +24 -3
- warp/examples/interop/example_jax_callable.py +116 -0
- warp/examples/interop/example_jax_ffi_callback.py +132 -0
- warp/examples/interop/example_jax_kernel.py +205 -0
- warp/examples/optim/example_bounce.py +14 -6
- warp/examples/optim/example_cloth_throw.py +14 -6
- warp/examples/optim/example_diffray.py +14 -6
- warp/examples/optim/example_drone.py +14 -6
- warp/examples/optim/example_fluid_checkpoint.py +497 -0
- warp/examples/optim/example_inverse_kinematics.py +14 -6
- warp/examples/optim/example_inverse_kinematics_torch.py +14 -6
- warp/examples/optim/example_softbody_properties.py +14 -6
- warp/examples/optim/example_spring_cage.py +14 -6
- warp/examples/optim/example_trajectory.py +14 -6
- warp/examples/sim/example_cartpole.py +14 -6
- warp/examples/sim/example_cloth.py +14 -6
- warp/examples/sim/example_cloth_self_contact.py +14 -6
- warp/examples/sim/example_granular.py +14 -6
- warp/examples/sim/example_granular_collision_sdf.py +14 -6
- warp/examples/sim/example_jacobian_ik.py +14 -6
- warp/examples/sim/example_particle_chain.py +14 -6
- warp/examples/sim/example_quadruped.py +14 -6
- warp/examples/sim/example_rigid_chain.py +14 -6
- warp/examples/sim/example_rigid_contact.py +14 -6
- warp/examples/sim/example_rigid_force.py +14 -6
- warp/examples/sim/example_rigid_gyroscopic.py +14 -6
- warp/examples/sim/example_rigid_soft_contact.py +14 -6
- warp/examples/sim/example_soft_body.py +14 -6
- warp/examples/tile/example_tile_cholesky.py +14 -6
- warp/examples/tile/example_tile_convolution.py +14 -6
- warp/examples/tile/example_tile_fft.py +14 -6
- warp/examples/tile/example_tile_filtering.py +14 -6
- warp/examples/tile/example_tile_matmul.py +16 -10
- warp/examples/tile/example_tile_mlp.py +14 -6
- warp/examples/tile/example_tile_nbody.py +14 -6
- warp/examples/tile/example_tile_walker.py +14 -6
- warp/fabric.py +15 -0
- warp/fem/__init__.py +26 -1
- warp/fem/adaptivity.py +19 -4
- warp/fem/cache.py +15 -0
- warp/fem/dirichlet.py +15 -0
- warp/fem/domain.py +15 -0
- warp/fem/field/__init__.py +15 -0
- warp/fem/field/field.py +15 -0
- warp/fem/field/nodal_field.py +37 -68
- warp/fem/field/restriction.py +15 -0
- warp/fem/field/virtual.py +77 -23
- warp/fem/geometry/__init__.py +15 -0
- warp/fem/geometry/adaptive_nanogrid.py +24 -10
- warp/fem/geometry/closest_point.py +16 -1
- warp/fem/geometry/deformed_geometry.py +20 -2
- warp/fem/geometry/element.py +15 -0
- warp/fem/geometry/geometry.py +20 -0
- warp/fem/geometry/grid_2d.py +27 -12
- warp/fem/geometry/grid_3d.py +27 -15
- warp/fem/geometry/hexmesh.py +20 -7
- warp/fem/geometry/nanogrid.py +24 -11
- warp/fem/geometry/partition.py +15 -0
- warp/fem/geometry/quadmesh.py +28 -13
- warp/fem/geometry/tetmesh.py +18 -4
- warp/fem/geometry/trimesh.py +18 -8
- warp/fem/integrate.py +277 -93
- warp/fem/linalg.py +20 -5
- warp/fem/operator.py +15 -0
- warp/fem/polynomial.py +15 -0
- warp/fem/quadrature/__init__.py +15 -0
- warp/fem/quadrature/pic_quadrature.py +52 -22
- warp/fem/quadrature/quadrature.py +209 -25
- warp/fem/space/__init__.py +16 -1
- warp/fem/space/basis_function_space.py +19 -2
- warp/fem/space/basis_space.py +40 -18
- warp/fem/space/dof_mapper.py +15 -0
- warp/fem/space/function_space.py +15 -0
- warp/fem/space/grid_2d_function_space.py +15 -0
- warp/fem/space/grid_3d_function_space.py +15 -0
- warp/fem/space/hexmesh_function_space.py +17 -2
- warp/fem/space/nanogrid_function_space.py +15 -0
- warp/fem/space/partition.py +21 -2
- warp/fem/space/quadmesh_function_space.py +23 -8
- warp/fem/space/restriction.py +15 -0
- warp/fem/space/shape/__init__.py +15 -0
- warp/fem/space/shape/cube_shape_function.py +38 -23
- warp/fem/space/shape/shape_function.py +15 -0
- warp/fem/space/shape/square_shape_function.py +27 -12
- warp/fem/space/shape/tet_shape_function.py +15 -0
- warp/fem/space/shape/triangle_shape_function.py +16 -1
- warp/fem/space/tetmesh_function_space.py +18 -3
- warp/fem/space/topology.py +15 -0
- warp/fem/space/trimesh_function_space.py +17 -2
- warp/fem/types.py +15 -0
- warp/fem/utils.py +27 -6
- warp/jax.py +28 -7
- warp/jax_experimental/__init__.py +16 -0
- warp/{jax_experimental.py → jax_experimental/custom_call.py} +28 -33
- warp/jax_experimental/ffi.py +698 -0
- warp/jax_experimental/xla_ffi.py +602 -0
- warp/math.py +103 -6
- warp/native/array.h +28 -6
- warp/native/builtin.h +44 -9
- warp/native/bvh.cpp +18 -7
- warp/native/bvh.cu +57 -20
- warp/native/bvh.h +17 -7
- warp/native/clang/clang.cpp +45 -9
- warp/native/coloring.cpp +15 -6
- warp/native/crt.cpp +15 -6
- warp/native/crt.h +15 -6
- warp/native/cuda_crt.h +15 -6
- warp/native/cuda_util.cpp +29 -6
- warp/native/cuda_util.h +17 -6
- warp/native/error.cpp +15 -6
- warp/native/error.h +15 -6
- warp/native/exports.h +85 -63
- warp/native/fabric.h +15 -6
- warp/native/hashgrid.cpp +15 -6
- warp/native/hashgrid.cu +15 -6
- warp/native/hashgrid.h +15 -6
- warp/native/initializer_array.h +15 -6
- warp/native/intersect.h +41 -32
- warp/native/intersect_adj.h +48 -39
- warp/native/intersect_tri.h +17 -0
- warp/native/marching.cpp +16 -0
- warp/native/marching.cu +16 -7
- warp/native/marching.h +17 -0
- warp/native/mat.h +528 -15
- warp/native/mathdx.cpp +15 -6
- warp/native/matnn.h +15 -6
- warp/native/mesh.cpp +15 -6
- warp/native/mesh.cu +15 -6
- warp/native/mesh.h +25 -16
- warp/native/noise.h +15 -6
- warp/native/quat.h +114 -17
- warp/native/rand.h +21 -6
- warp/native/range.h +15 -6
- warp/native/reduce.cpp +15 -6
- warp/native/reduce.cu +15 -6
- warp/native/runlength_encode.cpp +15 -6
- warp/native/runlength_encode.cu +15 -6
- warp/native/scan.cpp +15 -6
- warp/native/scan.cu +15 -6
- warp/native/scan.h +15 -6
- warp/native/solid_angle.h +17 -0
- warp/native/sort.cpp +137 -65
- warp/native/sort.cu +167 -21
- warp/native/sort.h +23 -7
- warp/native/sparse.cpp +58 -28
- warp/native/sparse.cu +67 -23
- warp/native/spatial.h +15 -6
- warp/native/svd.h +131 -6
- warp/native/temp_buffer.h +15 -6
- warp/native/tile.h +316 -111
- warp/native/tile_reduce.h +61 -9
- warp/native/vec.h +83 -13
- warp/native/volume.cpp +100 -119
- warp/native/volume.cu +15 -6
- warp/native/volume.h +15 -6
- warp/native/volume_builder.cu +40 -16
- warp/native/volume_builder.h +21 -6
- warp/native/volume_impl.h +15 -6
- warp/native/warp.cpp +20 -12
- warp/native/warp.cu +114 -16
- warp/native/warp.h +34 -16
- warp/optim/__init__.py +14 -6
- warp/optim/adam.py +14 -6
- warp/optim/linear.py +25 -10
- warp/optim/sgd.py +14 -6
- warp/paddle.py +14 -6
- warp/render/__init__.py +14 -6
- warp/render/render_opengl.py +14 -6
- warp/render/render_usd.py +14 -6
- warp/render/utils.py +14 -6
- warp/sim/__init__.py +14 -7
- warp/sim/articulation.py +18 -10
- warp/sim/collide.py +35 -16
- warp/sim/graph_coloring.py +14 -6
- warp/sim/import_mjcf.py +463 -162
- warp/sim/import_snu.py +14 -7
- warp/sim/import_urdf.py +46 -18
- warp/sim/import_usd.py +14 -7
- warp/sim/inertia.py +14 -6
- warp/sim/integrator.py +14 -6
- warp/sim/integrator_euler.py +19 -11
- warp/sim/integrator_featherstone.py +17 -16
- warp/sim/integrator_vbd.py +222 -8
- warp/sim/integrator_xpbd.py +19 -11
- warp/sim/model.py +56 -19
- warp/sim/particles.py +14 -6
- warp/sim/render.py +14 -6
- warp/sim/utils.py +17 -2
- warp/sparse.py +657 -555
- warp/stubs.py +231 -19
- warp/tape.py +14 -6
- warp/tests/aux_test_class_kernel.py +14 -6
- warp/tests/aux_test_compile_consts_dummy.py +14 -6
- warp/tests/aux_test_conditional_unequal_types_kernels.py +14 -6
- warp/tests/aux_test_dependent.py +14 -6
- warp/tests/aux_test_grad_customs.py +14 -6
- warp/tests/aux_test_instancing_gc.py +14 -6
- warp/tests/aux_test_module_unload.py +14 -6
- warp/tests/aux_test_name_clash1.py +14 -6
- warp/tests/aux_test_name_clash2.py +14 -6
- warp/tests/aux_test_unresolved_func.py +14 -6
- warp/tests/aux_test_unresolved_symbol.py +14 -6
- warp/tests/cuda/__init__.py +0 -0
- warp/tests/{test_async.py → cuda/test_async.py} +14 -6
- warp/tests/{test_ipc.py → cuda/test_ipc.py} +14 -6
- warp/tests/{test_mempool.py → cuda/test_mempool.py} +53 -6
- warp/tests/{test_multigpu.py → cuda/test_multigpu.py} +14 -6
- warp/tests/{test_peer.py → cuda/test_peer.py} +14 -6
- warp/tests/{test_pinned.py → cuda/test_pinned.py} +14 -6
- warp/tests/{test_streams.py → cuda/test_streams.py} +85 -6
- warp/tests/geometry/__init__.py +0 -0
- warp/tests/{test_bvh.py → geometry/test_bvh.py} +14 -6
- warp/tests/{test_hash_grid.py → geometry/test_hash_grid.py} +14 -6
- warp/tests/{test_marching_cubes.py → geometry/test_marching_cubes.py} +14 -6
- warp/tests/{test_mesh.py → geometry/test_mesh.py} +14 -6
- warp/tests/{test_mesh_query_aabb.py → geometry/test_mesh_query_aabb.py} +14 -6
- warp/tests/{test_mesh_query_point.py → geometry/test_mesh_query_point.py} +80 -69
- warp/tests/{test_mesh_query_ray.py → geometry/test_mesh_query_ray.py} +15 -7
- warp/tests/{test_volume.py → geometry/test_volume.py} +55 -12
- warp/tests/{test_volume_write.py → geometry/test_volume_write.py} +14 -6
- warp/tests/interop/__init__.py +0 -0
- warp/tests/{test_dlpack.py → interop/test_dlpack.py} +42 -11
- warp/tests/{test_jax.py → interop/test_jax.py} +14 -6
- warp/tests/{test_paddle.py → interop/test_paddle.py} +14 -6
- warp/tests/{test_torch.py → interop/test_torch.py} +14 -6
- warp/tests/run_coverage_serial.py +14 -6
- warp/tests/sim/__init__.py +0 -0
- warp/tests/{disabled_kinematics.py → sim/disabled_kinematics.py} +23 -16
- warp/tests/{flaky_test_sim_grad.py → sim/flaky_test_sim_grad.py} +14 -6
- warp/tests/{test_collision.py → sim/test_collision.py} +16 -8
- warp/tests/{test_coloring.py → sim/test_coloring.py} +14 -7
- warp/tests/{test_model.py → sim/test_model.py} +55 -7
- warp/tests/{test_sim_grad_bounce_linear.py → sim/test_sim_grad_bounce_linear.py} +14 -6
- warp/tests/{test_sim_kinematics.py → sim/test_sim_kinematics.py} +16 -7
- warp/tests/sim/test_vbd.py +597 -0
- warp/tests/test_adam.py +14 -6
- warp/tests/test_arithmetic.py +14 -6
- warp/tests/test_array.py +14 -6
- warp/tests/test_array_reduce.py +14 -6
- warp/tests/test_assert.py +14 -6
- warp/tests/test_atomic.py +14 -6
- warp/tests/test_bool.py +15 -7
- warp/tests/test_builtins_resolution.py +14 -6
- warp/tests/test_closest_point_edge_edge.py +14 -6
- warp/tests/test_codegen.py +14 -6
- warp/tests/test_codegen_instancing.py +14 -6
- warp/tests/test_compile_consts.py +14 -6
- warp/tests/test_conditional.py +14 -6
- warp/tests/test_context.py +14 -6
- warp/tests/test_copy.py +14 -6
- warp/tests/test_ctypes.py +14 -6
- warp/tests/test_dense.py +14 -6
- warp/tests/test_devices.py +14 -6
- warp/tests/test_examples.py +42 -42
- warp/tests/test_fabricarray.py +14 -6
- warp/tests/test_fast_math.py +14 -6
- warp/tests/test_fem.py +37 -10
- warp/tests/test_fp16.py +14 -6
- warp/tests/test_func.py +14 -6
- warp/tests/test_future_annotations.py +14 -6
- warp/tests/test_generics.py +14 -6
- warp/tests/test_grad.py +14 -6
- warp/tests/test_grad_customs.py +14 -6
- warp/tests/test_grad_debug.py +14 -6
- warp/tests/test_implicit_init.py +14 -6
- warp/tests/test_import.py +14 -6
- warp/tests/test_indexedarray.py +14 -6
- warp/tests/test_intersect.py +14 -6
- warp/tests/test_iter.py +14 -6
- warp/tests/test_large.py +14 -6
- warp/tests/test_launch.py +14 -6
- warp/tests/test_lerp.py +14 -6
- warp/tests/test_linear_solvers.py +15 -11
- warp/tests/test_lvalue.py +14 -6
- warp/tests/test_mat.py +247 -85
- warp/tests/test_mat_lite.py +14 -6
- warp/tests/test_mat_scalar_ops.py +18 -10
- warp/tests/test_math.py +14 -6
- warp/tests/test_mlp.py +14 -6
- warp/tests/test_module_hashing.py +14 -6
- warp/tests/test_modules_lite.py +14 -6
- warp/tests/test_noise.py +14 -6
- warp/tests/test_operators.py +14 -6
- warp/tests/test_options.py +14 -6
- warp/tests/test_overwrite.py +15 -60
- warp/tests/test_print.py +14 -6
- warp/tests/test_quat.py +81 -52
- warp/tests/test_rand.py +58 -43
- warp/tests/test_reload.py +14 -6
- warp/tests/test_rounding.py +14 -6
- warp/tests/test_runlength_encode.py +14 -6
- warp/tests/test_scalar_ops.py +14 -6
- warp/tests/test_smoothstep.py +14 -6
- warp/tests/test_snippet.py +15 -0
- warp/tests/test_sparse.py +61 -12
- warp/tests/test_spatial.py +89 -6
- warp/tests/test_special_values.py +14 -6
- warp/tests/test_static.py +15 -7
- warp/tests/test_struct.py +14 -6
- warp/tests/test_tape.py +14 -6
- warp/tests/test_transient_module.py +14 -6
- warp/tests/test_triangle_closest_point.py +14 -6
- warp/tests/test_types.py +14 -6
- warp/tests/test_utils.py +98 -10
- warp/tests/test_vec.py +60 -40
- warp/tests/test_vec_lite.py +14 -6
- warp/tests/test_vec_scalar_ops.py +14 -6
- warp/tests/test_verify_fp.py +14 -6
- warp/tests/tile/__init__.py +0 -0
- warp/tests/{test_tile.py → tile/test_tile.py} +150 -57
- warp/tests/{test_tile_load.py → tile/test_tile_load.py} +15 -7
- warp/tests/{test_tile_mathdx.py → tile/test_tile_mathdx.py} +23 -12
- warp/tests/{test_tile_mlp.py → tile/test_tile_mlp.py} +39 -20
- warp/tests/{test_tile_reduce.py → tile/test_tile_reduce.py} +74 -7
- warp/tests/{test_tile_shared_memory.py → tile/test_tile_shared_memory.py} +14 -6
- warp/tests/{test_tile_view.py → tile/test_tile_view.py} +15 -7
- warp/tests/unittest_serial.py +15 -6
- warp/tests/unittest_suites.py +59 -65
- warp/tests/unittest_utils.py +16 -7
- warp/tests/walkthrough_debug.py +14 -6
- warp/thirdparty/unittest_parallel.py +15 -8
- warp/torch.py +14 -6
- warp/types.py +124 -664
- warp/utils.py +151 -78
- {warp_lang-1.6.1.dist-info → warp_lang-1.7.0.dist-info}/METADATA +39 -12
- warp_lang-1.7.0.dist-info/RECORD +429 -0
- {warp_lang-1.6.1.dist-info → warp_lang-1.7.0.dist-info}/WHEEL +1 -1
- warp_lang-1.7.0.dist-info/licenses/LICENSE.md +202 -0
- warp/examples/optim/example_walker.py +0 -309
- warp/native/cutlass_gemm.cpp +0 -34
- warp/native/cutlass_gemm.cu +0 -373
- warp/tests/test_matmul.py +0 -503
- warp/tests/test_matmul_lite.py +0 -403
- warp/tests/test_vbd.py +0 -378
- warp/tests/unused_test_misc.py +0 -69
- warp_lang-1.6.1.dist-info/LICENSE.md +0 -126
- warp_lang-1.6.1.dist-info/RECORD +0 -419
- {warp_lang-1.6.1.dist-info → warp_lang-1.7.0.dist-info}/top_level.txt +0 -0
warp/stubs.py
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
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
|
+
|
|
1
16
|
# Autogenerated file, do not edit, this file provides stubs for builtins autocomplete in VSCode, PyCharm, etc
|
|
2
17
|
|
|
3
18
|
from typing import Any
|
|
@@ -81,7 +96,12 @@ from warp.context import Stream, get_stream, set_stream, wait_stream, synchroniz
|
|
|
81
96
|
from warp.context import Event, record_event, wait_event, synchronize_event, get_event_elapsed_time
|
|
82
97
|
from warp.context import RegisteredGLBuffer
|
|
83
98
|
from warp.context import is_mempool_supported, is_mempool_enabled, set_mempool_enabled
|
|
84
|
-
from warp.context import
|
|
99
|
+
from warp.context import (
|
|
100
|
+
set_mempool_release_threshold,
|
|
101
|
+
get_mempool_release_threshold,
|
|
102
|
+
get_mempool_used_mem_current,
|
|
103
|
+
get_mempool_used_mem_high,
|
|
104
|
+
)
|
|
85
105
|
from warp.context import is_mempool_access_supported, is_mempool_access_enabled, set_mempool_access_enabled
|
|
86
106
|
from warp.context import is_peer_access_supported, is_peer_access_enabled, set_peer_access_enabled
|
|
87
107
|
|
|
@@ -117,6 +137,7 @@ from warp.paddle import device_from_paddle, device_to_paddle
|
|
|
117
137
|
from warp.paddle import stream_from_paddle
|
|
118
138
|
|
|
119
139
|
from warp.build import clear_kernel_cache
|
|
140
|
+
from warp.build import clear_lto_cache
|
|
120
141
|
|
|
121
142
|
from warp.constants import *
|
|
122
143
|
|
|
@@ -633,6 +654,18 @@ def matrix(*args: Scalar, shape: Tuple[int, int], dtype: Scalar) -> Matrix[Any,
|
|
|
633
654
|
...
|
|
634
655
|
|
|
635
656
|
|
|
657
|
+
@over
|
|
658
|
+
def matrix_from_cols(*args: Vector[Any, Scalar]) -> Matrix[Any, Any, Scalar]:
|
|
659
|
+
"""Construct a matrix from column vectors."""
|
|
660
|
+
...
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
@over
|
|
664
|
+
def matrix_from_rows(*args: Vector[Any, Scalar]) -> Matrix[Any, Any, Scalar]:
|
|
665
|
+
"""Construct a matrix from row vectors."""
|
|
666
|
+
...
|
|
667
|
+
|
|
668
|
+
|
|
636
669
|
@over
|
|
637
670
|
def identity(n: int32, dtype: Scalar) -> Matrix[Any, Any, Scalar]:
|
|
638
671
|
"""Create an identity matrix with shape=(n,n) with the type given by ``dtype``."""
|
|
@@ -647,6 +680,14 @@ def svd3(A: Matrix[3, 3, Float], U: Matrix[3, 3, Float], sigma: Vector[3, Float]
|
|
|
647
680
|
...
|
|
648
681
|
|
|
649
682
|
|
|
683
|
+
@over
|
|
684
|
+
def svd2(A: Matrix[2, 2, Float], U: Matrix[2, 2, Float], sigma: Vector[2, Float], V: Matrix[2, 2, Scalar]):
|
|
685
|
+
"""Compute the SVD of a 2x2 matrix ``A``. The singular values are returned in ``sigma``,
|
|
686
|
+
while the left and right basis vectors are returned in ``U`` and ``V``.
|
|
687
|
+
"""
|
|
688
|
+
...
|
|
689
|
+
|
|
690
|
+
|
|
650
691
|
@over
|
|
651
692
|
def qr3(A: Matrix[3, 3, Float], Q: Matrix[3, 3, Float], R: Matrix[3, 3, Float]):
|
|
652
693
|
"""Compute the QR decomposition of a 3x3 matrix ``A``. The orthogonal matrix is returned in ``Q``,
|
|
@@ -709,7 +750,19 @@ def quat_to_axis_angle(quat: Quaternion[Float], axis: Vector[3, Float], angle: F
|
|
|
709
750
|
|
|
710
751
|
@over
|
|
711
752
|
def quat_from_matrix(mat: Matrix[3, 3, Float]) -> Quaternion[Float]:
|
|
712
|
-
"""Construct a quaternion from a 3x3 matrix.
|
|
753
|
+
"""Construct a quaternion from a 3x3 matrix.
|
|
754
|
+
|
|
755
|
+
If the matrix is not a pure rotation, but for example includes scaling or skewing, the result is undefined.
|
|
756
|
+
"""
|
|
757
|
+
...
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
@over
|
|
761
|
+
def quat_from_matrix(mat: Matrix[4, 4, Float]) -> Quaternion[Float]:
|
|
762
|
+
"""Construct a quaternion from a 4x4 matrix.
|
|
763
|
+
|
|
764
|
+
If the top-left 3x3 block of the matrix is not a pure rotation, but for example includes scaling or skewing, the result is undefined.
|
|
765
|
+
"""
|
|
713
766
|
...
|
|
714
767
|
|
|
715
768
|
|
|
@@ -1013,7 +1066,7 @@ def tile(x: Any) -> Tile:
|
|
|
1013
1066
|
|
|
1014
1067
|
This function converts values computed using scalar kernel code to a tile representation for input into collective operations.
|
|
1015
1068
|
|
|
1016
|
-
* If the input value is a scalar, then the resulting tile has ``shape=(
|
|
1069
|
+
* If the input value is a scalar, then the resulting tile has ``shape=(block_dim,)``
|
|
1017
1070
|
* If the input value is a vector, then the resulting tile has ``shape=(length(vector), block_dim)``
|
|
1018
1071
|
|
|
1019
1072
|
:param x: A per-thread local value, e.g. scalar, vector, or matrix.
|
|
@@ -1106,13 +1159,12 @@ def tile_transpose(a: Tile) -> Tile:
|
|
|
1106
1159
|
def tile_broadcast(a: Tile, shape: Tuple[int, ...]) -> Tile:
|
|
1107
1160
|
"""Broadcast a tile.
|
|
1108
1161
|
|
|
1109
|
-
|
|
1110
|
-
|
|
1162
|
+
Broadcasts the input tile ``a`` to the destination shape.
|
|
1111
1163
|
Broadcasting follows NumPy broadcast rules.
|
|
1112
1164
|
|
|
1113
1165
|
:param a: Tile to broadcast
|
|
1114
1166
|
:param shape: The shape to broadcast to
|
|
1115
|
-
:returns: Tile with broadcast
|
|
1167
|
+
:returns: Tile with broadcast shape
|
|
1116
1168
|
"""
|
|
1117
1169
|
...
|
|
1118
1170
|
|
|
@@ -1795,6 +1847,18 @@ def randi(state: uint32, low: int32, high: int32) -> int:
|
|
|
1795
1847
|
...
|
|
1796
1848
|
|
|
1797
1849
|
|
|
1850
|
+
@over
|
|
1851
|
+
def randu(state: uint32) -> uint32:
|
|
1852
|
+
"""Return a random unsigned integer in the range [0, 2^32)."""
|
|
1853
|
+
...
|
|
1854
|
+
|
|
1855
|
+
|
|
1856
|
+
@over
|
|
1857
|
+
def randu(state: uint32, low: uint32, high: uint32) -> uint32:
|
|
1858
|
+
"""Return a random unsigned integer between [low, high)."""
|
|
1859
|
+
...
|
|
1860
|
+
|
|
1861
|
+
|
|
1798
1862
|
@over
|
|
1799
1863
|
def randf(state: uint32) -> float:
|
|
1800
1864
|
"""Return a random float between [0.0, 1.0)."""
|
|
@@ -2014,61 +2078,171 @@ def tid() -> Tuple[int, int, int, int]:
|
|
|
2014
2078
|
|
|
2015
2079
|
@over
|
|
2016
2080
|
def select(cond: bool, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2017
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2081
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2082
|
+
|
|
2083
|
+
.. deprecated:: 1.7
|
|
2084
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2085
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2086
|
+
"""
|
|
2018
2087
|
...
|
|
2019
2088
|
|
|
2020
2089
|
|
|
2021
2090
|
@over
|
|
2022
2091
|
def select(cond: int8, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2023
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2092
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2093
|
+
|
|
2094
|
+
.. deprecated:: 1.7
|
|
2095
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2096
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2097
|
+
"""
|
|
2024
2098
|
...
|
|
2025
2099
|
|
|
2026
2100
|
|
|
2027
2101
|
@over
|
|
2028
2102
|
def select(cond: uint8, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2029
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2103
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2104
|
+
|
|
2105
|
+
.. deprecated:: 1.7
|
|
2106
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2107
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2108
|
+
"""
|
|
2030
2109
|
...
|
|
2031
2110
|
|
|
2032
2111
|
|
|
2033
2112
|
@over
|
|
2034
2113
|
def select(cond: int16, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2035
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2114
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2115
|
+
|
|
2116
|
+
.. deprecated:: 1.7
|
|
2117
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2118
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2119
|
+
"""
|
|
2036
2120
|
...
|
|
2037
2121
|
|
|
2038
2122
|
|
|
2039
2123
|
@over
|
|
2040
2124
|
def select(cond: uint16, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2041
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2125
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2126
|
+
|
|
2127
|
+
.. deprecated:: 1.7
|
|
2128
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2129
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2130
|
+
"""
|
|
2042
2131
|
...
|
|
2043
2132
|
|
|
2044
2133
|
|
|
2045
2134
|
@over
|
|
2046
2135
|
def select(cond: int32, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2047
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2136
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2137
|
+
|
|
2138
|
+
.. deprecated:: 1.7
|
|
2139
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2140
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2141
|
+
"""
|
|
2048
2142
|
...
|
|
2049
2143
|
|
|
2050
2144
|
|
|
2051
2145
|
@over
|
|
2052
2146
|
def select(cond: uint32, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2053
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2147
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2148
|
+
|
|
2149
|
+
.. deprecated:: 1.7
|
|
2150
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2151
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2152
|
+
"""
|
|
2054
2153
|
...
|
|
2055
2154
|
|
|
2056
2155
|
|
|
2057
2156
|
@over
|
|
2058
2157
|
def select(cond: int64, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2059
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2158
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2159
|
+
|
|
2160
|
+
.. deprecated:: 1.7
|
|
2161
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2162
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2163
|
+
"""
|
|
2060
2164
|
...
|
|
2061
2165
|
|
|
2062
2166
|
|
|
2063
2167
|
@over
|
|
2064
2168
|
def select(cond: uint64, value_if_false: Any, value_if_true: Any) -> Any:
|
|
2065
|
-
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true
|
|
2169
|
+
"""Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2170
|
+
|
|
2171
|
+
.. deprecated:: 1.7
|
|
2172
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2173
|
+
``where(cond, value_if_true, value_if_false)``.
|
|
2174
|
+
"""
|
|
2066
2175
|
...
|
|
2067
2176
|
|
|
2068
2177
|
|
|
2069
2178
|
@over
|
|
2070
2179
|
def select(arr: Array[Any], value_if_false: Any, value_if_true: Any) -> Any:
|
|
2071
|
-
"""Select between two arguments, if ``arr`` is null then return ``value_if_false``, otherwise return ``value_if_true
|
|
2180
|
+
"""Select between two arguments, if ``arr`` is null then return ``value_if_false``, otherwise return ``value_if_true``.
|
|
2181
|
+
|
|
2182
|
+
.. deprecated:: 1.7
|
|
2183
|
+
Use :func:`where` instead, which has the more intuitive argument order:
|
|
2184
|
+
``where(arr, value_if_true, value_if_false)``.
|
|
2185
|
+
"""
|
|
2186
|
+
...
|
|
2187
|
+
|
|
2188
|
+
|
|
2189
|
+
@over
|
|
2190
|
+
def where(cond: bool, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2191
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2192
|
+
...
|
|
2193
|
+
|
|
2194
|
+
|
|
2195
|
+
@over
|
|
2196
|
+
def where(cond: int8, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2197
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2198
|
+
...
|
|
2199
|
+
|
|
2200
|
+
|
|
2201
|
+
@over
|
|
2202
|
+
def where(cond: uint8, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2203
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2204
|
+
...
|
|
2205
|
+
|
|
2206
|
+
|
|
2207
|
+
@over
|
|
2208
|
+
def where(cond: int16, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2209
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2210
|
+
...
|
|
2211
|
+
|
|
2212
|
+
|
|
2213
|
+
@over
|
|
2214
|
+
def where(cond: uint16, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2215
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2216
|
+
...
|
|
2217
|
+
|
|
2218
|
+
|
|
2219
|
+
@over
|
|
2220
|
+
def where(cond: int32, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2221
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2222
|
+
...
|
|
2223
|
+
|
|
2224
|
+
|
|
2225
|
+
@over
|
|
2226
|
+
def where(cond: uint32, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2227
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2228
|
+
...
|
|
2229
|
+
|
|
2230
|
+
|
|
2231
|
+
@over
|
|
2232
|
+
def where(cond: int64, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2233
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2234
|
+
...
|
|
2235
|
+
|
|
2236
|
+
|
|
2237
|
+
@over
|
|
2238
|
+
def where(cond: uint64, value_if_true: Any, value_if_false: Any) -> Any:
|
|
2239
|
+
"""Select between two arguments, if ``cond`` is ``True`` then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2240
|
+
...
|
|
2241
|
+
|
|
2242
|
+
|
|
2243
|
+
@over
|
|
2244
|
+
def where(arr: Array[Any], value_if_true: Any, value_if_false: Any) -> Any:
|
|
2245
|
+
"""Select between two arguments, if ``arr`` is not null then return ``value_if_true``, otherwise return ``value_if_false``."""
|
|
2072
2246
|
...
|
|
2073
2247
|
|
|
2074
2248
|
|
|
@@ -2477,7 +2651,19 @@ def expect_near(a: Float, b: Float, tolerance: Float):
|
|
|
2477
2651
|
|
|
2478
2652
|
|
|
2479
2653
|
@over
|
|
2480
|
-
def expect_near(a:
|
|
2654
|
+
def expect_near(a: Vector[Any, Float], b: Vector[Any, Float], tolerance: Float):
|
|
2655
|
+
"""Prints an error to stdout if any element of ``a`` and ``b`` are not closer than tolerance in magnitude"""
|
|
2656
|
+
...
|
|
2657
|
+
|
|
2658
|
+
|
|
2659
|
+
@over
|
|
2660
|
+
def expect_near(a: Quaternion[Float], b: Quaternion[Float], tolerance: Float):
|
|
2661
|
+
"""Prints an error to stdout if any element of ``a`` and ``b`` are not closer than tolerance in magnitude"""
|
|
2662
|
+
...
|
|
2663
|
+
|
|
2664
|
+
|
|
2665
|
+
@over
|
|
2666
|
+
def expect_near(a: Matrix[Any, Any, Float], b: Matrix[Any, Any, Float], tolerance: Float):
|
|
2481
2667
|
"""Prints an error to stdout if any element of ``a`` and ``b`` are not closer than tolerance in magnitude"""
|
|
2482
2668
|
...
|
|
2483
2669
|
|
|
@@ -2886,7 +3072,7 @@ def tile_matmul(a: Tile, b: Tile, out: Tile) -> Tile:
|
|
|
2886
3072
|
* fp16, fp32, fp64 (real)
|
|
2887
3073
|
* vec2h, vec2f, vec2d (complex)
|
|
2888
3074
|
|
|
2889
|
-
All input and output tiles must have the same datatype. Tile data will
|
|
3075
|
+
All input and output tiles must have the same datatype. Tile data will automatically be migrated
|
|
2890
3076
|
to shared memory if necessary and will use TensorCore operations when available.
|
|
2891
3077
|
|
|
2892
3078
|
:param a: A tile with ``shape=(M, K)``
|
|
@@ -2905,7 +3091,7 @@ def tile_matmul(a: Tile, b: Tile) -> Tile:
|
|
|
2905
3091
|
* fp16, fp32, fp64 (real)
|
|
2906
3092
|
* vec2h, vec2f, vec2d (complex)
|
|
2907
3093
|
|
|
2908
|
-
Both input tiles must have the same datatype. Tile data will
|
|
3094
|
+
Both input tiles must have the same datatype. Tile data will automatically be migrated
|
|
2909
3095
|
to shared memory if necessary and will use TensorCore operations when available.
|
|
2910
3096
|
|
|
2911
3097
|
:param a: A tile with ``shape=(M, K)``
|
|
@@ -3119,3 +3305,29 @@ def smooth_normalize(v: Any, delta: float):
|
|
|
3119
3305
|
Vector[Any,Float]: The normalized vector.
|
|
3120
3306
|
"""
|
|
3121
3307
|
...
|
|
3308
|
+
|
|
3309
|
+
|
|
3310
|
+
@over
|
|
3311
|
+
def transform_from_matrix(mat: Matrix[4, 4, float32]) -> Transformation[float32]:
|
|
3312
|
+
"""Construct a transformation from a 4x4 matrix.
|
|
3313
|
+
|
|
3314
|
+
Args:
|
|
3315
|
+
mat (Matrix[4, 4, Float]): Matrix to convert.
|
|
3316
|
+
|
|
3317
|
+
Returns:
|
|
3318
|
+
Transformation[Float]: The transformation.
|
|
3319
|
+
"""
|
|
3320
|
+
...
|
|
3321
|
+
|
|
3322
|
+
|
|
3323
|
+
@over
|
|
3324
|
+
def transform_to_matrix(xform: Transformation[float32]) -> Matrix[4, 4, float32]:
|
|
3325
|
+
"""Convert a transformation to a 4x4 matrix.
|
|
3326
|
+
|
|
3327
|
+
Args:
|
|
3328
|
+
xform (Transformation[Float]): Transformation to convert.
|
|
3329
|
+
|
|
3330
|
+
Returns:
|
|
3331
|
+
Matrix[4, 4, Float]: The matrix.
|
|
3332
|
+
"""
|
|
3333
|
+
...
|
warp/tape.py
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
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.
|
|
7
15
|
|
|
8
16
|
from collections import defaultdict, namedtuple
|
|
9
17
|
from typing import Dict, List
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
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.
|
|
7
15
|
|
|
8
16
|
"""Dummy class used in test_reload.py"""
|
|
9
17
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
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.
|
|
7
15
|
|
|
8
16
|
import warp as wp
|
|
9
17
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2023 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
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.
|
|
7
15
|
|
|
8
16
|
"""This file defines a kernel that fails on codegen.py"""
|
|
9
17
|
|
warp/tests/aux_test_dependent.py
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
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.
|
|
7
15
|
|
|
8
16
|
"""This file is used to test reloading module references."""
|
|
9
17
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2024 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024 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.
|
|
7
15
|
|
|
8
16
|
"""This file is used to test importing a user-defined function with a custom gradient"""
|
|
9
17
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2024 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024 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.
|
|
7
15
|
|
|
8
16
|
"""Helper module used in test_codegen_instancing.py"""
|
|
9
17
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2024 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024 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.
|
|
7
15
|
|
|
8
16
|
"""Dummy module used in test_reload.py"""
|
|
9
17
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2024 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024 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.
|
|
7
15
|
|
|
8
16
|
import warp as wp
|
|
9
17
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
# Copyright (c) 2024 NVIDIA CORPORATION.
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024 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.
|
|
7
15
|
|
|
8
16
|
import warp as wp
|
|
9
17
|
|