warp-lang 1.9.1__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 +794 -305
- 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} +1382 -377
- 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 -721
- warp/codegen.py +6 -4251
- warp/constants.py +6 -39
- warp/context.py +12 -8062
- 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 +1 -1
- 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 -365
- warp/jax_experimental/ffi.py +17 -873
- warp/jax_experimental/xla_ffi.py +5 -605
- warp/marching_cubes.py +5 -689
- warp/math.py +16 -393
- warp/native/array.h +385 -37
- warp/native/builtin.h +314 -37
- 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/sparse.cu +7 -3
- warp/native/spatial.h +12 -0
- warp/native/tile.h +681 -89
- 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 -0
- 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 +57 -29
- warp/native/warp.cu +253 -171
- warp/native/warp.h +11 -8
- 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 -3618
- warp/render/render_usd.py +6 -919
- 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_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 +772 -49
- 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 +527 -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 +33 -14
- 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 +56 -10
- 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 +35 -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_types.py +27 -15
- 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 +178 -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 -5764
- warp/utils.py +10 -1659
- {warp_lang-1.9.1.dist-info → warp_lang-1.10.0rc2.dist-info}/METADATA +46 -99
- 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.1.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.1.dist-info → warp_lang-1.10.0rc2.dist-info}/WHEEL +0 -0
- {warp_lang-1.9.1.dist-info → warp_lang-1.10.0rc2.dist-info}/licenses/LICENSE.md +0 -0
- {warp_lang-1.9.1.dist-info → warp_lang-1.10.0rc2.dist-info}/top_level.txt +0 -0
warp/native/warp.cpp
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
#include "array.h"
|
|
21
21
|
#include "exports.h"
|
|
22
22
|
#include "error.h"
|
|
23
|
+
#include "version.h"
|
|
23
24
|
|
|
24
25
|
#include <stdlib.h>
|
|
25
26
|
#include <string.h>
|
|
@@ -116,8 +117,27 @@ float wp_half_bits_to_float(uint16_t u)
|
|
|
116
117
|
return o.f;
|
|
117
118
|
}
|
|
118
119
|
|
|
119
|
-
int wp_init()
|
|
120
|
+
int wp_init(const char* expected_version)
|
|
120
121
|
{
|
|
122
|
+
// Check version mismatch (guard against NULL expected_version)
|
|
123
|
+
if (expected_version != NULL && strcmp(expected_version, WP_VERSION_STRING) != 0)
|
|
124
|
+
{
|
|
125
|
+
fprintf(stderr,
|
|
126
|
+
"Warp Warning: Version mismatch detected in Warp native library.\n"
|
|
127
|
+
" Expected Warp version: %s\n"
|
|
128
|
+
" Loaded native library version: %s\n"
|
|
129
|
+
" This may occur due to environment variables or multiple Warp installations.\n",
|
|
130
|
+
expected_version,
|
|
131
|
+
WP_VERSION_STRING);
|
|
132
|
+
}
|
|
133
|
+
else if (expected_version == NULL)
|
|
134
|
+
{
|
|
135
|
+
fprintf(stderr,
|
|
136
|
+
"Warp Warning: Version check skipped (NULL version provided).\n"
|
|
137
|
+
" Loaded native library version: %s\n",
|
|
138
|
+
WP_VERSION_STRING);
|
|
139
|
+
}
|
|
140
|
+
|
|
121
141
|
#if WP_ENABLE_CUDA
|
|
122
142
|
int cuda_init(void);
|
|
123
143
|
// note: it's safe to proceed even if CUDA initialization failed
|
|
@@ -131,6 +151,11 @@ void wp_shutdown()
|
|
|
131
151
|
{
|
|
132
152
|
}
|
|
133
153
|
|
|
154
|
+
const char* wp_version()
|
|
155
|
+
{
|
|
156
|
+
return WP_VERSION_STRING;
|
|
157
|
+
}
|
|
158
|
+
|
|
134
159
|
const char* wp_get_error_string()
|
|
135
160
|
{
|
|
136
161
|
return wp::get_error_string();
|
|
@@ -260,14 +285,14 @@ void wp_array_scan_float_host(uint64_t in, uint64_t out, int len, bool inclusive
|
|
|
260
285
|
static void array_copy_nd(void* dst, const void* src,
|
|
261
286
|
const int* dst_strides, const int* src_strides,
|
|
262
287
|
const int*const* dst_indices, const int*const* src_indices,
|
|
263
|
-
const int* shape, int ndim,
|
|
288
|
+
const int* shape, int ndim, size_t elem_size)
|
|
264
289
|
{
|
|
265
290
|
if (ndim == 1)
|
|
266
291
|
{
|
|
267
292
|
for (int i = 0; i < shape[0]; i++)
|
|
268
293
|
{
|
|
269
|
-
|
|
270
|
-
|
|
294
|
+
size_t src_idx = src_indices[0] ? src_indices[0][i] : i;
|
|
295
|
+
size_t dst_idx = dst_indices[0] ? dst_indices[0][i] : i;
|
|
271
296
|
const char* p = (const char*)src + src_idx * src_strides[0];
|
|
272
297
|
char* q = (char*)dst + dst_idx * dst_strides[0];
|
|
273
298
|
// copy element
|
|
@@ -278,8 +303,8 @@ static void array_copy_nd(void* dst, const void* src,
|
|
|
278
303
|
{
|
|
279
304
|
for (int i = 0; i < shape[0]; i++)
|
|
280
305
|
{
|
|
281
|
-
|
|
282
|
-
|
|
306
|
+
size_t src_idx = src_indices[0] ? src_indices[0][i] : i;
|
|
307
|
+
size_t dst_idx = dst_indices[0] ? dst_indices[0][i] : i;
|
|
283
308
|
const char* p = (const char*)src + src_idx * src_strides[0];
|
|
284
309
|
char* q = (char*)dst + dst_idx * dst_strides[0];
|
|
285
310
|
// recurse on next inner dimension
|
|
@@ -290,7 +315,7 @@ static void array_copy_nd(void* dst, const void* src,
|
|
|
290
315
|
|
|
291
316
|
|
|
292
317
|
static void array_copy_to_fabric(wp::fabricarray_t<void>& dst, const void* src_data,
|
|
293
|
-
|
|
318
|
+
size_t src_stride, const int* src_indices, size_t elem_size)
|
|
294
319
|
{
|
|
295
320
|
const int8_t* src_ptr = static_cast<const int8_t*>(src_data);
|
|
296
321
|
|
|
@@ -304,7 +329,7 @@ static void array_copy_to_fabric(wp::fabricarray_t<void>& dst, const void* src_d
|
|
|
304
329
|
size_t bucket_size = bucket.index_end - bucket.index_start;
|
|
305
330
|
for (size_t j = 0; j < bucket_size; j++)
|
|
306
331
|
{
|
|
307
|
-
|
|
332
|
+
size_t idx = *src_indices;
|
|
308
333
|
memcpy(dst_ptr, src_ptr + idx * elem_size, elem_size);
|
|
309
334
|
dst_ptr += elem_size;
|
|
310
335
|
++src_indices;
|
|
@@ -344,7 +369,7 @@ static void array_copy_to_fabric(wp::fabricarray_t<void>& dst, const void* src_d
|
|
|
344
369
|
}
|
|
345
370
|
|
|
346
371
|
static void array_copy_from_fabric(const wp::fabricarray_t<void>& src, void* dst_data,
|
|
347
|
-
|
|
372
|
+
size_t dst_stride, const int* dst_indices, size_t elem_size)
|
|
348
373
|
{
|
|
349
374
|
int8_t* dst_ptr = static_cast<int8_t*>(dst_data);
|
|
350
375
|
|
|
@@ -397,7 +422,7 @@ static void array_copy_from_fabric(const wp::fabricarray_t<void>& src, void* dst
|
|
|
397
422
|
}
|
|
398
423
|
}
|
|
399
424
|
|
|
400
|
-
static void array_copy_fabric_to_fabric(wp::fabricarray_t<void>& dst, const wp::fabricarray_t<void>& src,
|
|
425
|
+
static void array_copy_fabric_to_fabric(wp::fabricarray_t<void>& dst, const wp::fabricarray_t<void>& src, size_t elem_size)
|
|
401
426
|
{
|
|
402
427
|
wp::fabricbucket_t* dst_bucket = dst.buckets;
|
|
403
428
|
const wp::fabricbucket_t* src_bucket = src.buckets;
|
|
@@ -450,7 +475,7 @@ static void array_copy_fabric_to_fabric(wp::fabricarray_t<void>& dst, const wp::
|
|
|
450
475
|
|
|
451
476
|
|
|
452
477
|
static void array_copy_to_fabric_indexed(wp::indexedfabricarray_t<void>& dst, const void* src_data,
|
|
453
|
-
|
|
478
|
+
size_t src_stride, const int* src_indices, size_t elem_size)
|
|
454
479
|
{
|
|
455
480
|
const int8_t* src_ptr = static_cast<const int8_t*>(src_data);
|
|
456
481
|
|
|
@@ -482,7 +507,7 @@ static void array_copy_to_fabric_indexed(wp::indexedfabricarray_t<void>& dst, co
|
|
|
482
507
|
}
|
|
483
508
|
|
|
484
509
|
|
|
485
|
-
static void array_copy_fabric_indexed_to_fabric(wp::fabricarray_t<void>& dst, const wp::indexedfabricarray_t<void>& src,
|
|
510
|
+
static void array_copy_fabric_indexed_to_fabric(wp::fabricarray_t<void>& dst, const wp::indexedfabricarray_t<void>& src, size_t elem_size)
|
|
486
511
|
{
|
|
487
512
|
wp::fabricbucket_t* dst_bucket = dst.buckets;
|
|
488
513
|
int8_t* dst_ptr = static_cast<int8_t*>(dst_bucket->ptr);
|
|
@@ -508,7 +533,7 @@ static void array_copy_fabric_indexed_to_fabric(wp::fabricarray_t<void>& dst, co
|
|
|
508
533
|
}
|
|
509
534
|
|
|
510
535
|
|
|
511
|
-
static void array_copy_fabric_indexed_to_fabric_indexed(wp::indexedfabricarray_t<void>& dst, const wp::indexedfabricarray_t<void>& src,
|
|
536
|
+
static void array_copy_fabric_indexed_to_fabric_indexed(wp::indexedfabricarray_t<void>& dst, const wp::indexedfabricarray_t<void>& src, size_t elem_size)
|
|
512
537
|
{
|
|
513
538
|
for (size_t i = 0; i < src.size; i++)
|
|
514
539
|
{
|
|
@@ -523,7 +548,7 @@ static void array_copy_fabric_indexed_to_fabric_indexed(wp::indexedfabricarray_t
|
|
|
523
548
|
}
|
|
524
549
|
|
|
525
550
|
|
|
526
|
-
static void array_copy_fabric_to_fabric_indexed(wp::indexedfabricarray_t<void>& dst, const wp::fabricarray_t<void>& src,
|
|
551
|
+
static void array_copy_fabric_to_fabric_indexed(wp::indexedfabricarray_t<void>& dst, const wp::fabricarray_t<void>& src, size_t elem_size)
|
|
527
552
|
{
|
|
528
553
|
wp::fabricbucket_t* src_bucket = src.buckets;
|
|
529
554
|
const int8_t* src_ptr = static_cast<const int8_t*>(src_bucket->ptr);
|
|
@@ -550,7 +575,7 @@ static void array_copy_fabric_to_fabric_indexed(wp::indexedfabricarray_t<void>&
|
|
|
550
575
|
|
|
551
576
|
|
|
552
577
|
static void array_copy_from_fabric_indexed(const wp::indexedfabricarray_t<void>& src, void* dst_data,
|
|
553
|
-
|
|
578
|
+
size_t dst_stride, const int* dst_indices, size_t elem_size)
|
|
554
579
|
{
|
|
555
580
|
int8_t* dst_ptr = static_cast<int8_t*>(dst_data);
|
|
556
581
|
|
|
@@ -563,7 +588,7 @@ static void array_copy_from_fabric_indexed(const wp::indexedfabricarray_t<void>&
|
|
|
563
588
|
if (idx < src.fa.size)
|
|
564
589
|
{
|
|
565
590
|
const void* src_ptr = fabricarray_element_ptr(src.fa, idx, elem_size);
|
|
566
|
-
|
|
591
|
+
size_t dst_idx = dst_indices[i];
|
|
567
592
|
memcpy(dst_ptr + dst_idx * elem_size, src_ptr, elem_size);
|
|
568
593
|
}
|
|
569
594
|
else
|
|
@@ -811,22 +836,23 @@ WP_API bool wp_array_copy_host(void* dst, void* src, int dst_type, int src_type,
|
|
|
811
836
|
}
|
|
812
837
|
|
|
813
838
|
|
|
814
|
-
static void array_fill_strided(void* data, const int* shape, const int* strides, int ndim, const void* value,
|
|
839
|
+
static void array_fill_strided(void* data, const int* shape, const int* strides, int ndim, const void* value, size_t value_size)
|
|
815
840
|
{
|
|
841
|
+
size_t stride = strides[0];
|
|
816
842
|
if (ndim == 1)
|
|
817
843
|
{
|
|
818
844
|
char* p = (char*)data;
|
|
819
845
|
for (int i = 0; i < shape[0]; i++)
|
|
820
846
|
{
|
|
821
847
|
memcpy(p, value, value_size);
|
|
822
|
-
p +=
|
|
848
|
+
p += stride;
|
|
823
849
|
}
|
|
824
850
|
}
|
|
825
851
|
else
|
|
826
852
|
{
|
|
827
853
|
for (int i = 0; i < shape[0]; i++)
|
|
828
854
|
{
|
|
829
|
-
char* p = (char*)data + i *
|
|
855
|
+
char* p = (char*)data + i * stride;
|
|
830
856
|
// recurse on next inner dimension
|
|
831
857
|
array_fill_strided(p, shape + 1, strides + 1, ndim - 1, value, value_size);
|
|
832
858
|
}
|
|
@@ -834,14 +860,15 @@ static void array_fill_strided(void* data, const int* shape, const int* strides,
|
|
|
834
860
|
}
|
|
835
861
|
|
|
836
862
|
|
|
837
|
-
static void array_fill_indexed(void* data, const int* shape, const int* strides, const int*const* indices, int ndim, const void* value,
|
|
863
|
+
static void array_fill_indexed(void* data, const int* shape, const int* strides, const int*const* indices, int ndim, const void* value, size_t value_size)
|
|
838
864
|
{
|
|
865
|
+
size_t stride = strides[0];
|
|
839
866
|
if (ndim == 1)
|
|
840
867
|
{
|
|
841
868
|
for (int i = 0; i < shape[0]; i++)
|
|
842
869
|
{
|
|
843
|
-
|
|
844
|
-
char* p = (char*)data + idx *
|
|
870
|
+
size_t idx = indices[0] ? indices[0][i] : i;
|
|
871
|
+
char* p = (char*)data + idx * stride;
|
|
845
872
|
memcpy(p, value, value_size);
|
|
846
873
|
}
|
|
847
874
|
}
|
|
@@ -849,8 +876,8 @@ static void array_fill_indexed(void* data, const int* shape, const int* strides,
|
|
|
849
876
|
{
|
|
850
877
|
for (int i = 0; i < shape[0]; i++)
|
|
851
878
|
{
|
|
852
|
-
|
|
853
|
-
char* p = (char*)data + idx *
|
|
879
|
+
size_t idx = indices[0] ? indices[0][i] : i;
|
|
880
|
+
char* p = (char*)data + idx * stride;
|
|
854
881
|
// recurse on next inner dimension
|
|
855
882
|
array_fill_indexed(p, shape + 1, strides + 1, indices + 1, ndim - 1, value, value_size);
|
|
856
883
|
}
|
|
@@ -858,7 +885,7 @@ static void array_fill_indexed(void* data, const int* shape, const int* strides,
|
|
|
858
885
|
}
|
|
859
886
|
|
|
860
887
|
|
|
861
|
-
static void array_fill_fabric(wp::fabricarray_t<void>& fa, const void* value_ptr,
|
|
888
|
+
static void array_fill_fabric(wp::fabricarray_t<void>& fa, const void* value_ptr, size_t value_size)
|
|
862
889
|
{
|
|
863
890
|
for (size_t i = 0; i < fa.nbuckets; i++)
|
|
864
891
|
{
|
|
@@ -869,7 +896,7 @@ static void array_fill_fabric(wp::fabricarray_t<void>& fa, const void* value_ptr
|
|
|
869
896
|
}
|
|
870
897
|
|
|
871
898
|
|
|
872
|
-
static void array_fill_fabric_indexed(wp::indexedfabricarray_t<void>& ifa, const void* value_ptr,
|
|
899
|
+
static void array_fill_fabric_indexed(wp::indexedfabricarray_t<void>& ifa, const void* value_ptr, size_t value_size)
|
|
873
900
|
{
|
|
874
901
|
for (size_t i = 0; i < ifa.size; i++)
|
|
875
902
|
{
|
|
@@ -1002,6 +1029,7 @@ void wp_array_fill_device(void* context, void* arr, int arr_type, const void* va
|
|
|
1002
1029
|
|
|
1003
1030
|
WP_API int wp_cuda_driver_version() { return 0; }
|
|
1004
1031
|
WP_API int wp_cuda_toolkit_version() { return 0; }
|
|
1032
|
+
|
|
1005
1033
|
WP_API bool wp_cuda_driver_is_initialized() { return false; }
|
|
1006
1034
|
|
|
1007
1035
|
WP_API int wp_nvrtc_supported_arch_count() { return 0; }
|
|
@@ -1057,8 +1085,8 @@ WP_API void wp_cuda_stream_register(void* context, void* stream) {}
|
|
|
1057
1085
|
WP_API void wp_cuda_stream_unregister(void* context, void* stream) {}
|
|
1058
1086
|
WP_API void* wp_cuda_stream_get_current() { return NULL; }
|
|
1059
1087
|
WP_API void wp_cuda_stream_synchronize(void* stream) {}
|
|
1060
|
-
WP_API void wp_cuda_stream_wait_event(void* stream, void* event) {}
|
|
1061
|
-
WP_API void wp_cuda_stream_wait_stream(void* stream, void* other_stream, void* event) {}
|
|
1088
|
+
WP_API void wp_cuda_stream_wait_event(void* stream, void* event, bool external) {}
|
|
1089
|
+
WP_API void wp_cuda_stream_wait_stream(void* stream, void* other_stream, void* event, bool external) {}
|
|
1062
1090
|
WP_API int wp_cuda_stream_is_capturing(void* stream) { return 0; }
|
|
1063
1091
|
WP_API uint64_t wp_cuda_stream_get_capture_id(void* stream) { return 0; }
|
|
1064
1092
|
WP_API int wp_cuda_stream_get_priority(void* stream) { return 0; }
|
|
@@ -1066,7 +1094,7 @@ WP_API int wp_cuda_stream_get_priority(void* stream) { return 0; }
|
|
|
1066
1094
|
WP_API void* wp_cuda_event_create(void* context, unsigned flags) { return NULL; }
|
|
1067
1095
|
WP_API void wp_cuda_event_destroy(void* event) {}
|
|
1068
1096
|
WP_API int wp_cuda_event_query(void* event) { return 0; }
|
|
1069
|
-
WP_API void wp_cuda_event_record(void* event, void* stream, bool
|
|
1097
|
+
WP_API void wp_cuda_event_record(void* event, void* stream, bool external) {}
|
|
1070
1098
|
WP_API void wp_cuda_event_synchronize(void* event) {}
|
|
1071
1099
|
WP_API float wp_cuda_event_elapsed_time(void* start_event, void* end_event) { return 0.0f; }
|
|
1072
1100
|
|