warp-lang 1.2.1__py3-none-manylinux2014_x86_64.whl → 1.3.0__py3-none-manylinux2014_x86_64.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 (193) hide show
  1. warp/__init__.py +8 -6
  2. warp/autograd.py +823 -0
  3. warp/bin/warp.so +0 -0
  4. warp/build.py +6 -2
  5. warp/builtins.py +1410 -886
  6. warp/codegen.py +503 -166
  7. warp/config.py +48 -18
  8. warp/context.py +401 -199
  9. warp/dlpack.py +8 -0
  10. warp/examples/assets/bunny.usd +0 -0
  11. warp/examples/benchmarks/benchmark_cloth_warp.py +1 -1
  12. warp/examples/benchmarks/benchmark_interop_torch.py +158 -0
  13. warp/examples/benchmarks/benchmark_launches.py +1 -1
  14. warp/examples/core/example_cupy.py +78 -0
  15. warp/examples/fem/example_apic_fluid.py +17 -36
  16. warp/examples/fem/example_burgers.py +9 -18
  17. warp/examples/fem/example_convection_diffusion.py +7 -17
  18. warp/examples/fem/example_convection_diffusion_dg.py +27 -47
  19. warp/examples/fem/example_deformed_geometry.py +11 -22
  20. warp/examples/fem/example_diffusion.py +7 -18
  21. warp/examples/fem/example_diffusion_3d.py +24 -28
  22. warp/examples/fem/example_diffusion_mgpu.py +7 -14
  23. warp/examples/fem/example_magnetostatics.py +190 -0
  24. warp/examples/fem/example_mixed_elasticity.py +111 -80
  25. warp/examples/fem/example_navier_stokes.py +30 -34
  26. warp/examples/fem/example_nonconforming_contact.py +290 -0
  27. warp/examples/fem/example_stokes.py +17 -32
  28. warp/examples/fem/example_stokes_transfer.py +12 -21
  29. warp/examples/fem/example_streamlines.py +350 -0
  30. warp/examples/fem/utils.py +936 -0
  31. warp/fabric.py +5 -2
  32. warp/fem/__init__.py +13 -3
  33. warp/fem/cache.py +161 -11
  34. warp/fem/dirichlet.py +37 -28
  35. warp/fem/domain.py +105 -14
  36. warp/fem/field/__init__.py +14 -3
  37. warp/fem/field/field.py +454 -11
  38. warp/fem/field/nodal_field.py +33 -18
  39. warp/fem/geometry/deformed_geometry.py +50 -15
  40. warp/fem/geometry/hexmesh.py +12 -24
  41. warp/fem/geometry/nanogrid.py +106 -31
  42. warp/fem/geometry/quadmesh_2d.py +6 -11
  43. warp/fem/geometry/tetmesh.py +103 -61
  44. warp/fem/geometry/trimesh_2d.py +98 -47
  45. warp/fem/integrate.py +231 -186
  46. warp/fem/operator.py +14 -9
  47. warp/fem/quadrature/pic_quadrature.py +35 -9
  48. warp/fem/quadrature/quadrature.py +119 -32
  49. warp/fem/space/basis_space.py +98 -22
  50. warp/fem/space/collocated_function_space.py +3 -1
  51. warp/fem/space/function_space.py +7 -2
  52. warp/fem/space/grid_2d_function_space.py +3 -3
  53. warp/fem/space/grid_3d_function_space.py +4 -4
  54. warp/fem/space/hexmesh_function_space.py +3 -2
  55. warp/fem/space/nanogrid_function_space.py +12 -14
  56. warp/fem/space/partition.py +45 -47
  57. warp/fem/space/restriction.py +19 -16
  58. warp/fem/space/shape/cube_shape_function.py +91 -3
  59. warp/fem/space/shape/shape_function.py +7 -0
  60. warp/fem/space/shape/square_shape_function.py +32 -0
  61. warp/fem/space/shape/tet_shape_function.py +11 -7
  62. warp/fem/space/shape/triangle_shape_function.py +10 -1
  63. warp/fem/space/topology.py +116 -42
  64. warp/fem/types.py +8 -1
  65. warp/fem/utils.py +301 -83
  66. warp/native/array.h +16 -0
  67. warp/native/builtin.h +0 -15
  68. warp/native/cuda_util.cpp +14 -6
  69. warp/native/exports.h +1348 -1308
  70. warp/native/quat.h +79 -0
  71. warp/native/rand.h +27 -4
  72. warp/native/sparse.cpp +83 -81
  73. warp/native/sparse.cu +381 -453
  74. warp/native/vec.h +64 -0
  75. warp/native/volume.cpp +40 -49
  76. warp/native/volume_builder.cu +2 -3
  77. warp/native/volume_builder.h +12 -17
  78. warp/native/warp.cu +3 -3
  79. warp/native/warp.h +69 -59
  80. warp/render/render_opengl.py +17 -9
  81. warp/sim/articulation.py +117 -17
  82. warp/sim/collide.py +35 -29
  83. warp/sim/model.py +123 -18
  84. warp/sim/render.py +3 -1
  85. warp/sparse.py +867 -203
  86. warp/stubs.py +312 -541
  87. warp/tape.py +29 -1
  88. warp/tests/disabled_kinematics.py +1 -1
  89. warp/tests/test_adam.py +1 -1
  90. warp/tests/test_arithmetic.py +1 -1
  91. warp/tests/test_array.py +58 -1
  92. warp/tests/test_array_reduce.py +1 -1
  93. warp/tests/test_async.py +1 -1
  94. warp/tests/test_atomic.py +1 -1
  95. warp/tests/test_bool.py +1 -1
  96. warp/tests/test_builtins_resolution.py +1 -1
  97. warp/tests/test_bvh.py +6 -1
  98. warp/tests/test_closest_point_edge_edge.py +1 -1
  99. warp/tests/test_codegen.py +66 -1
  100. warp/tests/test_compile_consts.py +1 -1
  101. warp/tests/test_conditional.py +1 -1
  102. warp/tests/test_copy.py +1 -1
  103. warp/tests/test_ctypes.py +1 -1
  104. warp/tests/test_dense.py +1 -1
  105. warp/tests/test_devices.py +1 -1
  106. warp/tests/test_dlpack.py +1 -1
  107. warp/tests/test_examples.py +33 -4
  108. warp/tests/test_fabricarray.py +5 -2
  109. warp/tests/test_fast_math.py +1 -1
  110. warp/tests/test_fem.py +213 -6
  111. warp/tests/test_fp16.py +1 -1
  112. warp/tests/test_func.py +1 -1
  113. warp/tests/test_future_annotations.py +90 -0
  114. warp/tests/test_generics.py +1 -1
  115. warp/tests/test_grad.py +1 -1
  116. warp/tests/test_grad_customs.py +1 -1
  117. warp/tests/test_grad_debug.py +247 -0
  118. warp/tests/test_hash_grid.py +6 -1
  119. warp/tests/test_implicit_init.py +354 -0
  120. warp/tests/test_import.py +1 -1
  121. warp/tests/test_indexedarray.py +1 -1
  122. warp/tests/test_intersect.py +1 -1
  123. warp/tests/test_jax.py +1 -1
  124. warp/tests/test_large.py +1 -1
  125. warp/tests/test_launch.py +1 -1
  126. warp/tests/test_lerp.py +1 -1
  127. warp/tests/test_linear_solvers.py +1 -1
  128. warp/tests/test_lvalue.py +1 -1
  129. warp/tests/test_marching_cubes.py +5 -2
  130. warp/tests/test_mat.py +34 -35
  131. warp/tests/test_mat_lite.py +2 -1
  132. warp/tests/test_mat_scalar_ops.py +1 -1
  133. warp/tests/test_math.py +1 -1
  134. warp/tests/test_matmul.py +20 -16
  135. warp/tests/test_matmul_lite.py +1 -1
  136. warp/tests/test_mempool.py +1 -1
  137. warp/tests/test_mesh.py +5 -2
  138. warp/tests/test_mesh_query_aabb.py +1 -1
  139. warp/tests/test_mesh_query_point.py +1 -1
  140. warp/tests/test_mesh_query_ray.py +1 -1
  141. warp/tests/test_mlp.py +1 -1
  142. warp/tests/test_model.py +1 -1
  143. warp/tests/test_module_hashing.py +77 -1
  144. warp/tests/test_modules_lite.py +1 -1
  145. warp/tests/test_multigpu.py +1 -1
  146. warp/tests/test_noise.py +1 -1
  147. warp/tests/test_operators.py +1 -1
  148. warp/tests/test_options.py +1 -1
  149. warp/tests/test_overwrite.py +542 -0
  150. warp/tests/test_peer.py +1 -1
  151. warp/tests/test_pinned.py +1 -1
  152. warp/tests/test_print.py +1 -1
  153. warp/tests/test_quat.py +15 -1
  154. warp/tests/test_rand.py +1 -1
  155. warp/tests/test_reload.py +1 -1
  156. warp/tests/test_rounding.py +1 -1
  157. warp/tests/test_runlength_encode.py +1 -1
  158. warp/tests/test_scalar_ops.py +95 -0
  159. warp/tests/test_sim_grad.py +1 -1
  160. warp/tests/test_sim_kinematics.py +1 -1
  161. warp/tests/test_smoothstep.py +1 -1
  162. warp/tests/test_sparse.py +82 -15
  163. warp/tests/test_spatial.py +1 -1
  164. warp/tests/test_special_values.py +2 -11
  165. warp/tests/test_streams.py +11 -1
  166. warp/tests/test_struct.py +1 -1
  167. warp/tests/test_tape.py +1 -1
  168. warp/tests/test_torch.py +194 -1
  169. warp/tests/test_transient_module.py +1 -1
  170. warp/tests/test_types.py +1 -1
  171. warp/tests/test_utils.py +1 -1
  172. warp/tests/test_vec.py +15 -63
  173. warp/tests/test_vec_lite.py +2 -1
  174. warp/tests/test_vec_scalar_ops.py +122 -39
  175. warp/tests/test_verify_fp.py +1 -1
  176. warp/tests/test_volume.py +28 -2
  177. warp/tests/test_volume_write.py +1 -1
  178. warp/tests/unittest_serial.py +1 -1
  179. warp/tests/unittest_suites.py +9 -1
  180. warp/tests/walkthrough_debug.py +1 -1
  181. warp/thirdparty/unittest_parallel.py +2 -5
  182. warp/torch.py +103 -41
  183. warp/types.py +344 -227
  184. warp/utils.py +11 -2
  185. {warp_lang-1.2.1.dist-info → warp_lang-1.3.0.dist-info}/METADATA +99 -46
  186. warp_lang-1.3.0.dist-info/RECORD +368 -0
  187. warp/examples/fem/bsr_utils.py +0 -378
  188. warp/examples/fem/mesh_utils.py +0 -133
  189. warp/examples/fem/plot_utils.py +0 -292
  190. warp_lang-1.2.1.dist-info/RECORD +0 -359
  191. {warp_lang-1.2.1.dist-info → warp_lang-1.3.0.dist-info}/LICENSE.md +0 -0
  192. {warp_lang-1.2.1.dist-info → warp_lang-1.3.0.dist-info}/WHEEL +0 -0
  193. {warp_lang-1.2.1.dist-info → warp_lang-1.3.0.dist-info}/top_level.txt +0 -0
warp/tests/test_matmul.py CHANGED
@@ -72,17 +72,19 @@ class gemm_test_bed_runner:
72
72
  ones = wp.zeros_like(D)
73
73
  ones.fill_(1.0)
74
74
 
75
+ np_dtype = wp.types.warp_type_to_np_dtype[self.dtype]
76
+
75
77
  if batch_count == 1:
76
78
  tape = wp.Tape()
77
79
  with tape:
78
80
  wp.matmul(A, B, C, D, alpha, beta, False)
79
81
  tape.backward(grads={D: ones})
80
82
 
81
- D_np = alpha * (A.numpy() @ B.numpy()) + beta * C.numpy()
83
+ D_np = alpha * np.matmul(A.numpy(), B.numpy(), dtype=np_dtype) + beta * C.numpy()
82
84
  assert_np_equal(D.numpy(), D_np)
83
85
 
84
- adj_A_np = alpha * np.matmul(ones.numpy(), B.numpy().transpose())
85
- adj_B_np = alpha * (A.numpy().transpose() @ ones.numpy())
86
+ adj_A_np = alpha * np.matmul(ones.numpy(), B.numpy().transpose(), dtype=np_dtype)
87
+ adj_B_np = alpha * np.matmul(A.numpy().transpose(), ones.numpy(), dtype=np_dtype)
86
88
  adj_C_np = beta * ones.numpy()
87
89
 
88
90
  else:
@@ -91,11 +93,11 @@ class gemm_test_bed_runner:
91
93
  wp.batched_matmul(A, B, C, D, alpha, beta, False)
92
94
  tape.backward(grads={D: ones})
93
95
 
94
- D_np = alpha * np.matmul(A.numpy(), B.numpy()) + beta * C.numpy()
96
+ D_np = alpha * np.matmul(A.numpy(), B.numpy(), dtype=np_dtype) + beta * C.numpy()
95
97
  assert_np_equal(D.numpy(), D_np)
96
98
 
97
- adj_A_np = alpha * np.matmul(ones.numpy(), B.numpy().transpose((0, 2, 1)))
98
- adj_B_np = alpha * np.matmul(A.numpy().transpose((0, 2, 1)), ones.numpy())
99
+ adj_A_np = alpha * np.matmul(ones.numpy(), B.numpy().transpose((0, 2, 1)), dtype=np_dtype)
100
+ adj_B_np = alpha * np.matmul(A.numpy().transpose((0, 2, 1)), ones.numpy(), dtype=np_dtype)
99
101
  adj_C_np = beta * ones.numpy()
100
102
 
101
103
  assert_np_equal(A.grad.numpy(), adj_A_np)
@@ -103,9 +105,9 @@ class gemm_test_bed_runner:
103
105
  assert_np_equal(C.grad.numpy(), adj_C_np)
104
106
 
105
107
  def run(self):
106
- Ms = [64, 128, 512]
107
- Ns = [64, 128, 512]
108
- Ks = [64, 128, 512]
108
+ Ms = [64, 128, 256]
109
+ Ns = [64, 128, 256]
110
+ Ks = [64, 128, 256]
109
111
  batch_counts = [1, 4]
110
112
  betas = [0.0, 1.0]
111
113
  alpha = 1.0
@@ -188,6 +190,8 @@ class gemm_test_bed_runner_transpose:
188
190
  ones3 = wp.zeros_like(D3)
189
191
  ones3.fill_(1.0)
190
192
 
193
+ np_dtype = wp.types.warp_type_to_np_dtype[self.dtype]
194
+
191
195
  if batch_count == 1:
192
196
  ATT1 = AT1.transpose([1, 0])
193
197
  BTT1 = BT1.transpose([1, 0])
@@ -200,13 +204,13 @@ class gemm_test_bed_runner_transpose:
200
204
  wp.matmul(ATT2, BTT2, C3, D3, alpha, beta, False)
201
205
  tape.backward(grads={D1: ones1, D2: ones2, D3: ones3})
202
206
 
203
- D_np = alpha * (A.numpy() @ B.numpy()) + beta * C1.numpy()
207
+ D_np = alpha * np.matmul(A.numpy(), B.numpy(), dtype=np_dtype) + beta * C1.numpy()
204
208
  assert_np_equal(D1.numpy(), D_np)
205
209
  assert_np_equal(D2.numpy(), D_np)
206
210
  assert_np_equal(D3.numpy(), D_np)
207
211
 
208
- adj_A_np = alpha * (ones1.numpy() @ B.numpy().transpose())
209
- adj_B_np = alpha * (A.numpy().transpose() @ ones1.numpy())
212
+ adj_A_np = alpha * np.matmul(ones1.numpy(), B.numpy().transpose(), dtype=np_dtype)
213
+ adj_B_np = alpha * np.matmul(A.numpy().transpose(), ones1.numpy(), dtype=np_dtype)
210
214
  adj_C_np = beta * ones1.numpy()
211
215
 
212
216
  else:
@@ -221,13 +225,13 @@ class gemm_test_bed_runner_transpose:
221
225
  wp.batched_matmul(ATT2, BTT2, C3, D3, alpha, beta, False)
222
226
  tape.backward(grads={D1: ones1, D2: ones2, D3: ones3})
223
227
 
224
- D_np = alpha * np.matmul(A.numpy(), B.numpy()) + beta * C1.numpy()
228
+ D_np = alpha * np.matmul(A.numpy(), B.numpy(), dtype=np_dtype) + beta * C1.numpy()
225
229
  assert_np_equal(D1.numpy(), D_np)
226
230
  assert_np_equal(D2.numpy(), D_np)
227
231
  assert_np_equal(D3.numpy(), D_np)
228
232
 
229
- adj_A_np = alpha * np.matmul(ones1.numpy(), B.numpy().transpose((0, 2, 1)))
230
- adj_B_np = alpha * np.matmul(A.numpy().transpose((0, 2, 1)), ones1.numpy())
233
+ adj_A_np = alpha * np.matmul(ones1.numpy(), B.numpy().transpose((0, 2, 1)), dtype=np_dtype)
234
+ adj_B_np = alpha * np.matmul(A.numpy().transpose((0, 2, 1)), ones1.numpy(), dtype=np_dtype)
231
235
  adj_C_np = beta * ones1.numpy()
232
236
 
233
237
  assert_np_equal(A.grad.numpy(), adj_A_np)
@@ -494,5 +498,5 @@ add_function_test(TestMatmul, "test_cuda_graph_capture", test_cuda_graph_capture
494
498
 
495
499
 
496
500
  if __name__ == "__main__":
497
- wp.build.clear_kernel_cache()
501
+ wp.clear_kernel_cache()
498
502
  unittest.main(verbosity=2, failfast=False)
@@ -404,5 +404,5 @@ add_function_test(TestMatmulLite, "test_large_batch_count", test_large_batch_cou
404
404
 
405
405
 
406
406
  if __name__ == "__main__":
407
- wp.build.clear_kernel_cache()
407
+ wp.clear_kernel_cache()
408
408
  unittest.main(verbosity=2, failfast=False)
@@ -182,5 +182,5 @@ add_function_test(TestMempool, "test_mempool_access_exceptions_cpu", test_mempoo
182
182
 
183
183
 
184
184
  if __name__ == "__main__":
185
- wp.build.clear_kernel_cache()
185
+ wp.clear_kernel_cache()
186
186
  unittest.main(verbosity=2)
warp/tests/test_mesh.py CHANGED
@@ -266,7 +266,10 @@ devices = get_test_devices()
266
266
 
267
267
 
268
268
  class TestMesh(unittest.TestCase):
269
- pass
269
+ def test_mesh_new_del(self):
270
+ # test the scenario in which a mesh is created but not initialized before gc
271
+ instance = wp.Mesh.__new__(wp.Mesh)
272
+ instance.__del__()
270
273
 
271
274
 
272
275
  add_function_test(TestMesh, "test_mesh_read_properties", test_mesh_read_properties, devices=devices)
@@ -277,5 +280,5 @@ add_function_test(TestMesh, "test_mesh_exceptions", test_mesh_exceptions, device
277
280
 
278
281
 
279
282
  if __name__ == "__main__":
280
- wp.build.clear_kernel_cache()
283
+ wp.clear_kernel_cache()
281
284
  unittest.main(verbosity=2)
@@ -222,5 +222,5 @@ add_function_test(
222
222
  )
223
223
 
224
224
  if __name__ == "__main__":
225
- wp.build.clear_kernel_cache()
225
+ wp.clear_kernel_cache()
226
226
  unittest.main(verbosity=2)
@@ -686,5 +686,5 @@ add_function_test(TestMeshQueryPoint, "test_mesh_query_furthest_point", test_mes
686
686
  add_function_test(TestMeshQueryPoint, "test_adj_mesh_query_point", test_adj_mesh_query_point, devices=devices)
687
687
 
688
688
  if __name__ == "__main__":
689
- wp.build.clear_kernel_cache()
689
+ wp.clear_kernel_cache()
690
690
  unittest.main(verbosity=2)
@@ -286,5 +286,5 @@ add_function_test(TestMeshQueryRay, "test_mesh_query_ray_grad", test_mesh_query_
286
286
 
287
287
 
288
288
  if __name__ == "__main__":
289
- wp.build.clear_kernel_cache()
289
+ wp.clear_kernel_cache()
290
290
  unittest.main(verbosity=2)
warp/tests/test_mlp.py CHANGED
@@ -270,5 +270,5 @@ add_function_test(TestMLP, "test_mlp_grad", test_mlp_grad, devices=devices)
270
270
 
271
271
 
272
272
  if __name__ == "__main__":
273
- wp.build.clear_kernel_cache()
273
+ wp.clear_kernel_cache()
274
274
  unittest.main(verbosity=2, failfast=False)
warp/tests/test_model.py CHANGED
@@ -104,5 +104,5 @@ class TestModel(unittest.TestCase):
104
104
 
105
105
 
106
106
  if __name__ == "__main__":
107
- wp.build.clear_kernel_cache()
107
+ wp.clear_kernel_cache()
108
108
  unittest.main(verbosity=2)
@@ -66,6 +66,65 @@ def fn(value: int):
66
66
  wp.print(value + 1)
67
67
  """
68
68
 
69
+ FUNC_GENERIC_1 = """# -*- coding: utf-8 -*-
70
+ import warp as wp
71
+
72
+ from typing import Any
73
+
74
+ @wp.func
75
+ def generic_fn(x: Any):
76
+ return x * x
77
+
78
+ @wp.func
79
+ def generic_fn(x: Any, y: Any):
80
+ return x * y
81
+ """
82
+
83
+ # should be same hash as FUNC_GENERIC_1
84
+ FUNC_GENERIC_2 = """# -*- coding: utf-8 -*-
85
+ import warp as wp
86
+
87
+ from typing import Any
88
+
89
+ @wp.func
90
+ def generic_fn(x: Any):
91
+ return x * x
92
+
93
+ @wp.func
94
+ def generic_fn(x: Any, y: Any):
95
+ return x * y
96
+ """
97
+
98
+ # should be different hash than FUNC_GENERIC_1 (first overload is different)
99
+ FUNC_GENERIC_3 = """# -*- coding: utf-8 -*-
100
+ import warp as wp
101
+
102
+ from typing import Any
103
+
104
+ @wp.func
105
+ def generic_fn(x: Any):
106
+ return x + x
107
+
108
+ @wp.func
109
+ def generic_fn(x: Any, y: Any):
110
+ return x * y
111
+ """
112
+
113
+ # should be different hash than FUNC_GENERIC_1 (second overload is different)
114
+ FUNC_GENERIC_4 = """# -*- coding: utf-8 -*-
115
+ import warp as wp
116
+
117
+ from typing import Any
118
+
119
+ @wp.func
120
+ def generic_fn(x: Any):
121
+ return x * x
122
+
123
+ @wp.func
124
+ def generic_fn(x: Any, y: Any):
125
+ return x + y
126
+ """
127
+
69
128
 
70
129
  def load_code_as_module(code, name):
71
130
  file, file_path = tempfile.mkstemp(suffix=".py")
@@ -99,13 +158,30 @@ def test_function_overload_hashing(test, device):
99
158
  test.assertNotEqual(hash4, hash1)
100
159
 
101
160
 
161
+ def test_function_generic_overload_hashing(test, device):
162
+ m1 = load_code_as_module(FUNC_GENERIC_1, "func_generic_1")
163
+ m2 = load_code_as_module(FUNC_GENERIC_2, "func_generic_2")
164
+ m3 = load_code_as_module(FUNC_GENERIC_3, "func_generic_3")
165
+ m4 = load_code_as_module(FUNC_GENERIC_4, "func_generic_4")
166
+
167
+ hash1 = m1.hash_module()
168
+ hash2 = m2.hash_module()
169
+ hash3 = m3.hash_module()
170
+ hash4 = m4.hash_module()
171
+
172
+ test.assertEqual(hash2, hash1)
173
+ test.assertNotEqual(hash3, hash1)
174
+ test.assertNotEqual(hash4, hash1)
175
+
176
+
102
177
  class TestModuleHashing(unittest.TestCase):
103
178
  pass
104
179
 
105
180
 
106
181
  add_function_test(TestModuleHashing, "test_function_overload_hashing", test_function_overload_hashing)
182
+ add_function_test(TestModuleHashing, "test_function_generic_overload_hashing", test_function_generic_overload_hashing)
107
183
 
108
184
 
109
185
  if __name__ == "__main__":
110
- wp.build.clear_kernel_cache()
186
+ wp.clear_kernel_cache()
111
187
  unittest.main(verbosity=2)
@@ -32,5 +32,5 @@ class TestModuleLite(unittest.TestCase):
32
32
 
33
33
 
34
34
  if __name__ == "__main__":
35
- wp.build.clear_kernel_cache()
35
+ wp.clear_kernel_cache()
36
36
  unittest.main(verbosity=2)
@@ -157,5 +157,5 @@ class TestMultiGPU(unittest.TestCase):
157
157
 
158
158
 
159
159
  if __name__ == "__main__":
160
- wp.build.clear_kernel_cache()
160
+ wp.clear_kernel_cache()
161
161
  unittest.main(verbosity=2, failfast=False)
warp/tests/test_noise.py CHANGED
@@ -240,5 +240,5 @@ add_function_test(TestNoise, "test_adj_noise", test_adj_noise, devices=devices)
240
240
 
241
241
 
242
242
  if __name__ == "__main__":
243
- wp.build.clear_kernel_cache()
243
+ wp.clear_kernel_cache()
244
244
  unittest.main(verbosity=2)
@@ -244,5 +244,5 @@ add_kernel_test(TestOperators, test_operators_mat44, dim=1, devices=devices)
244
244
 
245
245
 
246
246
  if __name__ == "__main__":
247
- wp.build.clear_kernel_cache()
247
+ wp.clear_kernel_cache()
248
248
  unittest.main(verbosity=2)
@@ -117,5 +117,5 @@ add_function_test(TestOptions, "test_options_4", test_options_4, devices=devices
117
117
 
118
118
 
119
119
  if __name__ == "__main__":
120
- wp.build.clear_kernel_cache()
120
+ wp.clear_kernel_cache()
121
121
  unittest.main(verbosity=2)