warp-lang 1.7.0__py3-none-manylinux_2_34_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.

Files changed (429) hide show
  1. warp/__init__.py +139 -0
  2. warp/__init__.pyi +1 -0
  3. warp/autograd.py +1142 -0
  4. warp/bin/warp-clang.so +0 -0
  5. warp/bin/warp.so +0 -0
  6. warp/build.py +557 -0
  7. warp/build_dll.py +405 -0
  8. warp/builtins.py +6855 -0
  9. warp/codegen.py +3969 -0
  10. warp/config.py +158 -0
  11. warp/constants.py +57 -0
  12. warp/context.py +6812 -0
  13. warp/dlpack.py +462 -0
  14. warp/examples/__init__.py +24 -0
  15. warp/examples/assets/bear.usd +0 -0
  16. warp/examples/assets/bunny.usd +0 -0
  17. warp/examples/assets/cartpole.urdf +110 -0
  18. warp/examples/assets/crazyflie.usd +0 -0
  19. warp/examples/assets/cube.usd +0 -0
  20. warp/examples/assets/nonuniform.usd +0 -0
  21. warp/examples/assets/nv_ant.xml +92 -0
  22. warp/examples/assets/nv_humanoid.xml +183 -0
  23. warp/examples/assets/nvidia_logo.png +0 -0
  24. warp/examples/assets/pixel.jpg +0 -0
  25. warp/examples/assets/quadruped.urdf +268 -0
  26. warp/examples/assets/rocks.nvdb +0 -0
  27. warp/examples/assets/rocks.usd +0 -0
  28. warp/examples/assets/sphere.usd +0 -0
  29. warp/examples/assets/square_cloth.usd +0 -0
  30. warp/examples/benchmarks/benchmark_api.py +389 -0
  31. warp/examples/benchmarks/benchmark_cloth.py +296 -0
  32. warp/examples/benchmarks/benchmark_cloth_cupy.py +96 -0
  33. warp/examples/benchmarks/benchmark_cloth_jax.py +105 -0
  34. warp/examples/benchmarks/benchmark_cloth_numba.py +161 -0
  35. warp/examples/benchmarks/benchmark_cloth_numpy.py +85 -0
  36. warp/examples/benchmarks/benchmark_cloth_paddle.py +94 -0
  37. warp/examples/benchmarks/benchmark_cloth_pytorch.py +94 -0
  38. warp/examples/benchmarks/benchmark_cloth_taichi.py +120 -0
  39. warp/examples/benchmarks/benchmark_cloth_warp.py +153 -0
  40. warp/examples/benchmarks/benchmark_gemm.py +164 -0
  41. warp/examples/benchmarks/benchmark_interop_paddle.py +166 -0
  42. warp/examples/benchmarks/benchmark_interop_torch.py +166 -0
  43. warp/examples/benchmarks/benchmark_launches.py +301 -0
  44. warp/examples/benchmarks/benchmark_tile_load_store.py +103 -0
  45. warp/examples/browse.py +37 -0
  46. warp/examples/core/example_cupy.py +86 -0
  47. warp/examples/core/example_dem.py +241 -0
  48. warp/examples/core/example_fluid.py +299 -0
  49. warp/examples/core/example_graph_capture.py +150 -0
  50. warp/examples/core/example_marching_cubes.py +194 -0
  51. warp/examples/core/example_mesh.py +180 -0
  52. warp/examples/core/example_mesh_intersect.py +211 -0
  53. warp/examples/core/example_nvdb.py +182 -0
  54. warp/examples/core/example_raycast.py +111 -0
  55. warp/examples/core/example_raymarch.py +205 -0
  56. warp/examples/core/example_render_opengl.py +193 -0
  57. warp/examples/core/example_sample_mesh.py +300 -0
  58. warp/examples/core/example_sph.py +411 -0
  59. warp/examples/core/example_torch.py +211 -0
  60. warp/examples/core/example_wave.py +269 -0
  61. warp/examples/fem/example_adaptive_grid.py +286 -0
  62. warp/examples/fem/example_apic_fluid.py +423 -0
  63. warp/examples/fem/example_burgers.py +261 -0
  64. warp/examples/fem/example_convection_diffusion.py +178 -0
  65. warp/examples/fem/example_convection_diffusion_dg.py +204 -0
  66. warp/examples/fem/example_deformed_geometry.py +172 -0
  67. warp/examples/fem/example_diffusion.py +196 -0
  68. warp/examples/fem/example_diffusion_3d.py +225 -0
  69. warp/examples/fem/example_diffusion_mgpu.py +220 -0
  70. warp/examples/fem/example_distortion_energy.py +228 -0
  71. warp/examples/fem/example_magnetostatics.py +240 -0
  72. warp/examples/fem/example_mixed_elasticity.py +291 -0
  73. warp/examples/fem/example_navier_stokes.py +261 -0
  74. warp/examples/fem/example_nonconforming_contact.py +298 -0
  75. warp/examples/fem/example_stokes.py +213 -0
  76. warp/examples/fem/example_stokes_transfer.py +262 -0
  77. warp/examples/fem/example_streamlines.py +352 -0
  78. warp/examples/fem/utils.py +1000 -0
  79. warp/examples/interop/example_jax_callable.py +116 -0
  80. warp/examples/interop/example_jax_ffi_callback.py +132 -0
  81. warp/examples/interop/example_jax_kernel.py +205 -0
  82. warp/examples/optim/example_bounce.py +266 -0
  83. warp/examples/optim/example_cloth_throw.py +228 -0
  84. warp/examples/optim/example_diffray.py +561 -0
  85. warp/examples/optim/example_drone.py +870 -0
  86. warp/examples/optim/example_fluid_checkpoint.py +497 -0
  87. warp/examples/optim/example_inverse_kinematics.py +182 -0
  88. warp/examples/optim/example_inverse_kinematics_torch.py +191 -0
  89. warp/examples/optim/example_softbody_properties.py +400 -0
  90. warp/examples/optim/example_spring_cage.py +245 -0
  91. warp/examples/optim/example_trajectory.py +227 -0
  92. warp/examples/sim/example_cartpole.py +143 -0
  93. warp/examples/sim/example_cloth.py +225 -0
  94. warp/examples/sim/example_cloth_self_contact.py +322 -0
  95. warp/examples/sim/example_granular.py +130 -0
  96. warp/examples/sim/example_granular_collision_sdf.py +202 -0
  97. warp/examples/sim/example_jacobian_ik.py +244 -0
  98. warp/examples/sim/example_particle_chain.py +124 -0
  99. warp/examples/sim/example_quadruped.py +203 -0
  100. warp/examples/sim/example_rigid_chain.py +203 -0
  101. warp/examples/sim/example_rigid_contact.py +195 -0
  102. warp/examples/sim/example_rigid_force.py +133 -0
  103. warp/examples/sim/example_rigid_gyroscopic.py +115 -0
  104. warp/examples/sim/example_rigid_soft_contact.py +140 -0
  105. warp/examples/sim/example_soft_body.py +196 -0
  106. warp/examples/tile/example_tile_cholesky.py +87 -0
  107. warp/examples/tile/example_tile_convolution.py +66 -0
  108. warp/examples/tile/example_tile_fft.py +55 -0
  109. warp/examples/tile/example_tile_filtering.py +113 -0
  110. warp/examples/tile/example_tile_matmul.py +85 -0
  111. warp/examples/tile/example_tile_mlp.py +383 -0
  112. warp/examples/tile/example_tile_nbody.py +199 -0
  113. warp/examples/tile/example_tile_walker.py +327 -0
  114. warp/fabric.py +355 -0
  115. warp/fem/__init__.py +106 -0
  116. warp/fem/adaptivity.py +508 -0
  117. warp/fem/cache.py +572 -0
  118. warp/fem/dirichlet.py +202 -0
  119. warp/fem/domain.py +411 -0
  120. warp/fem/field/__init__.py +125 -0
  121. warp/fem/field/field.py +619 -0
  122. warp/fem/field/nodal_field.py +326 -0
  123. warp/fem/field/restriction.py +37 -0
  124. warp/fem/field/virtual.py +848 -0
  125. warp/fem/geometry/__init__.py +32 -0
  126. warp/fem/geometry/adaptive_nanogrid.py +857 -0
  127. warp/fem/geometry/closest_point.py +84 -0
  128. warp/fem/geometry/deformed_geometry.py +221 -0
  129. warp/fem/geometry/element.py +776 -0
  130. warp/fem/geometry/geometry.py +362 -0
  131. warp/fem/geometry/grid_2d.py +392 -0
  132. warp/fem/geometry/grid_3d.py +452 -0
  133. warp/fem/geometry/hexmesh.py +911 -0
  134. warp/fem/geometry/nanogrid.py +571 -0
  135. warp/fem/geometry/partition.py +389 -0
  136. warp/fem/geometry/quadmesh.py +663 -0
  137. warp/fem/geometry/tetmesh.py +855 -0
  138. warp/fem/geometry/trimesh.py +806 -0
  139. warp/fem/integrate.py +2335 -0
  140. warp/fem/linalg.py +419 -0
  141. warp/fem/operator.py +293 -0
  142. warp/fem/polynomial.py +229 -0
  143. warp/fem/quadrature/__init__.py +17 -0
  144. warp/fem/quadrature/pic_quadrature.py +299 -0
  145. warp/fem/quadrature/quadrature.py +591 -0
  146. warp/fem/space/__init__.py +228 -0
  147. warp/fem/space/basis_function_space.py +468 -0
  148. warp/fem/space/basis_space.py +667 -0
  149. warp/fem/space/dof_mapper.py +251 -0
  150. warp/fem/space/function_space.py +309 -0
  151. warp/fem/space/grid_2d_function_space.py +177 -0
  152. warp/fem/space/grid_3d_function_space.py +227 -0
  153. warp/fem/space/hexmesh_function_space.py +257 -0
  154. warp/fem/space/nanogrid_function_space.py +201 -0
  155. warp/fem/space/partition.py +367 -0
  156. warp/fem/space/quadmesh_function_space.py +223 -0
  157. warp/fem/space/restriction.py +179 -0
  158. warp/fem/space/shape/__init__.py +143 -0
  159. warp/fem/space/shape/cube_shape_function.py +1105 -0
  160. warp/fem/space/shape/shape_function.py +133 -0
  161. warp/fem/space/shape/square_shape_function.py +926 -0
  162. warp/fem/space/shape/tet_shape_function.py +834 -0
  163. warp/fem/space/shape/triangle_shape_function.py +672 -0
  164. warp/fem/space/tetmesh_function_space.py +271 -0
  165. warp/fem/space/topology.py +424 -0
  166. warp/fem/space/trimesh_function_space.py +194 -0
  167. warp/fem/types.py +99 -0
  168. warp/fem/utils.py +420 -0
  169. warp/jax.py +187 -0
  170. warp/jax_experimental/__init__.py +16 -0
  171. warp/jax_experimental/custom_call.py +351 -0
  172. warp/jax_experimental/ffi.py +698 -0
  173. warp/jax_experimental/xla_ffi.py +602 -0
  174. warp/math.py +244 -0
  175. warp/native/array.h +1145 -0
  176. warp/native/builtin.h +1800 -0
  177. warp/native/bvh.cpp +492 -0
  178. warp/native/bvh.cu +791 -0
  179. warp/native/bvh.h +554 -0
  180. warp/native/clang/clang.cpp +536 -0
  181. warp/native/coloring.cpp +613 -0
  182. warp/native/crt.cpp +51 -0
  183. warp/native/crt.h +362 -0
  184. warp/native/cuda_crt.h +1058 -0
  185. warp/native/cuda_util.cpp +646 -0
  186. warp/native/cuda_util.h +307 -0
  187. warp/native/error.cpp +77 -0
  188. warp/native/error.h +36 -0
  189. warp/native/exports.h +1878 -0
  190. warp/native/fabric.h +245 -0
  191. warp/native/hashgrid.cpp +311 -0
  192. warp/native/hashgrid.cu +87 -0
  193. warp/native/hashgrid.h +240 -0
  194. warp/native/initializer_array.h +41 -0
  195. warp/native/intersect.h +1230 -0
  196. warp/native/intersect_adj.h +375 -0
  197. warp/native/intersect_tri.h +339 -0
  198. warp/native/marching.cpp +19 -0
  199. warp/native/marching.cu +514 -0
  200. warp/native/marching.h +19 -0
  201. warp/native/mat.h +2220 -0
  202. warp/native/mathdx.cpp +87 -0
  203. warp/native/matnn.h +343 -0
  204. warp/native/mesh.cpp +266 -0
  205. warp/native/mesh.cu +404 -0
  206. warp/native/mesh.h +1980 -0
  207. warp/native/nanovdb/GridHandle.h +366 -0
  208. warp/native/nanovdb/HostBuffer.h +590 -0
  209. warp/native/nanovdb/NanoVDB.h +6624 -0
  210. warp/native/nanovdb/PNanoVDB.h +3390 -0
  211. warp/native/noise.h +859 -0
  212. warp/native/quat.h +1371 -0
  213. warp/native/rand.h +342 -0
  214. warp/native/range.h +139 -0
  215. warp/native/reduce.cpp +174 -0
  216. warp/native/reduce.cu +364 -0
  217. warp/native/runlength_encode.cpp +79 -0
  218. warp/native/runlength_encode.cu +61 -0
  219. warp/native/scan.cpp +47 -0
  220. warp/native/scan.cu +53 -0
  221. warp/native/scan.h +23 -0
  222. warp/native/solid_angle.h +466 -0
  223. warp/native/sort.cpp +251 -0
  224. warp/native/sort.cu +277 -0
  225. warp/native/sort.h +33 -0
  226. warp/native/sparse.cpp +378 -0
  227. warp/native/sparse.cu +524 -0
  228. warp/native/spatial.h +657 -0
  229. warp/native/svd.h +702 -0
  230. warp/native/temp_buffer.h +46 -0
  231. warp/native/tile.h +2584 -0
  232. warp/native/tile_reduce.h +264 -0
  233. warp/native/vec.h +1426 -0
  234. warp/native/volume.cpp +501 -0
  235. warp/native/volume.cu +67 -0
  236. warp/native/volume.h +969 -0
  237. warp/native/volume_builder.cu +477 -0
  238. warp/native/volume_builder.h +52 -0
  239. warp/native/volume_impl.h +70 -0
  240. warp/native/warp.cpp +1082 -0
  241. warp/native/warp.cu +3636 -0
  242. warp/native/warp.h +381 -0
  243. warp/optim/__init__.py +17 -0
  244. warp/optim/adam.py +163 -0
  245. warp/optim/linear.py +1137 -0
  246. warp/optim/sgd.py +112 -0
  247. warp/paddle.py +407 -0
  248. warp/render/__init__.py +18 -0
  249. warp/render/render_opengl.py +3518 -0
  250. warp/render/render_usd.py +784 -0
  251. warp/render/utils.py +160 -0
  252. warp/sim/__init__.py +65 -0
  253. warp/sim/articulation.py +793 -0
  254. warp/sim/collide.py +2395 -0
  255. warp/sim/graph_coloring.py +300 -0
  256. warp/sim/import_mjcf.py +790 -0
  257. warp/sim/import_snu.py +227 -0
  258. warp/sim/import_urdf.py +579 -0
  259. warp/sim/import_usd.py +894 -0
  260. warp/sim/inertia.py +324 -0
  261. warp/sim/integrator.py +242 -0
  262. warp/sim/integrator_euler.py +1997 -0
  263. warp/sim/integrator_featherstone.py +2101 -0
  264. warp/sim/integrator_vbd.py +2048 -0
  265. warp/sim/integrator_xpbd.py +3292 -0
  266. warp/sim/model.py +4791 -0
  267. warp/sim/particles.py +121 -0
  268. warp/sim/render.py +427 -0
  269. warp/sim/utils.py +428 -0
  270. warp/sparse.py +2057 -0
  271. warp/stubs.py +3333 -0
  272. warp/tape.py +1203 -0
  273. warp/tests/__init__.py +1 -0
  274. warp/tests/__main__.py +4 -0
  275. warp/tests/assets/curlnoise_golden.npy +0 -0
  276. warp/tests/assets/mlp_golden.npy +0 -0
  277. warp/tests/assets/pixel.npy +0 -0
  278. warp/tests/assets/pnoise_golden.npy +0 -0
  279. warp/tests/assets/spiky.usd +0 -0
  280. warp/tests/assets/test_grid.nvdb +0 -0
  281. warp/tests/assets/test_index_grid.nvdb +0 -0
  282. warp/tests/assets/test_int32_grid.nvdb +0 -0
  283. warp/tests/assets/test_vec_grid.nvdb +0 -0
  284. warp/tests/assets/torus.nvdb +0 -0
  285. warp/tests/assets/torus.usda +105 -0
  286. warp/tests/aux_test_class_kernel.py +34 -0
  287. warp/tests/aux_test_compile_consts_dummy.py +18 -0
  288. warp/tests/aux_test_conditional_unequal_types_kernels.py +29 -0
  289. warp/tests/aux_test_dependent.py +29 -0
  290. warp/tests/aux_test_grad_customs.py +29 -0
  291. warp/tests/aux_test_instancing_gc.py +26 -0
  292. warp/tests/aux_test_module_unload.py +23 -0
  293. warp/tests/aux_test_name_clash1.py +40 -0
  294. warp/tests/aux_test_name_clash2.py +40 -0
  295. warp/tests/aux_test_reference.py +9 -0
  296. warp/tests/aux_test_reference_reference.py +8 -0
  297. warp/tests/aux_test_square.py +16 -0
  298. warp/tests/aux_test_unresolved_func.py +22 -0
  299. warp/tests/aux_test_unresolved_symbol.py +22 -0
  300. warp/tests/cuda/__init__.py +0 -0
  301. warp/tests/cuda/test_async.py +676 -0
  302. warp/tests/cuda/test_ipc.py +124 -0
  303. warp/tests/cuda/test_mempool.py +233 -0
  304. warp/tests/cuda/test_multigpu.py +169 -0
  305. warp/tests/cuda/test_peer.py +139 -0
  306. warp/tests/cuda/test_pinned.py +84 -0
  307. warp/tests/cuda/test_streams.py +634 -0
  308. warp/tests/geometry/__init__.py +0 -0
  309. warp/tests/geometry/test_bvh.py +200 -0
  310. warp/tests/geometry/test_hash_grid.py +221 -0
  311. warp/tests/geometry/test_marching_cubes.py +74 -0
  312. warp/tests/geometry/test_mesh.py +316 -0
  313. warp/tests/geometry/test_mesh_query_aabb.py +399 -0
  314. warp/tests/geometry/test_mesh_query_point.py +932 -0
  315. warp/tests/geometry/test_mesh_query_ray.py +311 -0
  316. warp/tests/geometry/test_volume.py +1103 -0
  317. warp/tests/geometry/test_volume_write.py +346 -0
  318. warp/tests/interop/__init__.py +0 -0
  319. warp/tests/interop/test_dlpack.py +729 -0
  320. warp/tests/interop/test_jax.py +371 -0
  321. warp/tests/interop/test_paddle.py +800 -0
  322. warp/tests/interop/test_torch.py +1001 -0
  323. warp/tests/run_coverage_serial.py +39 -0
  324. warp/tests/sim/__init__.py +0 -0
  325. warp/tests/sim/disabled_kinematics.py +244 -0
  326. warp/tests/sim/flaky_test_sim_grad.py +290 -0
  327. warp/tests/sim/test_collision.py +604 -0
  328. warp/tests/sim/test_coloring.py +258 -0
  329. warp/tests/sim/test_model.py +224 -0
  330. warp/tests/sim/test_sim_grad_bounce_linear.py +212 -0
  331. warp/tests/sim/test_sim_kinematics.py +98 -0
  332. warp/tests/sim/test_vbd.py +597 -0
  333. warp/tests/test_adam.py +163 -0
  334. warp/tests/test_arithmetic.py +1096 -0
  335. warp/tests/test_array.py +2972 -0
  336. warp/tests/test_array_reduce.py +156 -0
  337. warp/tests/test_assert.py +250 -0
  338. warp/tests/test_atomic.py +153 -0
  339. warp/tests/test_bool.py +220 -0
  340. warp/tests/test_builtins_resolution.py +1298 -0
  341. warp/tests/test_closest_point_edge_edge.py +327 -0
  342. warp/tests/test_codegen.py +810 -0
  343. warp/tests/test_codegen_instancing.py +1495 -0
  344. warp/tests/test_compile_consts.py +215 -0
  345. warp/tests/test_conditional.py +252 -0
  346. warp/tests/test_context.py +42 -0
  347. warp/tests/test_copy.py +238 -0
  348. warp/tests/test_ctypes.py +638 -0
  349. warp/tests/test_dense.py +73 -0
  350. warp/tests/test_devices.py +97 -0
  351. warp/tests/test_examples.py +482 -0
  352. warp/tests/test_fabricarray.py +996 -0
  353. warp/tests/test_fast_math.py +74 -0
  354. warp/tests/test_fem.py +2003 -0
  355. warp/tests/test_fp16.py +136 -0
  356. warp/tests/test_func.py +454 -0
  357. warp/tests/test_future_annotations.py +98 -0
  358. warp/tests/test_generics.py +656 -0
  359. warp/tests/test_grad.py +893 -0
  360. warp/tests/test_grad_customs.py +339 -0
  361. warp/tests/test_grad_debug.py +341 -0
  362. warp/tests/test_implicit_init.py +411 -0
  363. warp/tests/test_import.py +45 -0
  364. warp/tests/test_indexedarray.py +1140 -0
  365. warp/tests/test_intersect.py +73 -0
  366. warp/tests/test_iter.py +76 -0
  367. warp/tests/test_large.py +177 -0
  368. warp/tests/test_launch.py +411 -0
  369. warp/tests/test_lerp.py +151 -0
  370. warp/tests/test_linear_solvers.py +193 -0
  371. warp/tests/test_lvalue.py +427 -0
  372. warp/tests/test_mat.py +2089 -0
  373. warp/tests/test_mat_lite.py +122 -0
  374. warp/tests/test_mat_scalar_ops.py +2913 -0
  375. warp/tests/test_math.py +178 -0
  376. warp/tests/test_mlp.py +282 -0
  377. warp/tests/test_module_hashing.py +258 -0
  378. warp/tests/test_modules_lite.py +44 -0
  379. warp/tests/test_noise.py +252 -0
  380. warp/tests/test_operators.py +299 -0
  381. warp/tests/test_options.py +129 -0
  382. warp/tests/test_overwrite.py +551 -0
  383. warp/tests/test_print.py +339 -0
  384. warp/tests/test_quat.py +2315 -0
  385. warp/tests/test_rand.py +339 -0
  386. warp/tests/test_reload.py +302 -0
  387. warp/tests/test_rounding.py +185 -0
  388. warp/tests/test_runlength_encode.py +196 -0
  389. warp/tests/test_scalar_ops.py +105 -0
  390. warp/tests/test_smoothstep.py +108 -0
  391. warp/tests/test_snippet.py +318 -0
  392. warp/tests/test_sparse.py +582 -0
  393. warp/tests/test_spatial.py +2229 -0
  394. warp/tests/test_special_values.py +361 -0
  395. warp/tests/test_static.py +592 -0
  396. warp/tests/test_struct.py +734 -0
  397. warp/tests/test_tape.py +204 -0
  398. warp/tests/test_transient_module.py +93 -0
  399. warp/tests/test_triangle_closest_point.py +145 -0
  400. warp/tests/test_types.py +562 -0
  401. warp/tests/test_utils.py +588 -0
  402. warp/tests/test_vec.py +1487 -0
  403. warp/tests/test_vec_lite.py +80 -0
  404. warp/tests/test_vec_scalar_ops.py +2327 -0
  405. warp/tests/test_verify_fp.py +100 -0
  406. warp/tests/tile/__init__.py +0 -0
  407. warp/tests/tile/test_tile.py +780 -0
  408. warp/tests/tile/test_tile_load.py +407 -0
  409. warp/tests/tile/test_tile_mathdx.py +208 -0
  410. warp/tests/tile/test_tile_mlp.py +402 -0
  411. warp/tests/tile/test_tile_reduce.py +447 -0
  412. warp/tests/tile/test_tile_shared_memory.py +247 -0
  413. warp/tests/tile/test_tile_view.py +173 -0
  414. warp/tests/unittest_serial.py +47 -0
  415. warp/tests/unittest_suites.py +427 -0
  416. warp/tests/unittest_utils.py +468 -0
  417. warp/tests/walkthrough_debug.py +93 -0
  418. warp/thirdparty/__init__.py +0 -0
  419. warp/thirdparty/appdirs.py +598 -0
  420. warp/thirdparty/dlpack.py +145 -0
  421. warp/thirdparty/unittest_parallel.py +570 -0
  422. warp/torch.py +391 -0
  423. warp/types.py +5230 -0
  424. warp/utils.py +1137 -0
  425. warp_lang-1.7.0.dist-info/METADATA +516 -0
  426. warp_lang-1.7.0.dist-info/RECORD +429 -0
  427. warp_lang-1.7.0.dist-info/WHEEL +5 -0
  428. warp_lang-1.7.0.dist-info/licenses/LICENSE.md +202 -0
  429. warp_lang-1.7.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,173 @@
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.
15
+
16
+ import unittest
17
+
18
+ import numpy as np
19
+
20
+ import warp as wp
21
+ from warp.tests.unittest_utils import *
22
+
23
+ TILE_DIM = 64
24
+ TILE_M = 16
25
+ TILE_N = 32
26
+ TILE_O = 8
27
+
28
+
29
+ @wp.kernel
30
+ def test_tile_view_kernel(src: wp.array2d(dtype=float), dst: wp.array2d(dtype=float)):
31
+ # load whole source into local memory
32
+ a = wp.tile_load(src, shape=(TILE_M, TILE_N))
33
+
34
+ # copy the source array row by row
35
+ for i in range(TILE_M):
36
+ # create a view on original array and store
37
+ row = a[i]
38
+ wp.tile_store(dst[i], row)
39
+
40
+
41
+ def test_tile_view(test, device):
42
+ rng = np.random.default_rng(42)
43
+
44
+ a = wp.array(rng.random((TILE_M, TILE_N), dtype=np.float32), requires_grad=True, device=device)
45
+ b = wp.array(np.zeros((TILE_M, TILE_N), dtype=np.float32), requires_grad=True, device=device)
46
+
47
+ with wp.Tape() as tape:
48
+ wp.launch_tiled(test_tile_view_kernel, dim=[1], inputs=[a, b], block_dim=32, device=device)
49
+
50
+ assert_np_equal(b.numpy(), a.numpy())
51
+ b.grad = wp.ones_like(b, device=device)
52
+ tape.backward()
53
+
54
+ assert_np_equal(a.grad.numpy(), np.ones_like(a.numpy()))
55
+
56
+
57
+ @wp.kernel
58
+ def test_tile_assign_1d_kernel(src: wp.array2d(dtype=float), dst: wp.array2d(dtype=float)):
59
+ # load whole source into local memory
60
+ a = wp.tile_load(src, shape=(TILE_M, TILE_N))
61
+ b = wp.tile_zeros(dtype=float, shape=(TILE_M, TILE_N))
62
+
63
+ # copy the source array row by row
64
+ for i in range(int(TILE_M)):
65
+ # create views onto source and dest rows
66
+ row_src = a[i]
67
+ row_dst = b[i]
68
+
69
+ # copy onto dest row
70
+ wp.tile_assign(row_dst, row_src)
71
+
72
+ wp.tile_store(dst, b)
73
+
74
+
75
+ def test_tile_assign_1d(test, device):
76
+ rng = np.random.default_rng(42)
77
+
78
+ a = wp.array(rng.random((TILE_M, TILE_N), dtype=np.float32), requires_grad=True, device=device)
79
+ b = wp.array(np.zeros((TILE_M, TILE_N), dtype=np.float32), requires_grad=True, device=device)
80
+
81
+ with wp.Tape() as tape:
82
+ wp.launch_tiled(test_tile_assign_1d_kernel, dim=[1], inputs=[a, b], block_dim=32, device=device)
83
+
84
+ assert_np_equal(b.numpy(), a.numpy())
85
+ b.grad = wp.ones_like(b, device=device)
86
+ tape.backward()
87
+
88
+ assert_np_equal(a.grad.numpy(), np.ones_like(a.numpy()))
89
+
90
+
91
+ @wp.kernel
92
+ def test_tile_assign_2d_kernel(src: wp.array3d(dtype=float), dst: wp.array3d(dtype=float)):
93
+ # load whole source into local memory
94
+ a = wp.tile_load(src, shape=(TILE_M, TILE_N, TILE_O))
95
+ b = wp.tile_zeros(dtype=float, shape=(TILE_M, TILE_N, TILE_O))
96
+
97
+ # copy the source array slice by slice
98
+ for i in range(TILE_M):
99
+ # create views onto source and dest slice
100
+ row_src = a[i]
101
+ row_dst = b[i]
102
+
103
+ # copy onto dest slice
104
+ wp.tile_assign(row_dst, row_src)
105
+
106
+ wp.tile_store(dst, b)
107
+
108
+
109
+ def test_tile_assign_2d(test, device):
110
+ rng = np.random.default_rng(42)
111
+
112
+ a = wp.array(rng.random((TILE_M, TILE_N, TILE_O), dtype=np.float32), requires_grad=True, device=device)
113
+ b = wp.array(np.zeros((TILE_M, TILE_N, TILE_O), dtype=np.float32), requires_grad=True, device=device)
114
+
115
+ with wp.Tape() as tape:
116
+ wp.launch_tiled(test_tile_assign_2d_kernel, dim=[1], inputs=[a, b], block_dim=32, device=device)
117
+
118
+ assert_np_equal(b.numpy(), a.numpy())
119
+ b.grad = wp.ones_like(b, device=device)
120
+ tape.backward()
121
+
122
+ assert_np_equal(a.grad.numpy(), np.ones_like(a.numpy()))
123
+
124
+
125
+ @wp.kernel
126
+ def test_tile_view_offset_kernel(src: wp.array2d(dtype=float), dst: wp.array2d(dtype=float)):
127
+ # load whole source into local memory
128
+ a = wp.tile_load(src, shape=(TILE_M, TILE_N))
129
+ b = wp.tile_zeros(shape=(TILE_M, TILE_N), dtype=float)
130
+
131
+ # copy the source array slice by slice
132
+ for i in range(TILE_M // 4):
133
+ # create views onto source and dest slice 4 rows at a time
134
+ v = wp.tile_view(a, offset=(i * 4, 0), shape=(4, TILE_N))
135
+
136
+ # copy onto dest slice
137
+ wp.tile_assign(b, v, offset=(i * 4, 0))
138
+
139
+ wp.tile_store(dst, b)
140
+
141
+
142
+ def test_tile_view_offset(test, device):
143
+ rng = np.random.default_rng(42)
144
+
145
+ a = wp.array(rng.random((TILE_M, TILE_N), dtype=np.float32), requires_grad=True, device=device)
146
+ b = wp.array(np.zeros((TILE_M, TILE_N), dtype=np.float32), requires_grad=True, device=device)
147
+
148
+ with wp.Tape() as tape:
149
+ wp.launch_tiled(test_tile_view_offset_kernel, dim=[1], inputs=[a, b], block_dim=32, device=device)
150
+
151
+ assert_np_equal(b.numpy(), a.numpy())
152
+ b.grad = wp.ones_like(b, device=device)
153
+ tape.backward()
154
+
155
+ assert_np_equal(a.grad.numpy(), np.ones_like(a.numpy()))
156
+
157
+
158
+ devices = get_test_devices()
159
+
160
+
161
+ class TestTileView(unittest.TestCase):
162
+ pass
163
+
164
+
165
+ add_function_test(TestTileView, "test_tile_view", test_tile_view, devices=devices)
166
+ add_function_test(TestTileView, "test_tile_view_offset", test_tile_view_offset, devices=devices)
167
+ add_function_test(TestTileView, "test_tile_assign_1d", test_tile_assign_1d, devices=devices)
168
+ add_function_test(TestTileView, "test_tile_assign_2d", test_tile_assign_2d, devices=devices)
169
+
170
+
171
+ if __name__ == "__main__":
172
+ wp.clear_kernel_cache()
173
+ unittest.main(verbosity=2, failfast=True)
@@ -0,0 +1,47 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ import unittest
17
+
18
+ import warp as wp
19
+ import warp.tests.unittest_suites
20
+
21
+
22
+ def run_suite() -> bool:
23
+ """Run a test suite"""
24
+
25
+ # force rebuild of all kernels
26
+ wp.clear_lto_cache()
27
+ wp.clear_kernel_cache()
28
+ print("Cleared Warp kernel cache")
29
+
30
+ runner = unittest.TextTestRunner(verbosity=2, failfast=True)
31
+
32
+ # Can swap out different suites
33
+ suite = warp.tests.unittest_suites.default_suite()
34
+ # suite = warp.tests.unittest_suites.auto_discover_suite()
35
+ # suite = warp.tests.unittest_suites.kit_suite()
36
+
37
+ print(f"Test suite has {suite.countTestCases()} tests")
38
+
39
+ ret = not runner.run(suite).wasSuccessful()
40
+ return ret
41
+
42
+
43
+ if __name__ == "__main__":
44
+ ret = run_suite()
45
+ import sys
46
+
47
+ sys.exit(ret)
@@ -0,0 +1,427 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ """Warp Test Suites
17
+
18
+ This file is intended to define functions that return TestSuite objects, which
19
+ can be used in parallel or serial unit tests (with optional code coverage)
20
+ """
21
+
22
+ import os
23
+ import sys
24
+ import unittest
25
+
26
+ START_DIRECTORY = os.path.realpath(os.path.dirname(__file__))
27
+ TOP_LEVEL_DIRECTORY = os.path.realpath(os.path.join(START_DIRECTORY, "..", ".."))
28
+
29
+
30
+ def _create_suite_from_test_classes(test_loader, test_classes):
31
+ suite = unittest.TestSuite()
32
+
33
+ for test in test_classes:
34
+ sub_suite = unittest.TestSuite()
35
+ # Note that the test_loader might have testNamePatterns set
36
+ sub_suite.addTest(test_loader.loadTestsFromTestCase(test))
37
+ suite.addTest(sub_suite)
38
+
39
+ return suite
40
+
41
+
42
+ def auto_discover_suite(loader=unittest.defaultTestLoader, pattern="test*.py"):
43
+ """Uses unittest auto-discovery to build a test suite (test_*.py pattern)"""
44
+
45
+ return loader.discover(start_dir=START_DIRECTORY, pattern=pattern, top_level_dir=TOP_LEVEL_DIRECTORY)
46
+
47
+
48
+ def _iter_class_suites(test_suite):
49
+ """Iterate class-level test suites - test suites that contains test cases
50
+
51
+ From unittest_parallel.py
52
+ """
53
+ has_cases = any(isinstance(suite, unittest.TestCase) for suite in test_suite)
54
+ if has_cases:
55
+ yield test_suite
56
+ else:
57
+ for suite in test_suite:
58
+ yield from _iter_class_suites(suite)
59
+
60
+
61
+ def compare_unittest_suites(
62
+ test_loader: unittest.TestLoader, test_suite_name: str, reference_suite: unittest.TestSuite
63
+ ) -> None:
64
+ """Prints the tests in `test_suite` that are not in `reference_suite`."""
65
+
66
+ test_suite_fn = getattr(sys.modules[__name__], test_suite_name + "_suite")
67
+
68
+ test_suite = test_suite_fn(test_loader)
69
+
70
+ test_suite_classes_str = {
71
+ type(test_suite._tests[0]).__name__
72
+ for test_suite in list(_iter_class_suites(test_suite))
73
+ if test_suite.countTestCases() > 0
74
+ }
75
+
76
+ reference_suite_classes_str = {
77
+ type(test_suite._tests[0]).__name__
78
+ for test_suite in list(_iter_class_suites(reference_suite))
79
+ if test_suite.countTestCases() > 0
80
+ }
81
+
82
+ set_difference = reference_suite_classes_str - test_suite_classes_str
83
+
84
+ print(f"Selected test suite '{test_suite_name}'")
85
+ if len(set_difference) > 0:
86
+ print(f"Test suite '{test_suite_name}' omits the following test classes:")
87
+ for test_entry in set_difference:
88
+ print(f" {test_entry}")
89
+
90
+ return test_suite
91
+
92
+
93
+ def default_suite(test_loader: unittest.TestLoader = unittest.defaultTestLoader):
94
+ """Example of a manually constructed test suite.
95
+
96
+ Intended to be modified to create additional test suites
97
+ """
98
+ from warp.tests.cuda.test_async import TestAsync
99
+ from warp.tests.cuda.test_mempool import TestMempool
100
+ from warp.tests.cuda.test_multigpu import TestMultiGPU
101
+ from warp.tests.cuda.test_peer import TestPeer
102
+ from warp.tests.cuda.test_pinned import TestPinned
103
+ from warp.tests.cuda.test_streams import TestStreams
104
+ from warp.tests.geometry.test_bvh import TestBvh
105
+ from warp.tests.geometry.test_hash_grid import TestHashGrid
106
+ from warp.tests.geometry.test_marching_cubes import TestMarchingCubes
107
+ from warp.tests.geometry.test_mesh import TestMesh
108
+ from warp.tests.geometry.test_mesh_query_aabb import TestMeshQueryAABBMethods
109
+ from warp.tests.geometry.test_mesh_query_point import TestMeshQueryPoint
110
+ from warp.tests.geometry.test_mesh_query_ray import TestMeshQueryRay
111
+ from warp.tests.geometry.test_volume import TestVolume
112
+ from warp.tests.geometry.test_volume_write import TestVolumeWrite
113
+ from warp.tests.interop.test_dlpack import TestDLPack
114
+ from warp.tests.interop.test_jax import TestJax
115
+ from warp.tests.interop.test_torch import TestTorch
116
+ from warp.tests.sim.test_collision import TestCollision
117
+ from warp.tests.sim.test_coloring import TestColoring
118
+ from warp.tests.sim.test_model import TestModel
119
+
120
+ # from warp.tests.test_sim_grad import TestSimGradients Disabled, flaky
121
+ from warp.tests.sim.test_sim_kinematics import TestSimKinematics
122
+ from warp.tests.sim.test_vbd import TestVbd
123
+ from warp.tests.test_adam import TestAdam
124
+ from warp.tests.test_arithmetic import TestArithmetic
125
+ from warp.tests.test_array import TestArray
126
+ from warp.tests.test_array_reduce import TestArrayReduce
127
+ from warp.tests.test_atomic import TestAtomic
128
+ from warp.tests.test_bool import TestBool
129
+ from warp.tests.test_builtins_resolution import TestBuiltinsResolution
130
+ from warp.tests.test_closest_point_edge_edge import TestClosestPointEdgeEdgeMethods
131
+ from warp.tests.test_codegen import TestCodeGen
132
+ from warp.tests.test_codegen_instancing import TestCodeGenInstancing
133
+ from warp.tests.test_compile_consts import TestConstants
134
+ from warp.tests.test_conditional import TestConditional
135
+ from warp.tests.test_context import TestContext
136
+ from warp.tests.test_copy import TestCopy
137
+ from warp.tests.test_ctypes import TestCTypes
138
+ from warp.tests.test_dense import TestDense
139
+ from warp.tests.test_devices import TestDevices
140
+ from warp.tests.test_examples import (
141
+ TestCoreExamples,
142
+ TestFemDiffusionExamples,
143
+ TestFemExamples,
144
+ TestOptimExamples,
145
+ TestSimExamples,
146
+ )
147
+ from warp.tests.test_fabricarray import TestFabricArray
148
+ from warp.tests.test_fast_math import TestFastMath
149
+ from warp.tests.test_fem import TestFem, TestFemShapeFunctions, TestFemUtilities
150
+ from warp.tests.test_fp16 import TestFp16
151
+ from warp.tests.test_func import TestFunc
152
+ from warp.tests.test_future_annotations import TestFutureAnnotations
153
+ from warp.tests.test_generics import TestGenerics
154
+ from warp.tests.test_grad import TestGrad
155
+ from warp.tests.test_grad_customs import TestGradCustoms
156
+ from warp.tests.test_grad_debug import TestGradDebug
157
+ from warp.tests.test_import import TestImport
158
+ from warp.tests.test_indexedarray import TestIndexedArray
159
+ from warp.tests.test_intersect import TestIntersect
160
+ from warp.tests.test_iter import TestIter
161
+ from warp.tests.test_large import TestLarge
162
+ from warp.tests.test_launch import TestLaunch
163
+ from warp.tests.test_lerp import TestLerp
164
+ from warp.tests.test_linear_solvers import TestLinearSolvers
165
+ from warp.tests.test_lvalue import TestLValue
166
+ from warp.tests.test_mat import TestMat
167
+ from warp.tests.test_mat_lite import TestMatLite
168
+ from warp.tests.test_mat_scalar_ops import TestMatScalarOps
169
+ from warp.tests.test_math import TestMath
170
+ from warp.tests.test_mlp import TestMLP
171
+ from warp.tests.test_module_hashing import TestModuleHashing
172
+ from warp.tests.test_modules_lite import TestModuleLite
173
+ from warp.tests.test_noise import TestNoise
174
+ from warp.tests.test_operators import TestOperators
175
+ from warp.tests.test_options import TestOptions
176
+ from warp.tests.test_overwrite import TestOverwrite
177
+ from warp.tests.test_print import TestPrint
178
+ from warp.tests.test_quat import TestQuat
179
+ from warp.tests.test_rand import TestRand
180
+ from warp.tests.test_reload import TestReload
181
+ from warp.tests.test_rounding import TestRounding
182
+ from warp.tests.test_runlength_encode import TestRunlengthEncode
183
+ from warp.tests.test_scalar_ops import TestScalarOps
184
+ from warp.tests.test_smoothstep import TestSmoothstep
185
+ from warp.tests.test_snippet import TestSnippets
186
+ from warp.tests.test_sparse import TestSparse
187
+ from warp.tests.test_spatial import TestSpatial
188
+ from warp.tests.test_special_values import TestSpecialValues
189
+ from warp.tests.test_static import TestStatic
190
+ from warp.tests.test_struct import TestStruct
191
+ from warp.tests.test_tape import TestTape
192
+ from warp.tests.test_transient_module import TestTransientModule
193
+ from warp.tests.test_triangle_closest_point import TestTriangleClosestPoint
194
+ from warp.tests.test_types import TestTypes
195
+ from warp.tests.test_utils import TestUtils
196
+ from warp.tests.test_vec import TestVec
197
+ from warp.tests.test_vec_lite import TestVecLite
198
+ from warp.tests.test_vec_scalar_ops import TestVecScalarOps
199
+ from warp.tests.test_verify_fp import TestVerifyFP
200
+ from warp.tests.tile.test_tile import TestTile
201
+ from warp.tests.tile.test_tile_mathdx import TestTileMathDx
202
+ from warp.tests.tile.test_tile_reduce import TestTileReduce
203
+ from warp.tests.tile.test_tile_shared_memory import TestTileSharedMemory
204
+
205
+ test_classes = [
206
+ TestAdam,
207
+ TestArithmetic,
208
+ TestArray,
209
+ TestArrayReduce,
210
+ TestAsync,
211
+ TestAtomic,
212
+ TestBool,
213
+ TestBuiltinsResolution,
214
+ TestBvh,
215
+ TestClosestPointEdgeEdgeMethods,
216
+ TestCodeGen,
217
+ TestCodeGenInstancing,
218
+ TestCollision,
219
+ TestColoring,
220
+ TestConditional,
221
+ TestConstants,
222
+ TestContext,
223
+ TestCopy,
224
+ TestCTypes,
225
+ TestDense,
226
+ TestDevices,
227
+ TestDLPack,
228
+ TestCoreExamples,
229
+ TestFemDiffusionExamples,
230
+ TestFemExamples,
231
+ TestOptimExamples,
232
+ TestSimExamples,
233
+ TestFabricArray,
234
+ TestFastMath,
235
+ TestFem,
236
+ TestFemShapeFunctions,
237
+ TestFemUtilities,
238
+ TestFp16,
239
+ TestFunc,
240
+ TestFutureAnnotations,
241
+ TestGenerics,
242
+ TestGrad,
243
+ TestGradCustoms,
244
+ TestGradDebug,
245
+ TestHashGrid,
246
+ TestImport,
247
+ TestIndexedArray,
248
+ TestIntersect,
249
+ TestIter,
250
+ TestJax,
251
+ TestLarge,
252
+ TestLaunch,
253
+ TestLerp,
254
+ TestLinearSolvers,
255
+ TestLValue,
256
+ TestMarchingCubes,
257
+ TestMat,
258
+ TestMatLite,
259
+ TestMatScalarOps,
260
+ TestMath,
261
+ TestMempool,
262
+ TestMesh,
263
+ TestMeshQueryAABBMethods,
264
+ TestMeshQueryPoint,
265
+ TestMeshQueryRay,
266
+ TestMLP,
267
+ TestModel,
268
+ TestModuleHashing,
269
+ TestModuleLite,
270
+ TestMultiGPU,
271
+ TestNoise,
272
+ TestOperators,
273
+ TestOptions,
274
+ TestOverwrite,
275
+ TestPeer,
276
+ TestPinned,
277
+ TestPrint,
278
+ TestQuat,
279
+ TestRand,
280
+ TestReload,
281
+ TestRounding,
282
+ TestRunlengthEncode,
283
+ TestScalarOps,
284
+ # TestSimGradients, Disabled, flaky
285
+ TestSimKinematics,
286
+ TestSmoothstep,
287
+ TestSnippets,
288
+ TestSparse,
289
+ TestSpatial,
290
+ TestSpecialValues,
291
+ TestStatic,
292
+ TestStreams,
293
+ TestStruct,
294
+ TestTape,
295
+ TestTile,
296
+ TestTileMathDx,
297
+ TestTileReduce,
298
+ TestTileSharedMemory,
299
+ TestTorch,
300
+ TestTransientModule,
301
+ TestTriangleClosestPoint,
302
+ TestTypes,
303
+ TestUtils,
304
+ TestVbd,
305
+ TestVec,
306
+ TestVecLite,
307
+ TestVecScalarOps,
308
+ TestVerifyFP,
309
+ TestVolume,
310
+ TestVolumeWrite,
311
+ ]
312
+
313
+ return _create_suite_from_test_classes(test_loader, test_classes)
314
+
315
+
316
+ def kit_suite(test_loader: unittest.TestLoader = unittest.defaultTestLoader):
317
+ """Tries to mimic the test suite used for testing omni.warp.core in Kit
318
+
319
+ Requires manual updates with test_ext.py for now.
320
+ """
321
+ from warp.tests.cuda.test_mempool import TestMempool
322
+ from warp.tests.cuda.test_peer import TestPeer
323
+ from warp.tests.cuda.test_pinned import TestPinned
324
+ from warp.tests.cuda.test_streams import TestStreams
325
+ from warp.tests.geometry.test_bvh import TestBvh
326
+ from warp.tests.geometry.test_hash_grid import TestHashGrid
327
+ from warp.tests.geometry.test_marching_cubes import TestMarchingCubes
328
+ from warp.tests.geometry.test_mesh import TestMesh
329
+ from warp.tests.geometry.test_mesh_query_aabb import TestMeshQueryAABBMethods
330
+ from warp.tests.geometry.test_mesh_query_point import TestMeshQueryPoint
331
+ from warp.tests.geometry.test_mesh_query_ray import TestMeshQueryRay
332
+ from warp.tests.geometry.test_volume import TestVolume
333
+ from warp.tests.geometry.test_volume_write import TestVolumeWrite
334
+ from warp.tests.interop.test_dlpack import TestDLPack
335
+ from warp.tests.test_array_reduce import TestArrayReduce
336
+ from warp.tests.test_bool import TestBool
337
+ from warp.tests.test_builtins_resolution import TestBuiltinsResolution
338
+ from warp.tests.test_codegen import TestCodeGen
339
+ from warp.tests.test_compile_consts import TestConstants
340
+ from warp.tests.test_conditional import TestConditional
341
+ from warp.tests.test_copy import TestCopy
342
+ from warp.tests.test_ctypes import TestCTypes
343
+ from warp.tests.test_devices import TestDevices
344
+ from warp.tests.test_fp16 import TestFp16
345
+ from warp.tests.test_func import TestFunc
346
+ from warp.tests.test_generics import TestGenerics
347
+ from warp.tests.test_grad_customs import TestGradCustoms
348
+ from warp.tests.test_grad_debug import TestGradDebug
349
+ from warp.tests.test_indexedarray import TestIndexedArray
350
+ from warp.tests.test_launch import TestLaunch
351
+ from warp.tests.test_lvalue import TestLValue
352
+ from warp.tests.test_mat_lite import TestMatLite
353
+ from warp.tests.test_math import TestMath
354
+ from warp.tests.test_mlp import TestMLP
355
+ from warp.tests.test_module_hashing import TestModuleHashing
356
+ from warp.tests.test_modules_lite import TestModuleLite
357
+ from warp.tests.test_noise import TestNoise
358
+ from warp.tests.test_operators import TestOperators
359
+ from warp.tests.test_rand import TestRand
360
+ from warp.tests.test_reload import TestReload
361
+ from warp.tests.test_rounding import TestRounding
362
+ from warp.tests.test_runlength_encode import TestRunlengthEncode
363
+ from warp.tests.test_scalar_ops import TestScalarOps
364
+ from warp.tests.test_snippet import TestSnippets
365
+ from warp.tests.test_static import TestStatic
366
+ from warp.tests.test_tape import TestTape
367
+ from warp.tests.test_transient_module import TestTransientModule
368
+ from warp.tests.test_types import TestTypes
369
+ from warp.tests.test_utils import TestUtils
370
+ from warp.tests.test_vec_lite import TestVecLite
371
+ from warp.tests.tile.test_tile_reduce import TestTileReduce
372
+
373
+ test_classes = [
374
+ TestArrayReduce,
375
+ TestBool,
376
+ TestBuiltinsResolution,
377
+ TestBvh,
378
+ TestCodeGen,
379
+ TestConstants,
380
+ TestConditional,
381
+ TestCopy,
382
+ TestCTypes,
383
+ TestDevices,
384
+ TestDLPack,
385
+ TestFp16,
386
+ TestFunc,
387
+ TestGenerics,
388
+ TestGradCustoms,
389
+ TestGradDebug,
390
+ TestHashGrid,
391
+ TestIndexedArray,
392
+ TestLaunch,
393
+ TestLValue,
394
+ TestMarchingCubes,
395
+ TestMatLite,
396
+ TestMath,
397
+ TestMempool,
398
+ TestMesh,
399
+ TestMeshQueryAABBMethods,
400
+ TestMeshQueryPoint,
401
+ TestMeshQueryRay,
402
+ TestMLP,
403
+ TestModuleHashing,
404
+ TestModuleLite,
405
+ TestNoise,
406
+ TestOperators,
407
+ TestPeer,
408
+ TestPinned,
409
+ TestRand,
410
+ TestReload,
411
+ TestRounding,
412
+ TestRunlengthEncode,
413
+ TestScalarOps,
414
+ TestSnippets,
415
+ TestStatic,
416
+ TestStreams,
417
+ TestTape,
418
+ TestTileReduce,
419
+ TestTransientModule,
420
+ TestTypes,
421
+ TestUtils,
422
+ TestVecLite,
423
+ TestVolume,
424
+ TestVolumeWrite,
425
+ ]
426
+
427
+ return _create_suite_from_test_classes(test_loader, test_classes)