warp-lang 1.0.2__py3-none-manylinux2014_aarch64.whl → 1.1.0__py3-none-manylinux2014_aarch64.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 +108 -97
- warp/__init__.pyi +1 -1
- warp/bin/warp-clang.so +0 -0
- warp/bin/warp.so +0 -0
- warp/build.py +115 -113
- warp/build_dll.py +383 -375
- warp/builtins.py +3425 -3354
- warp/codegen.py +2878 -2792
- warp/config.py +40 -36
- warp/constants.py +45 -45
- warp/context.py +5194 -5102
- warp/dlpack.py +442 -442
- warp/examples/__init__.py +16 -16
- warp/examples/assets/bear.usd +0 -0
- warp/examples/assets/bunny.usd +0 -0
- warp/examples/assets/cartpole.urdf +110 -110
- warp/examples/assets/crazyflie.usd +0 -0
- warp/examples/assets/cube.usd +0 -0
- warp/examples/assets/nv_ant.xml +92 -92
- warp/examples/assets/nv_humanoid.xml +183 -183
- warp/examples/assets/quadruped.urdf +267 -267
- warp/examples/assets/rocks.nvdb +0 -0
- warp/examples/assets/rocks.usd +0 -0
- warp/examples/assets/sphere.usd +0 -0
- warp/examples/benchmarks/benchmark_api.py +383 -383
- warp/examples/benchmarks/benchmark_cloth.py +278 -277
- warp/examples/benchmarks/benchmark_cloth_cupy.py +88 -88
- warp/examples/benchmarks/benchmark_cloth_jax.py +97 -100
- warp/examples/benchmarks/benchmark_cloth_numba.py +146 -142
- warp/examples/benchmarks/benchmark_cloth_numpy.py +77 -77
- warp/examples/benchmarks/benchmark_cloth_pytorch.py +86 -86
- warp/examples/benchmarks/benchmark_cloth_taichi.py +112 -112
- warp/examples/benchmarks/benchmark_cloth_warp.py +146 -146
- warp/examples/benchmarks/benchmark_launches.py +295 -295
- warp/examples/browse.py +29 -29
- warp/examples/core/example_dem.py +234 -219
- warp/examples/core/example_fluid.py +293 -267
- warp/examples/core/example_graph_capture.py +144 -126
- warp/examples/core/example_marching_cubes.py +188 -174
- warp/examples/core/example_mesh.py +174 -155
- warp/examples/core/example_mesh_intersect.py +205 -193
- warp/examples/core/example_nvdb.py +176 -170
- warp/examples/core/example_raycast.py +105 -90
- warp/examples/core/example_raymarch.py +199 -178
- warp/examples/core/example_render_opengl.py +185 -141
- warp/examples/core/example_sph.py +405 -387
- warp/examples/core/example_torch.py +222 -181
- warp/examples/core/example_wave.py +263 -248
- warp/examples/fem/bsr_utils.py +378 -380
- warp/examples/fem/example_apic_fluid.py +407 -389
- warp/examples/fem/example_convection_diffusion.py +182 -168
- warp/examples/fem/example_convection_diffusion_dg.py +219 -209
- warp/examples/fem/example_convection_diffusion_dg0.py +204 -194
- warp/examples/fem/example_deformed_geometry.py +177 -159
- warp/examples/fem/example_diffusion.py +201 -173
- warp/examples/fem/example_diffusion_3d.py +177 -152
- warp/examples/fem/example_diffusion_mgpu.py +221 -214
- warp/examples/fem/example_mixed_elasticity.py +244 -222
- warp/examples/fem/example_navier_stokes.py +259 -243
- warp/examples/fem/example_stokes.py +220 -192
- warp/examples/fem/example_stokes_transfer.py +265 -249
- warp/examples/fem/mesh_utils.py +133 -109
- warp/examples/fem/plot_utils.py +292 -287
- warp/examples/optim/example_bounce.py +260 -246
- warp/examples/optim/example_cloth_throw.py +222 -209
- warp/examples/optim/example_diffray.py +566 -536
- warp/examples/optim/example_drone.py +864 -835
- warp/examples/optim/example_inverse_kinematics.py +176 -168
- warp/examples/optim/example_inverse_kinematics_torch.py +185 -169
- warp/examples/optim/example_spring_cage.py +239 -231
- warp/examples/optim/example_trajectory.py +223 -199
- warp/examples/optim/example_walker.py +306 -293
- warp/examples/sim/example_cartpole.py +139 -129
- warp/examples/sim/example_cloth.py +196 -186
- warp/examples/sim/example_granular.py +124 -111
- warp/examples/sim/example_granular_collision_sdf.py +197 -186
- warp/examples/sim/example_jacobian_ik.py +236 -214
- warp/examples/sim/example_particle_chain.py +118 -105
- warp/examples/sim/example_quadruped.py +193 -180
- warp/examples/sim/example_rigid_chain.py +197 -187
- warp/examples/sim/example_rigid_contact.py +189 -177
- warp/examples/sim/example_rigid_force.py +127 -125
- warp/examples/sim/example_rigid_gyroscopic.py +109 -95
- warp/examples/sim/example_rigid_soft_contact.py +134 -122
- warp/examples/sim/example_soft_body.py +190 -177
- warp/fabric.py +337 -335
- warp/fem/__init__.py +60 -27
- warp/fem/cache.py +401 -388
- warp/fem/dirichlet.py +178 -179
- warp/fem/domain.py +262 -263
- warp/fem/field/__init__.py +100 -101
- warp/fem/field/field.py +148 -149
- warp/fem/field/nodal_field.py +298 -299
- warp/fem/field/restriction.py +22 -21
- warp/fem/field/test.py +180 -181
- warp/fem/field/trial.py +183 -183
- warp/fem/geometry/__init__.py +15 -19
- warp/fem/geometry/closest_point.py +69 -70
- warp/fem/geometry/deformed_geometry.py +270 -271
- warp/fem/geometry/element.py +744 -744
- warp/fem/geometry/geometry.py +184 -186
- warp/fem/geometry/grid_2d.py +380 -373
- warp/fem/geometry/grid_3d.py +441 -435
- warp/fem/geometry/hexmesh.py +953 -953
- warp/fem/geometry/partition.py +374 -376
- warp/fem/geometry/quadmesh_2d.py +532 -532
- warp/fem/geometry/tetmesh.py +840 -840
- warp/fem/geometry/trimesh_2d.py +577 -577
- warp/fem/integrate.py +1630 -1615
- warp/fem/operator.py +190 -191
- warp/fem/polynomial.py +214 -213
- warp/fem/quadrature/__init__.py +2 -2
- warp/fem/quadrature/pic_quadrature.py +243 -245
- warp/fem/quadrature/quadrature.py +295 -294
- warp/fem/space/__init__.py +294 -292
- warp/fem/space/basis_space.py +488 -489
- warp/fem/space/collocated_function_space.py +100 -105
- warp/fem/space/dof_mapper.py +236 -236
- warp/fem/space/function_space.py +148 -145
- warp/fem/space/grid_2d_function_space.py +267 -267
- warp/fem/space/grid_3d_function_space.py +305 -306
- warp/fem/space/hexmesh_function_space.py +350 -352
- warp/fem/space/partition.py +350 -350
- warp/fem/space/quadmesh_2d_function_space.py +368 -369
- warp/fem/space/restriction.py +158 -160
- warp/fem/space/shape/__init__.py +13 -15
- warp/fem/space/shape/cube_shape_function.py +738 -738
- warp/fem/space/shape/shape_function.py +102 -103
- warp/fem/space/shape/square_shape_function.py +611 -611
- warp/fem/space/shape/tet_shape_function.py +565 -567
- warp/fem/space/shape/triangle_shape_function.py +429 -429
- warp/fem/space/tetmesh_function_space.py +294 -292
- warp/fem/space/topology.py +297 -295
- warp/fem/space/trimesh_2d_function_space.py +223 -221
- warp/fem/types.py +77 -77
- warp/fem/utils.py +495 -495
- warp/jax.py +166 -141
- warp/jax_experimental.py +341 -339
- warp/native/array.h +1072 -1025
- warp/native/builtin.h +1560 -1560
- warp/native/bvh.cpp +398 -398
- warp/native/bvh.cu +525 -525
- warp/native/bvh.h +429 -429
- warp/native/clang/clang.cpp +495 -464
- warp/native/crt.cpp +31 -31
- warp/native/crt.h +334 -334
- warp/native/cuda_crt.h +1049 -1049
- warp/native/cuda_util.cpp +549 -540
- warp/native/cuda_util.h +288 -203
- warp/native/cutlass_gemm.cpp +34 -34
- warp/native/cutlass_gemm.cu +372 -372
- warp/native/error.cpp +66 -66
- warp/native/error.h +27 -27
- warp/native/fabric.h +228 -228
- warp/native/hashgrid.cpp +301 -278
- warp/native/hashgrid.cu +78 -77
- warp/native/hashgrid.h +227 -227
- warp/native/initializer_array.h +32 -32
- warp/native/intersect.h +1204 -1204
- warp/native/intersect_adj.h +365 -365
- warp/native/intersect_tri.h +322 -322
- warp/native/marching.cpp +2 -2
- warp/native/marching.cu +497 -497
- warp/native/marching.h +2 -2
- warp/native/mat.h +1498 -1498
- warp/native/matnn.h +333 -333
- warp/native/mesh.cpp +203 -203
- warp/native/mesh.cu +293 -293
- warp/native/mesh.h +1887 -1887
- warp/native/nanovdb/NanoVDB.h +4782 -4782
- warp/native/nanovdb/PNanoVDB.h +2553 -2553
- warp/native/nanovdb/PNanoVDBWrite.h +294 -294
- warp/native/noise.h +850 -850
- warp/native/quat.h +1084 -1084
- warp/native/rand.h +299 -299
- warp/native/range.h +108 -108
- warp/native/reduce.cpp +156 -156
- warp/native/reduce.cu +348 -348
- warp/native/runlength_encode.cpp +61 -61
- warp/native/runlength_encode.cu +46 -46
- warp/native/scan.cpp +30 -30
- warp/native/scan.cu +36 -36
- warp/native/scan.h +7 -7
- warp/native/solid_angle.h +442 -442
- warp/native/sort.cpp +94 -94
- warp/native/sort.cu +97 -97
- warp/native/sort.h +14 -14
- warp/native/sparse.cpp +337 -337
- warp/native/sparse.cu +544 -544
- warp/native/spatial.h +630 -630
- warp/native/svd.h +562 -562
- warp/native/temp_buffer.h +30 -30
- warp/native/vec.h +1132 -1132
- warp/native/volume.cpp +297 -297
- warp/native/volume.cu +32 -32
- warp/native/volume.h +538 -538
- warp/native/volume_builder.cu +425 -425
- warp/native/volume_builder.h +19 -19
- warp/native/warp.cpp +1057 -1052
- warp/native/warp.cu +2943 -2828
- warp/native/warp.h +313 -305
- warp/optim/__init__.py +9 -9
- warp/optim/adam.py +120 -120
- warp/optim/linear.py +1104 -939
- warp/optim/sgd.py +104 -92
- warp/render/__init__.py +10 -10
- warp/render/render_opengl.py +3217 -3204
- warp/render/render_usd.py +768 -749
- warp/render/utils.py +152 -150
- warp/sim/__init__.py +52 -59
- warp/sim/articulation.py +685 -685
- warp/sim/collide.py +1594 -1590
- warp/sim/import_mjcf.py +489 -481
- warp/sim/import_snu.py +220 -221
- warp/sim/import_urdf.py +536 -516
- warp/sim/import_usd.py +887 -881
- warp/sim/inertia.py +316 -317
- warp/sim/integrator.py +234 -233
- warp/sim/integrator_euler.py +1956 -1956
- warp/sim/integrator_featherstone.py +1910 -1991
- warp/sim/integrator_xpbd.py +3294 -3312
- warp/sim/model.py +4473 -4314
- warp/sim/particles.py +113 -112
- warp/sim/render.py +417 -403
- warp/sim/utils.py +413 -410
- warp/sparse.py +1227 -1227
- warp/stubs.py +2109 -2469
- warp/tape.py +1162 -225
- warp/tests/__init__.py +1 -1
- warp/tests/__main__.py +4 -4
- warp/tests/assets/torus.usda +105 -105
- warp/tests/aux_test_class_kernel.py +26 -26
- warp/tests/aux_test_compile_consts_dummy.py +10 -10
- warp/tests/aux_test_conditional_unequal_types_kernels.py +21 -21
- warp/tests/aux_test_dependent.py +22 -22
- warp/tests/aux_test_grad_customs.py +23 -23
- warp/tests/aux_test_reference.py +11 -11
- warp/tests/aux_test_reference_reference.py +10 -10
- warp/tests/aux_test_square.py +17 -17
- warp/tests/aux_test_unresolved_func.py +14 -14
- warp/tests/aux_test_unresolved_symbol.py +14 -14
- warp/tests/disabled_kinematics.py +239 -239
- warp/tests/run_coverage_serial.py +31 -31
- warp/tests/test_adam.py +157 -157
- warp/tests/test_arithmetic.py +1124 -1124
- warp/tests/test_array.py +2417 -2326
- warp/tests/test_array_reduce.py +150 -150
- warp/tests/test_async.py +668 -656
- warp/tests/test_atomic.py +141 -141
- warp/tests/test_bool.py +204 -149
- warp/tests/test_builtins_resolution.py +1292 -1292
- warp/tests/test_bvh.py +164 -171
- warp/tests/test_closest_point_edge_edge.py +228 -228
- warp/tests/test_codegen.py +566 -553
- warp/tests/test_compile_consts.py +97 -101
- warp/tests/test_conditional.py +246 -246
- warp/tests/test_copy.py +232 -215
- warp/tests/test_ctypes.py +632 -632
- warp/tests/test_dense.py +67 -67
- warp/tests/test_devices.py +91 -98
- warp/tests/test_dlpack.py +530 -529
- warp/tests/test_examples.py +400 -378
- warp/tests/test_fabricarray.py +955 -955
- warp/tests/test_fast_math.py +62 -54
- warp/tests/test_fem.py +1277 -1278
- warp/tests/test_fp16.py +130 -130
- warp/tests/test_func.py +338 -337
- warp/tests/test_generics.py +571 -571
- warp/tests/test_grad.py +746 -640
- warp/tests/test_grad_customs.py +333 -336
- warp/tests/test_hash_grid.py +210 -164
- warp/tests/test_import.py +39 -39
- warp/tests/test_indexedarray.py +1134 -1134
- warp/tests/test_intersect.py +67 -67
- warp/tests/test_jax.py +307 -307
- warp/tests/test_large.py +167 -164
- warp/tests/test_launch.py +354 -354
- warp/tests/test_lerp.py +261 -261
- warp/tests/test_linear_solvers.py +191 -171
- warp/tests/test_lvalue.py +421 -493
- warp/tests/test_marching_cubes.py +65 -65
- warp/tests/test_mat.py +1801 -1827
- warp/tests/test_mat_lite.py +115 -115
- warp/tests/test_mat_scalar_ops.py +2907 -2889
- warp/tests/test_math.py +126 -193
- warp/tests/test_matmul.py +500 -499
- warp/tests/test_matmul_lite.py +410 -410
- warp/tests/test_mempool.py +188 -190
- warp/tests/test_mesh.py +284 -324
- warp/tests/test_mesh_query_aabb.py +228 -241
- warp/tests/test_mesh_query_point.py +692 -702
- warp/tests/test_mesh_query_ray.py +292 -303
- warp/tests/test_mlp.py +276 -276
- warp/tests/test_model.py +110 -110
- warp/tests/test_modules_lite.py +39 -39
- warp/tests/test_multigpu.py +163 -163
- warp/tests/test_noise.py +248 -248
- warp/tests/test_operators.py +250 -250
- warp/tests/test_options.py +123 -125
- warp/tests/test_peer.py +133 -137
- warp/tests/test_pinned.py +78 -78
- warp/tests/test_print.py +54 -54
- warp/tests/test_quat.py +2086 -2086
- warp/tests/test_rand.py +288 -288
- warp/tests/test_reload.py +217 -217
- warp/tests/test_rounding.py +179 -179
- warp/tests/test_runlength_encode.py +190 -190
- warp/tests/test_sim_grad.py +243 -0
- warp/tests/test_sim_kinematics.py +91 -97
- warp/tests/test_smoothstep.py +168 -168
- warp/tests/test_snippet.py +305 -266
- warp/tests/test_sparse.py +468 -460
- warp/tests/test_spatial.py +2148 -2148
- warp/tests/test_streams.py +486 -473
- warp/tests/test_struct.py +710 -675
- warp/tests/test_tape.py +173 -148
- warp/tests/test_torch.py +743 -743
- warp/tests/test_transient_module.py +87 -87
- warp/tests/test_types.py +556 -659
- warp/tests/test_utils.py +490 -499
- warp/tests/test_vec.py +1264 -1268
- warp/tests/test_vec_lite.py +73 -73
- warp/tests/test_vec_scalar_ops.py +2099 -2099
- warp/tests/test_verify_fp.py +94 -94
- warp/tests/test_volume.py +737 -736
- warp/tests/test_volume_write.py +255 -265
- warp/tests/unittest_serial.py +37 -37
- warp/tests/unittest_suites.py +363 -359
- warp/tests/unittest_utils.py +603 -578
- warp/tests/unused_test_misc.py +71 -71
- warp/tests/walkthrough_debug.py +85 -85
- warp/thirdparty/appdirs.py +598 -598
- warp/thirdparty/dlpack.py +143 -143
- warp/thirdparty/unittest_parallel.py +566 -561
- warp/torch.py +321 -295
- warp/types.py +4504 -4450
- warp/utils.py +1008 -821
- {warp_lang-1.0.2.dist-info → warp_lang-1.1.0.dist-info}/LICENSE.md +126 -126
- {warp_lang-1.0.2.dist-info → warp_lang-1.1.0.dist-info}/METADATA +338 -400
- warp_lang-1.1.0.dist-info/RECORD +352 -0
- warp/examples/assets/cube.usda +0 -42
- warp/examples/assets/sphere.usda +0 -56
- warp/examples/assets/torus.usda +0 -105
- warp_lang-1.0.2.dist-info/RECORD +0 -352
- {warp_lang-1.0.2.dist-info → warp_lang-1.1.0.dist-info}/WHEEL +0 -0
- {warp_lang-1.0.2.dist-info → warp_lang-1.1.0.dist-info}/top_level.txt +0 -0
warp/__init__.py
CHANGED
|
@@ -1,97 +1,108 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION. All rights reserved.
|
|
2
|
-
# NVIDIA CORPORATION and its licensors retain all intellectual property
|
|
3
|
-
# and proprietary rights in and to this software, related documentation
|
|
4
|
-
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
5
|
-
# distribution of this software and related documentation without an express
|
|
6
|
-
# license agreement from NVIDIA CORPORATION is strictly prohibited.
|
|
7
|
-
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
from warp.
|
|
12
|
-
|
|
13
|
-
from warp.
|
|
14
|
-
|
|
15
|
-
from warp.
|
|
16
|
-
|
|
17
|
-
from warp.types import
|
|
18
|
-
from warp.types import
|
|
19
|
-
from warp.types import
|
|
20
|
-
from warp.types import
|
|
21
|
-
from warp.types import
|
|
22
|
-
from warp.types import
|
|
23
|
-
from warp.types import
|
|
24
|
-
from warp.types import
|
|
25
|
-
from warp.types import
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
from warp.
|
|
42
|
-
|
|
43
|
-
from warp.context import
|
|
44
|
-
from warp.context import
|
|
45
|
-
from warp.context import
|
|
46
|
-
from warp.context import
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
from warp.context import
|
|
66
|
-
from warp.context import
|
|
67
|
-
from warp.context import
|
|
68
|
-
from warp.context import
|
|
69
|
-
from warp.context import
|
|
70
|
-
from warp.context import
|
|
71
|
-
from warp.context import
|
|
72
|
-
from warp.context import
|
|
73
|
-
|
|
74
|
-
from warp.
|
|
75
|
-
|
|
76
|
-
from warp.
|
|
77
|
-
from warp.utils import
|
|
78
|
-
from warp.utils import
|
|
79
|
-
|
|
80
|
-
from warp.
|
|
81
|
-
from warp.
|
|
82
|
-
from warp.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
from warp.
|
|
92
|
-
|
|
93
|
-
from . import
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
1
|
+
# Copyright (c) 2022 NVIDIA CORPORATION. All rights reserved.
|
|
2
|
+
# NVIDIA CORPORATION and its licensors retain all intellectual property
|
|
3
|
+
# and proprietary rights in and to this software, related documentation
|
|
4
|
+
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
5
|
+
# distribution of this software and related documentation without an express
|
|
6
|
+
# license agreement from NVIDIA CORPORATION is strictly prohibited.
|
|
7
|
+
|
|
8
|
+
# isort: skip_file
|
|
9
|
+
|
|
10
|
+
# for autocomplete on builtins
|
|
11
|
+
# from warp.stubs import *
|
|
12
|
+
|
|
13
|
+
from warp.types import array, array1d, array2d, array3d, array4d, constant
|
|
14
|
+
from warp.types import indexedarray, indexedarray1d, indexedarray2d, indexedarray3d, indexedarray4d
|
|
15
|
+
from warp.fabric import fabricarray, fabricarrayarray, indexedfabricarray, indexedfabricarrayarray
|
|
16
|
+
|
|
17
|
+
from warp.types import bool, int8, uint8, int16, uint16, int32, uint32, int64, uint64, float16, float32, float64
|
|
18
|
+
from warp.types import vec2, vec2b, vec2ub, vec2s, vec2us, vec2i, vec2ui, vec2l, vec2ul, vec2h, vec2f, vec2d
|
|
19
|
+
from warp.types import vec3, vec3b, vec3ub, vec3s, vec3us, vec3i, vec3ui, vec3l, vec3ul, vec3h, vec3f, vec3d
|
|
20
|
+
from warp.types import vec4, vec4b, vec4ub, vec4s, vec4us, vec4i, vec4ui, vec4l, vec4ul, vec4h, vec4f, vec4d
|
|
21
|
+
from warp.types import mat22, mat22h, mat22f, mat22d
|
|
22
|
+
from warp.types import mat33, mat33h, mat33f, mat33d
|
|
23
|
+
from warp.types import mat44, mat44h, mat44f, mat44d
|
|
24
|
+
from warp.types import quat, quath, quatf, quatd
|
|
25
|
+
from warp.types import transform, transformh, transformf, transformd
|
|
26
|
+
from warp.types import spatial_vector, spatial_vectorh, spatial_vectorf, spatial_vectord
|
|
27
|
+
from warp.types import spatial_matrix, spatial_matrixh, spatial_matrixf, spatial_matrixd
|
|
28
|
+
|
|
29
|
+
# geometry types
|
|
30
|
+
from warp.types import Bvh, Mesh, HashGrid, Volume, MarchingCubes
|
|
31
|
+
from warp.types import bvh_query_t, hash_grid_query_t, mesh_query_aabb_t, mesh_query_point_t, mesh_query_ray_t
|
|
32
|
+
|
|
33
|
+
# device-wide gemms
|
|
34
|
+
from warp.types import matmul, adj_matmul, batched_matmul, adj_batched_matmul, from_ptr
|
|
35
|
+
|
|
36
|
+
# deprecated
|
|
37
|
+
from warp.types import vector as vec
|
|
38
|
+
from warp.types import matrix as mat
|
|
39
|
+
|
|
40
|
+
# numpy interop
|
|
41
|
+
from warp.types import dtype_from_numpy, dtype_to_numpy
|
|
42
|
+
|
|
43
|
+
from warp.context import init, func, func_grad, func_replay, func_native, kernel, struct, overload
|
|
44
|
+
from warp.context import is_cpu_available, is_cuda_available, is_device_available
|
|
45
|
+
from warp.context import get_devices, get_preferred_device
|
|
46
|
+
from warp.context import get_cuda_devices, get_cuda_device_count, get_cuda_device, map_cuda_device, unmap_cuda_device
|
|
47
|
+
from warp.context import get_device, set_device, synchronize_device
|
|
48
|
+
from warp.context import (
|
|
49
|
+
zeros,
|
|
50
|
+
zeros_like,
|
|
51
|
+
ones,
|
|
52
|
+
ones_like,
|
|
53
|
+
full,
|
|
54
|
+
full_like,
|
|
55
|
+
clone,
|
|
56
|
+
empty,
|
|
57
|
+
empty_like,
|
|
58
|
+
copy,
|
|
59
|
+
from_numpy,
|
|
60
|
+
launch,
|
|
61
|
+
synchronize,
|
|
62
|
+
force_load,
|
|
63
|
+
load_module,
|
|
64
|
+
)
|
|
65
|
+
from warp.context import set_module_options, get_module_options, get_module
|
|
66
|
+
from warp.context import capture_begin, capture_end, capture_launch
|
|
67
|
+
from warp.context import Kernel, Function, Launch
|
|
68
|
+
from warp.context import Stream, get_stream, set_stream, wait_stream, synchronize_stream
|
|
69
|
+
from warp.context import Event, record_event, wait_event, synchronize_event, get_event_elapsed_time
|
|
70
|
+
from warp.context import RegisteredGLBuffer
|
|
71
|
+
from warp.context import is_mempool_supported, is_mempool_enabled, set_mempool_enabled
|
|
72
|
+
from warp.context import set_mempool_release_threshold, get_mempool_release_threshold
|
|
73
|
+
from warp.context import is_mempool_access_supported, is_mempool_access_enabled, set_mempool_access_enabled
|
|
74
|
+
from warp.context import is_peer_access_supported, is_peer_access_enabled, set_peer_access_enabled
|
|
75
|
+
|
|
76
|
+
from warp.tape import Tape
|
|
77
|
+
from warp.utils import ScopedTimer, ScopedDevice, ScopedStream
|
|
78
|
+
from warp.utils import ScopedMempool, ScopedMempoolAccess, ScopedPeerAccess
|
|
79
|
+
from warp.utils import ScopedCapture
|
|
80
|
+
from warp.utils import transform_expand, quat_between_vectors
|
|
81
|
+
from warp.utils import TimingResult, timing_begin, timing_end, timing_print
|
|
82
|
+
from warp.utils import (
|
|
83
|
+
TIMING_KERNEL,
|
|
84
|
+
TIMING_KERNEL_BUILTIN,
|
|
85
|
+
TIMING_MEMCPY,
|
|
86
|
+
TIMING_MEMSET,
|
|
87
|
+
TIMING_GRAPH,
|
|
88
|
+
TIMING_ALL,
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
from warp.torch import from_torch, to_torch
|
|
92
|
+
from warp.torch import dtype_from_torch, dtype_to_torch
|
|
93
|
+
from warp.torch import device_from_torch, device_to_torch
|
|
94
|
+
from warp.torch import stream_from_torch, stream_to_torch
|
|
95
|
+
|
|
96
|
+
from warp.jax import from_jax, to_jax
|
|
97
|
+
from warp.jax import dtype_from_jax, dtype_to_jax
|
|
98
|
+
from warp.jax import device_from_jax, device_to_jax
|
|
99
|
+
|
|
100
|
+
from warp.dlpack import from_dlpack, to_dlpack
|
|
101
|
+
|
|
102
|
+
from warp.constants import *
|
|
103
|
+
|
|
104
|
+
from . import builtins
|
|
105
|
+
|
|
106
|
+
import warp.config
|
|
107
|
+
|
|
108
|
+
__version__ = warp.config.version
|
warp/__init__.pyi
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
from .stubs import *
|
|
1
|
+
from .stubs import *
|
warp/bin/warp-clang.so
CHANGED
|
Binary file
|
warp/bin/warp.so
CHANGED
|
Binary file
|
warp/build.py
CHANGED
|
@@ -1,113 +1,115 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION. All rights reserved.
|
|
2
|
-
# NVIDIA CORPORATION and its licensors retain all intellectual property
|
|
3
|
-
# and proprietary rights in and to this software, related documentation
|
|
4
|
-
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
5
|
-
# distribution of this software and related documentation without an express
|
|
6
|
-
# license agreement from NVIDIA CORPORATION is strictly prohibited.
|
|
7
|
-
|
|
8
|
-
import os
|
|
9
|
-
|
|
10
|
-
import warp.config
|
|
11
|
-
from warp.thirdparty import appdirs
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
# builds cuda source to PTX or CUBIN using NVRTC (output type determined by output_path extension)
|
|
15
|
-
def build_cuda(cu_path, arch, output_path, config="release", verify_fp=False, fast_math=False):
|
|
16
|
-
with open(cu_path, "rb") as src_file:
|
|
17
|
-
src = src_file.read()
|
|
18
|
-
cu_path = cu_path.encode("utf-8")
|
|
19
|
-
inc_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "native").encode("utf-8")
|
|
20
|
-
output_path = output_path.encode("utf-8")
|
|
21
|
-
|
|
22
|
-
if warp.config.llvm_cuda:
|
|
23
|
-
warp.context.runtime.llvm.compile_cuda(src, cu_path, inc_path, output_path, False)
|
|
24
|
-
|
|
25
|
-
else:
|
|
26
|
-
err = warp.context.runtime.core.cuda_compile_program(
|
|
27
|
-
src, arch, inc_path, config == "debug", warp.config.verbose, verify_fp, fast_math, output_path
|
|
28
|
-
)
|
|
29
|
-
if err != 0:
|
|
30
|
-
raise Exception(f"CUDA kernel build failed with error code {err}")
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
# load PTX or CUBIN as a CUDA runtime module (input type determined by input_path extension)
|
|
34
|
-
def load_cuda(input_path, device):
|
|
35
|
-
if not device.is_cuda:
|
|
36
|
-
raise ("Not a CUDA device")
|
|
37
|
-
|
|
38
|
-
return warp.context.runtime.core.cuda_load_module(device.context, input_path.encode("utf-8"))
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
def build_cpu(obj_path, cpp_path, mode="release", verify_fp=False, fast_math=False):
|
|
42
|
-
with open(cpp_path, "rb") as cpp:
|
|
43
|
-
src = cpp.read()
|
|
44
|
-
cpp_path = cpp_path.encode("utf-8")
|
|
45
|
-
inc_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "native").encode("utf-8")
|
|
46
|
-
obj_path = obj_path.encode("utf-8")
|
|
47
|
-
|
|
48
|
-
err = warp.context.runtime.llvm.compile_cpp(src, cpp_path, inc_path, obj_path, mode == "debug", verify_fp)
|
|
49
|
-
if err != 0:
|
|
50
|
-
raise Exception(f"CPU kernel build failed with error code {err}")
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
kernel_bin_dir = None
|
|
54
|
-
kernel_gen_dir = None
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def init_kernel_cache(path=None):
|
|
58
|
-
"""Initialize kernel cache directory.
|
|
59
|
-
|
|
60
|
-
This function is used during Warp initialization, but it can also be called directly to change the cache location.
|
|
61
|
-
If the path is not explicitly specified, a default location will be chosen based on OS-specific conventions.
|
|
62
|
-
|
|
63
|
-
To change the default cache location, set warp.config.kernel_cache_dir before calling warp.init().
|
|
64
|
-
"""
|
|
65
|
-
|
|
66
|
-
if path is not None:
|
|
67
|
-
cache_root_dir = os.path.realpath(path)
|
|
68
|
-
|
|
69
|
-
cache_root_dir =
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
1
|
+
# Copyright (c) 2022 NVIDIA CORPORATION. All rights reserved.
|
|
2
|
+
# NVIDIA CORPORATION and its licensors retain all intellectual property
|
|
3
|
+
# and proprietary rights in and to this software, related documentation
|
|
4
|
+
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
5
|
+
# distribution of this software and related documentation without an express
|
|
6
|
+
# license agreement from NVIDIA CORPORATION is strictly prohibited.
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
|
|
10
|
+
import warp.config
|
|
11
|
+
from warp.thirdparty import appdirs
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# builds cuda source to PTX or CUBIN using NVRTC (output type determined by output_path extension)
|
|
15
|
+
def build_cuda(cu_path, arch, output_path, config="release", verify_fp=False, fast_math=False):
|
|
16
|
+
with open(cu_path, "rb") as src_file:
|
|
17
|
+
src = src_file.read()
|
|
18
|
+
cu_path = cu_path.encode("utf-8")
|
|
19
|
+
inc_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "native").encode("utf-8")
|
|
20
|
+
output_path = output_path.encode("utf-8")
|
|
21
|
+
|
|
22
|
+
if warp.config.llvm_cuda:
|
|
23
|
+
warp.context.runtime.llvm.compile_cuda(src, cu_path, inc_path, output_path, False)
|
|
24
|
+
|
|
25
|
+
else:
|
|
26
|
+
err = warp.context.runtime.core.cuda_compile_program(
|
|
27
|
+
src, arch, inc_path, config == "debug", warp.config.verbose, verify_fp, fast_math, output_path
|
|
28
|
+
)
|
|
29
|
+
if err != 0:
|
|
30
|
+
raise Exception(f"CUDA kernel build failed with error code {err}")
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# load PTX or CUBIN as a CUDA runtime module (input type determined by input_path extension)
|
|
34
|
+
def load_cuda(input_path, device):
|
|
35
|
+
if not device.is_cuda:
|
|
36
|
+
raise RuntimeError("Not a CUDA device")
|
|
37
|
+
|
|
38
|
+
return warp.context.runtime.core.cuda_load_module(device.context, input_path.encode("utf-8"))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def build_cpu(obj_path, cpp_path, mode="release", verify_fp=False, fast_math=False):
|
|
42
|
+
with open(cpp_path, "rb") as cpp:
|
|
43
|
+
src = cpp.read()
|
|
44
|
+
cpp_path = cpp_path.encode("utf-8")
|
|
45
|
+
inc_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "native").encode("utf-8")
|
|
46
|
+
obj_path = obj_path.encode("utf-8")
|
|
47
|
+
|
|
48
|
+
err = warp.context.runtime.llvm.compile_cpp(src, cpp_path, inc_path, obj_path, mode == "debug", verify_fp)
|
|
49
|
+
if err != 0:
|
|
50
|
+
raise Exception(f"CPU kernel build failed with error code {err}")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
kernel_bin_dir = None
|
|
54
|
+
kernel_gen_dir = None
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def init_kernel_cache(path=None):
|
|
58
|
+
"""Initialize kernel cache directory.
|
|
59
|
+
|
|
60
|
+
This function is used during Warp initialization, but it can also be called directly to change the cache location.
|
|
61
|
+
If the path is not explicitly specified, a default location will be chosen based on OS-specific conventions.
|
|
62
|
+
|
|
63
|
+
To change the default cache location, set warp.config.kernel_cache_dir before calling warp.init().
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
if path is not None:
|
|
67
|
+
cache_root_dir = os.path.realpath(path)
|
|
68
|
+
elif "WARP_CACHE_PATH" in os.environ:
|
|
69
|
+
cache_root_dir = os.path.realpath(os.environ.get("WARP_CACHE_PATH"))
|
|
70
|
+
else:
|
|
71
|
+
cache_root_dir = appdirs.user_cache_dir(appname="warp", appauthor="NVIDIA", version=warp.config.version)
|
|
72
|
+
|
|
73
|
+
cache_bin_dir = os.path.join(cache_root_dir, "bin")
|
|
74
|
+
cache_gen_dir = os.path.join(cache_root_dir, "gen")
|
|
75
|
+
|
|
76
|
+
if not os.path.isdir(cache_root_dir):
|
|
77
|
+
# print("Creating cache directory '%s'" % cache_root_dir)
|
|
78
|
+
os.makedirs(cache_root_dir, exist_ok=True)
|
|
79
|
+
|
|
80
|
+
if not os.path.isdir(cache_gen_dir):
|
|
81
|
+
# print("Creating codegen directory '%s'" % cache_gen_dir)
|
|
82
|
+
os.makedirs(cache_gen_dir, exist_ok=True)
|
|
83
|
+
|
|
84
|
+
if not os.path.isdir(cache_bin_dir):
|
|
85
|
+
# print("Creating binary directory '%s'" % cache_bin_dir)
|
|
86
|
+
os.makedirs(cache_bin_dir, exist_ok=True)
|
|
87
|
+
|
|
88
|
+
warp.config.kernel_cache_dir = cache_root_dir
|
|
89
|
+
|
|
90
|
+
global kernel_bin_dir, kernel_gen_dir
|
|
91
|
+
kernel_bin_dir = cache_bin_dir
|
|
92
|
+
kernel_gen_dir = cache_gen_dir
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def clear_kernel_cache():
|
|
96
|
+
"""Clear the kernel cache."""
|
|
97
|
+
|
|
98
|
+
is_intialized = kernel_bin_dir is not None and kernel_gen_dir is not None
|
|
99
|
+
assert is_intialized, "The kernel cache directory is not configured; wp.init() has not been called yet or failed."
|
|
100
|
+
|
|
101
|
+
import glob
|
|
102
|
+
|
|
103
|
+
paths = []
|
|
104
|
+
|
|
105
|
+
if os.path.isdir(kernel_bin_dir):
|
|
106
|
+
pattern = os.path.join(kernel_bin_dir, "wp_*")
|
|
107
|
+
paths += glob.glob(pattern)
|
|
108
|
+
|
|
109
|
+
if os.path.isdir(kernel_gen_dir):
|
|
110
|
+
pattern = os.path.join(kernel_gen_dir, "wp_*")
|
|
111
|
+
paths += glob.glob(pattern)
|
|
112
|
+
|
|
113
|
+
for p in paths:
|
|
114
|
+
if os.path.isfile(p):
|
|
115
|
+
os.remove(p)
|