torchmonarch-nightly 2025.6.11__cp310-cp310-manylinux2014_x86_64.whl → 2025.6.13__cp310-cp310-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.
- monarch/_monarch/hyperactor/__init__.py +0 -16
- monarch/_rust_bindings.so +0 -0
- monarch/_testing.py +50 -18
- monarch/actor_mesh.py +74 -30
- monarch/bootstrap_main.py +1 -20
- monarch/builtins/random.py +4 -5
- monarch/common/client.py +17 -5
- monarch/common/stream.py +3 -0
- monarch/debugger.py +377 -0
- monarch/mesh_controller.py +72 -15
- monarch/monarch_controller +0 -0
- monarch/pdb_wrapper.py +135 -0
- monarch/proc_mesh.py +9 -5
- monarch/telemetry.py +19 -0
- tests/test_allocator.py +3 -3
- tests/test_coalescing.py +1 -1
- tests/test_controller.py +12 -2
- tests/test_python_actors.py +150 -0
- tests/test_remote_functions.py +1 -1
- {torchmonarch_nightly-2025.6.11.dist-info → torchmonarch_nightly-2025.6.13.dist-info}/METADATA +1 -1
- {torchmonarch_nightly-2025.6.11.dist-info → torchmonarch_nightly-2025.6.13.dist-info}/RECORD +25 -22
- {torchmonarch_nightly-2025.6.11.dist-info → torchmonarch_nightly-2025.6.13.dist-info}/WHEEL +0 -0
- {torchmonarch_nightly-2025.6.11.dist-info → torchmonarch_nightly-2025.6.13.dist-info}/entry_points.txt +0 -0
- {torchmonarch_nightly-2025.6.11.dist-info → torchmonarch_nightly-2025.6.13.dist-info}/licenses/LICENSE +0 -0
- {torchmonarch_nightly-2025.6.11.dist-info → torchmonarch_nightly-2025.6.13.dist-info}/top_level.txt +0 -0
monarch/telemetry.py
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# This source code is licensed under the BSD-style license found in the
|
5
|
+
# LICENSE file in the root directory of this source tree.
|
6
|
+
|
7
|
+
# pyre-strict
|
8
|
+
|
9
|
+
|
10
|
+
import logging
|
11
|
+
|
12
|
+
from monarch._rust_bindings.hyperactor_extension.telemetry import ( # @manual=//monarch/monarch_extension:monarch_extension
|
13
|
+
forward_to_tracing,
|
14
|
+
)
|
15
|
+
|
16
|
+
|
17
|
+
class TracingForwarder(logging.Handler):
|
18
|
+
def emit(self, record: logging.LogRecord) -> None:
|
19
|
+
forward_to_tracing(record)
|
tests/test_allocator.py
CHANGED
@@ -174,7 +174,7 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
|
|
174
174
|
actor = await proc_mesh.spawn("test_actor", TestActor)
|
175
175
|
|
176
176
|
values = await actor.compute_world_size.call(
|
177
|
-
master_addr="
|
177
|
+
master_addr="0.0.0.0",
|
178
178
|
master_port=get_free_port(),
|
179
179
|
)
|
180
180
|
|
@@ -206,10 +206,10 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
|
|
206
206
|
actor_b = await proc_mesh_b.spawn("actor_b", TestActor)
|
207
207
|
|
208
208
|
results_a = await actor_a.compute_world_size.call(
|
209
|
-
master_addr="
|
209
|
+
master_addr="0.0.0.0", master_port=get_free_port()
|
210
210
|
)
|
211
211
|
results_b = await actor_b.compute_world_size.call(
|
212
|
-
master_addr="
|
212
|
+
master_addr="0.0.0.0", master_port=get_free_port()
|
213
213
|
)
|
214
214
|
|
215
215
|
self.assert_computed_world_size(results_a, 2) # a is a 1x2 mesh
|
tests/test_coalescing.py
CHANGED
tests/test_controller.py
CHANGED
@@ -96,7 +96,7 @@ remote_sleep = remote("time.sleep", propagate="inspect")
|
|
96
96
|
torch.cuda.device_count() < 2,
|
97
97
|
reason="Not enough GPUs, this test requires at least 2 GPUs",
|
98
98
|
)
|
99
|
-
@pytest.mark.parametrize("backend_type", [BackendType.PY, BackendType.RS])
|
99
|
+
@pytest.mark.parametrize("backend_type", [BackendType.PY, BackendType.RS, "mesh"])
|
100
100
|
# Set global timeout--sandcastle's timeout is 600s. A test that sandcastle times
|
101
101
|
# out is not counted as a failure, so we set a more restrictive timeout to
|
102
102
|
# ensure we see a hard failure in CI.
|
@@ -114,7 +114,7 @@ class TestController:
|
|
114
114
|
N,
|
115
115
|
gpu_per_host,
|
116
116
|
activate,
|
117
|
-
|
117
|
+
backend=str(backend_type),
|
118
118
|
)
|
119
119
|
|
120
120
|
def test_errors(self, backend_type):
|
@@ -512,6 +512,7 @@ class TestController:
|
|
512
512
|
monarch.random.make_deterministic()
|
513
513
|
for device in ("cpu", "cuda"):
|
514
514
|
a = monarch.random.get_state()
|
515
|
+
monarch.inspect(a)
|
515
516
|
first = torch.rand(1, device=device)
|
516
517
|
monarch.random.set_state(a)
|
517
518
|
second = torch.rand(1, device=device)
|
@@ -601,6 +602,15 @@ class TestController:
|
|
601
602
|
assert torch.equal(moved_tensor_a, torch.tensor([1.0]))
|
602
603
|
assert torch.equal(moved_tensor_b, torch.tensor([2.0]))
|
603
604
|
|
605
|
+
def test_hanging_error(self, backend_type):
|
606
|
+
if backend_type != "mesh":
|
607
|
+
pytest.skip("only relevant for mesh backend")
|
608
|
+
with self.local_device_mesh(2, 2, backend_type) as device_mesh:
|
609
|
+
remote(lambda: torch.rand(3) + torch.rand(4), propagate=lambda: None)()
|
610
|
+
|
611
|
+
with pytest.raises(Exception, match="The size of tensor"):
|
612
|
+
device_mesh.client.shutdown()
|
613
|
+
|
604
614
|
def test_slice_mesh_pytree(self, backend_type):
|
605
615
|
with self.local_device_mesh(2, 2, backend_type) as device_mesh:
|
606
616
|
a = device_mesh.rank(("host")) + torch.zeros((1,), device="cuda")
|
tests/test_python_actors.py
CHANGED
@@ -4,8 +4,12 @@
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
6
6
|
|
7
|
+
import asyncio
|
7
8
|
import operator
|
9
|
+
import os
|
10
|
+
import re
|
8
11
|
from types import ModuleType
|
12
|
+
from unittest.mock import AsyncMock, patch
|
9
13
|
|
10
14
|
import monarch
|
11
15
|
|
@@ -20,7 +24,9 @@ from monarch.actor_mesh import (
|
|
20
24
|
current_rank,
|
21
25
|
current_size,
|
22
26
|
endpoint,
|
27
|
+
MonarchContext,
|
23
28
|
)
|
29
|
+
from monarch.debugger import init_debugging
|
24
30
|
|
25
31
|
from monarch.mesh_controller import spawn_tensor_engine
|
26
32
|
|
@@ -384,6 +390,10 @@ def test_rust_binding_modules_correct() -> None:
|
|
384
390
|
check(bindings, "monarch._rust_bindings")
|
385
391
|
|
386
392
|
|
393
|
+
@pytest.mark.skipif(
|
394
|
+
torch.cuda.device_count() < 2,
|
395
|
+
reason="Not enough GPUs, this test requires at least 2 GPUs",
|
396
|
+
)
|
387
397
|
def test_tensor_engine() -> None:
|
388
398
|
pm = proc_mesh(gpus=2).get()
|
389
399
|
|
@@ -399,3 +409,143 @@ def test_tensor_engine() -> None:
|
|
399
409
|
assert torch.allclose(torch.zeros(3, 4), f)
|
400
410
|
|
401
411
|
dm.exit()
|
412
|
+
|
413
|
+
|
414
|
+
def _debugee_actor_internal(rank):
|
415
|
+
if rank == 0:
|
416
|
+
breakpoint() # noqa
|
417
|
+
rank += 1
|
418
|
+
return rank
|
419
|
+
elif rank == 1:
|
420
|
+
breakpoint() # noqa
|
421
|
+
rank += 2
|
422
|
+
return rank
|
423
|
+
elif rank == 2:
|
424
|
+
breakpoint() # noqa
|
425
|
+
rank += 3
|
426
|
+
raise ValueError("bad rank")
|
427
|
+
elif rank == 3:
|
428
|
+
breakpoint() # noqa
|
429
|
+
rank += 4
|
430
|
+
return rank
|
431
|
+
|
432
|
+
|
433
|
+
class DebugeeActor(Actor):
|
434
|
+
@endpoint
|
435
|
+
async def to_debug(self):
|
436
|
+
rank = MonarchContext.get().point.rank
|
437
|
+
return _debugee_actor_internal(rank)
|
438
|
+
|
439
|
+
|
440
|
+
async def test_debug() -> None:
|
441
|
+
input_mock = AsyncMock()
|
442
|
+
input_mock.side_effect = [
|
443
|
+
"attach 1",
|
444
|
+
"n",
|
445
|
+
"n",
|
446
|
+
"n",
|
447
|
+
"n",
|
448
|
+
"detach",
|
449
|
+
"attach 1",
|
450
|
+
"detach",
|
451
|
+
"quit",
|
452
|
+
"cast 0,3 n",
|
453
|
+
"cast 0,3 n",
|
454
|
+
# Attaching to 0 and 3 ensures that when we call "list"
|
455
|
+
# the next time, their function/lineno info will be
|
456
|
+
# up-to-date.
|
457
|
+
"attach 0",
|
458
|
+
"detach",
|
459
|
+
"attach 3",
|
460
|
+
"detach",
|
461
|
+
"quit",
|
462
|
+
"attach 2",
|
463
|
+
"c",
|
464
|
+
"quit",
|
465
|
+
"continue",
|
466
|
+
]
|
467
|
+
|
468
|
+
outputs = []
|
469
|
+
|
470
|
+
def _patch_output(msg):
|
471
|
+
nonlocal outputs
|
472
|
+
outputs.append(msg)
|
473
|
+
|
474
|
+
with patch("monarch.debugger._debugger_input", side_effect=input_mock), patch(
|
475
|
+
"monarch.debugger._debugger_output", new=_patch_output
|
476
|
+
):
|
477
|
+
proc = await proc_mesh(hosts=2, gpus=2)
|
478
|
+
debugee = await proc.spawn("debugee", DebugeeActor)
|
479
|
+
debug_client = await init_debugging(debugee)
|
480
|
+
|
481
|
+
fut = debugee.to_debug.call()
|
482
|
+
await debug_client.wait_pending_session.call_one()
|
483
|
+
breakpoints = []
|
484
|
+
for i in range(10):
|
485
|
+
breakpoints = await debug_client.list.call_one()
|
486
|
+
if len(breakpoints) == 4:
|
487
|
+
break
|
488
|
+
await asyncio.sleep(1)
|
489
|
+
if i == 9:
|
490
|
+
raise RuntimeError("timed out waiting for breakpoints")
|
491
|
+
|
492
|
+
initial_linenos = {}
|
493
|
+
for i in range(len(breakpoints)):
|
494
|
+
rank, coords, _, _, function, lineno = breakpoints[i]
|
495
|
+
initial_linenos[rank] = lineno
|
496
|
+
assert rank == i
|
497
|
+
assert coords == {"hosts": rank % 2, "gpus": rank // 2}
|
498
|
+
assert function == "test_python_actors._debugee_actor_internal"
|
499
|
+
assert lineno == breakpoints[0][5] + 4 * rank
|
500
|
+
|
501
|
+
await debug_client.enter.call_one()
|
502
|
+
|
503
|
+
# Check that when detaching and re-attaching to a session, the last portion of the output is repeated
|
504
|
+
expected_last_output = [
|
505
|
+
r"--Return--",
|
506
|
+
r"\n",
|
507
|
+
r"> (/.*/)+test_python_actors.py\(\d+\)to_debug\(\)->3\n-> return _debugee_actor_internal\(rank\)",
|
508
|
+
r"\n",
|
509
|
+
r"\(Pdb\) ",
|
510
|
+
]
|
511
|
+
output_len = len(expected_last_output)
|
512
|
+
assert outputs[-2 * output_len : -output_len] == outputs[-output_len:]
|
513
|
+
for real_output, expected_output in zip(
|
514
|
+
outputs[-output_len:], expected_last_output
|
515
|
+
):
|
516
|
+
assert re.match(expected_output, real_output) is not None
|
517
|
+
|
518
|
+
breakpoints = await debug_client.list.call_one()
|
519
|
+
for i in range(len(breakpoints)):
|
520
|
+
if i == 1:
|
521
|
+
assert breakpoints[i][4] == "test_python_actors.to_debug"
|
522
|
+
else:
|
523
|
+
assert breakpoints[i][4] == "test_python_actors._debugee_actor_internal"
|
524
|
+
assert breakpoints[i][5] == initial_linenos[i]
|
525
|
+
|
526
|
+
await debug_client.enter.call_one()
|
527
|
+
|
528
|
+
breakpoints = await debug_client.list.call_one()
|
529
|
+
for i in range(len(breakpoints)):
|
530
|
+
if i == 1:
|
531
|
+
assert breakpoints[i][4] == "test_python_actors.to_debug"
|
532
|
+
elif i in (0, 3):
|
533
|
+
assert breakpoints[i][4] == "test_python_actors._debugee_actor_internal"
|
534
|
+
assert breakpoints[i][5] == initial_linenos[i] + 2
|
535
|
+
else:
|
536
|
+
assert breakpoints[i][4] == "test_python_actors._debugee_actor_internal"
|
537
|
+
assert breakpoints[i][5] == initial_linenos[i]
|
538
|
+
|
539
|
+
await debug_client.enter.call_one()
|
540
|
+
|
541
|
+
breakpoints = await debug_client.list.call_one()
|
542
|
+
assert len(breakpoints) == 3
|
543
|
+
for i, rank in enumerate((0, 1, 3)):
|
544
|
+
assert breakpoints[i][0] == rank
|
545
|
+
|
546
|
+
await debug_client.enter.call_one()
|
547
|
+
breakpoints = await debug_client.list.call_one()
|
548
|
+
assert len(breakpoints) == 0
|
549
|
+
|
550
|
+
with pytest.raises(monarch.actor_mesh.ActorError, match="ValueError: bad rank"):
|
551
|
+
await fut
|
tests/test_remote_functions.py
CHANGED
{torchmonarch_nightly-2025.6.11.dist-info → torchmonarch_nightly-2025.6.13.dist-info}/RECORD
RENAMED
@@ -1,20 +1,22 @@
|
|
1
1
|
monarch/__init__.py,sha256=iUvWHc0-7Q2tovRoRxOIiA3TsefMXCbWl-jEfQ2djew,6897
|
2
|
-
monarch/_rust_bindings.so,sha256=
|
3
|
-
monarch/_testing.py,sha256=
|
4
|
-
monarch/actor_mesh.py,sha256=
|
2
|
+
monarch/_rust_bindings.so,sha256=FJb4gGPNDWqT1nPkxEYSX4hEsIbjb_v8Oa0RDwMcH5A,40302936
|
3
|
+
monarch/_testing.py,sha256=jOIOG6jcZBzvEvG_DwSnwCkaMVXvSun6sJAG6nXemww,7859
|
4
|
+
monarch/actor_mesh.py,sha256=8Ih3CIArLTyZmWSHppXm5N2WlAjmGXpaQhkkFtjJFxc,25351
|
5
5
|
monarch/allocator.py,sha256=ylvYTf31o-PT385cYJPhi17uNbC4yl_RAraqD0fVe4g,4112
|
6
|
-
monarch/bootstrap_main.py,sha256=
|
6
|
+
monarch/bootstrap_main.py,sha256=RCUQhJk07yMFiKp6HzQuqZFUpkgsT9kVEyimiwjn6_E,1827
|
7
7
|
monarch/cached_remote_function.py,sha256=kYdB6r4OHx_T_uX4q3tCNcp1t2DJwF8tPTIahUiT2pU,8785
|
8
|
+
monarch/debugger.py,sha256=AdlvOG3X-9Pw9c1DLQYEy4vjEfh0ZtwtsNJEFLFzN8o,13312
|
8
9
|
monarch/fetch.py,sha256=61jxo7sx4QNUTkc0_rF5NaJROen4tKbAaiIjrXWLOvg,1705
|
9
10
|
monarch/future.py,sha256=lcdFEe7m1shYPPuvZ1RkS6JUIChEKGBWe3v7x_nu4Hg,731
|
10
11
|
monarch/gradient_generator.py,sha256=Rl3dmXGceTdCc1mYBg2JciR88ywGPnW7TVkL86KwqEA,6366
|
11
12
|
monarch/memory.py,sha256=ol86dBhFAJqg78iF25-BuK0wuwj1onR8FIioZ_B0gjw,1377
|
12
|
-
monarch/mesh_controller.py,sha256=
|
13
|
-
monarch/monarch_controller,sha256=
|
13
|
+
monarch/mesh_controller.py,sha256=Xft2edk7rz8_PPe-iIUZ09P-j4JDPGADBGHBiuiZ7YY,10363
|
14
|
+
monarch/monarch_controller,sha256=mE9pvcBDKwW_4zOZlO17PJDk7W6z5skzIX5rxHQfKOs,20238936
|
14
15
|
monarch/notebook.py,sha256=zu9MKDFKf1-rCM2TqFSRJjMBeiWuKcJSyUFLvoZRQzs,25949
|
15
16
|
monarch/opaque_module.py,sha256=oajOu_WD1hD4hxE8HDdO-tvWY7KDHWd7VaAhJEa5L2I,10446
|
16
17
|
monarch/opaque_object.py,sha256=IVpll4pyuKZMo_EnPh4s0qnx8RlAcJrJ1yoLX6E75wQ,2782
|
17
|
-
monarch/
|
18
|
+
monarch/pdb_wrapper.py,sha256=gm46AZnfR4amH1vYFWnWivEv5MaU3Nb6KIWjSM8KjWM,4052
|
19
|
+
monarch/proc_mesh.py,sha256=xoaReM9Ab9TWkesxedWSyyk4TMD0HLV88dQ8CQcbqTI,6892
|
18
20
|
monarch/profiler.py,sha256=TQ9fnVM8H7smBWtYdB_6Irtzz8DBOmcp7U1T3wlUmco,4911
|
19
21
|
monarch/python_local_mesh.py,sha256=YsureIzR9uGlNVrKd4vRghxOXBeYabkt9lICRErfRAI,3536
|
20
22
|
monarch/random.py,sha256=f9QR7Esu4Vxqxs-KCf5QYyVqlWvXJ3-UtG90L_h4j40,1527
|
@@ -23,18 +25,19 @@ monarch/remote_class.py,sha256=-OAowzU1aDP6i4ik_SjXntVUC9h4dqAzgqwohkQ6Grc,4167
|
|
23
25
|
monarch/rust_backend_mesh.py,sha256=1htC62of4MgFtkezWGlsxSFtKJdc0CIeqeSuOx7yu3M,9944
|
24
26
|
monarch/rust_local_mesh.py,sha256=7ASptybn3wy4J7eoBc7LhGW4j4AA6bigl5Kuhyflw8s,47405
|
25
27
|
monarch/sim_mesh.py,sha256=9wkS99L0EpG2Gldi-nzA-3ww7z__DQ7Qp2uReMfn188,12183
|
28
|
+
monarch/telemetry.py,sha256=7JUZWaoD2Yn5Ae_7kNhkLFRBLYaSGfH071_m_qfVehI,525
|
26
29
|
monarch/tensor_worker_main.py,sha256=Nbarl2sJKIddLeaRFsaUnqOerLHjzggUr9SqCr2_GYI,8300
|
27
30
|
monarch/tensorboard.py,sha256=MnLgH5lbqeUJauEuirEgR6L_qYl2NGdtwZOWIAuOZao,2587
|
28
31
|
monarch/world_mesh.py,sha256=GqZpFoVNJPxYa70rLYgv0vu8Vg1nXqx_GYERRb1E9Pc,975
|
29
32
|
monarch/_monarch/__init__.py,sha256=Md3cCHD7Ano9kV15PqGbicgUO-RMdh4aVy1yKiDt_xE,208
|
30
|
-
monarch/_monarch/hyperactor/__init__.py,sha256=
|
33
|
+
monarch/_monarch/hyperactor/__init__.py,sha256=JLnB2_-bKHLqAcZwehKvPkbwbxF-gCq5LODJiWGU_b8,1384
|
31
34
|
monarch/_monarch/selection/__init__.py,sha256=47arOElvlK0uYcTNrd__1BwXSfsMosnVw4_tgu2hA-I,381
|
32
35
|
monarch/_monarch/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
36
|
monarch/_monarch/worker/debugger.py,sha256=JJZwRPTgQO2emz-hrMelkOSxJFIR3dV4ZA6e7ftYUKA,3614
|
34
37
|
monarch/_monarch/worker/logging.py,sha256=nJUkIuKhPqRZaNDOT7MVbFFjcITZQf_CiFRLFKJJqsw,3591
|
35
38
|
monarch/builtins/__init__.py,sha256=QcfnHZGbc2qktBg7DyZt2ruE6VahnIt4S8lEZLHdJqU,443
|
36
39
|
monarch/builtins/log.py,sha256=H1QkuVzwxyi36Zyv-XR0VN0QsNimBWwxE1__fjs0_2o,554
|
37
|
-
monarch/builtins/random.py,sha256=
|
40
|
+
monarch/builtins/random.py,sha256=wPbvscg7u53EXpMFo885fO2XOlsyjrNAJ4rBxLzfxdg,1839
|
38
41
|
monarch/common/_C.pyi,sha256=kHY2G3ksMAjQJ6IcPb4F1bBh5knzw5RVVNhhBlEmwFU,314
|
39
42
|
monarch/common/_C.so,sha256=gVDCDUQSKiPHwLPIpyxcRgiv8uF_quH1LpgI5Lhle9Y,715600
|
40
43
|
monarch/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -43,7 +46,7 @@ monarch/common/_device_utils.py,sha256=gBpl23wMjppVAEzzj8U9HyX-B7Bs2_3ftiMAkzUS4
|
|
43
46
|
monarch/common/_tensor_to_table.py,sha256=yRjCNwvtl188Z1Dwkx3ZU-Bh2mwYnQ0Lnue2RAztwvc,5753
|
44
47
|
monarch/common/base_tensor.py,sha256=ujRzR6lWaeCdPv2JX0vCR-VsCWn-3SHaJIkZH1Sw9FQ,1159
|
45
48
|
monarch/common/borrows.py,sha256=7KR62xoUat1T6FyADsdHsxVAVIJDvfJWUnPO-xx277U,5307
|
46
|
-
monarch/common/client.py,sha256=
|
49
|
+
monarch/common/client.py,sha256=axo37s_z17nYQGOZG5fi_0zUEJ_8qw7INjs-Kw2vaVo,24937
|
47
50
|
monarch/common/constants.py,sha256=ohvsVYMpfeWopv3KXDAeHWDFLukwc-OY37VRxpKNBE8,300
|
48
51
|
monarch/common/context_manager.py,sha256=GOeyaFbyCqvQmkJ0oI7q6IxRd8_0mVyYKZRccI8iaug,1067
|
49
52
|
monarch/common/controller_api.py,sha256=djGkK5aSd-V6pBkr3uBCXbfJv3OKf2o2VbBXJgFF2WI,3202
|
@@ -65,7 +68,7 @@ monarch/common/reference.py,sha256=O26lkzEeVwj0S1xEy-OLqdHVnACmmlbQCUmXRrW4n1Q,9
|
|
65
68
|
monarch/common/remote.py,sha256=qZWXkShX20l07TseQSpVECh2yXZaVKYUvQXkeEM-zvY,9220
|
66
69
|
monarch/common/selection.py,sha256=lpWFbZs3ArYy29e-53eoAVAjQFksf1RvZz9NvM0CUW4,308
|
67
70
|
monarch/common/shape.py,sha256=k6-0S0U19PmrfP62SMb9Ihx6_I4QQFUGErloZn8GcZ0,8144
|
68
|
-
monarch/common/stream.py,sha256=
|
71
|
+
monarch/common/stream.py,sha256=_ejoxafHtdD10lLzznRCXKwrkZ_ZH9k_VTgiA5yfBrI,3583
|
69
72
|
monarch/common/tensor.py,sha256=mSXiHoD0Up4m2RLdQcsbesaz2N4QCFS34UNNX3Dbldk,28842
|
70
73
|
monarch/common/tensor_factory.py,sha256=qm8NZx-5ezMAFjNLiXQvb66okm5XgdboB_GRarGOdN0,801
|
71
74
|
monarch/common/tree.py,sha256=1DG3siiE7ixBV6v5cwN8RT_17aJhYZTE-L3i7wZe2_c,2282
|
@@ -132,17 +135,17 @@ tests/error_test_binary.py,sha256=64H-ucdkQ2i7GD8sidStl227cOy7gyeqvO4kTm1y7Ic,48
|
|
132
135
|
tests/sleep_binary.py,sha256=XfLYaAfwm9xgzM-svs8fhAeFhwYIg6SyVEnx4e6wbUw,1009
|
133
136
|
tests/test_actor_error.py,sha256=z3Sf4lteUggTryPLOhRKJ55v0MwVK3a7QN7-U2U9iJg,7484
|
134
137
|
tests/test_alloc.py,sha256=D6DdQbtOZEvvnnc7LV-WyWFMk0Xb77eblH6Oz90zJTA,745
|
135
|
-
tests/test_allocator.py,sha256=
|
136
|
-
tests/test_coalescing.py,sha256
|
137
|
-
tests/test_controller.py,sha256=
|
138
|
+
tests/test_allocator.py,sha256=P11sQ95ADjzC_-CfPs3CEP80nP8sn7wW8vVPsmpSVoM,8164
|
139
|
+
tests/test_coalescing.py,sha256=JZ4YgQNlWWs7N-Z8KCCXQPANcuyyXEKjeHIXYbPnQhk,15606
|
140
|
+
tests/test_controller.py,sha256=Rp_kW20zYT8ocsK5LX0Ha3LB9azS2LSKpp8n_dBlzVU,31384
|
138
141
|
tests/test_device_mesh.py,sha256=DrbezYOM0thfP9MgLXb5-F0VoLOmSz5GR0GwjR_3bE4,5290
|
139
142
|
tests/test_fault_tolerance.py,sha256=u4wmG1z5MZ6PY6us5zUZHJh2pUC3L7i0wsUfRDNHmxA,14144
|
140
143
|
tests/test_future.py,sha256=cXzaNi2YDwVyjR541ScXmgktX1YFsKzbl8wep0DMVbk,3032
|
141
144
|
tests/test_grad_generator.py,sha256=p4Pm4kMEeGldt2jUVAkGKCB0mLccKI28pltH6OTGbQA,3412
|
142
145
|
tests/test_mock_cuda.py,sha256=5hisElxeLJ5MHw3KM9gwxBiXiMaG-Rm382u3AsQcDOI,3068
|
143
146
|
tests/test_pdb_actor.py,sha256=5KJhuhcZDPWMdjC6eAtDdwnz1W7jNFXvIrMSFaCWaPw,3858
|
144
|
-
tests/test_python_actors.py,sha256=
|
145
|
-
tests/test_remote_functions.py,sha256=
|
147
|
+
tests/test_python_actors.py,sha256=MPdXtnj4ZeyAaecDFJMXdz29KvimF9iB3bASgoo6-iM,16201
|
148
|
+
tests/test_remote_functions.py,sha256=5nxYB8dfA9NT9f9Od9O3htgQtPbiRNiXZ1Kgtn75sOQ,50056
|
146
149
|
tests/test_rust_backend.py,sha256=94S3R995ZkyIhEiBsM5flcjf5X7bscEAHBtInbTRFe8,7776
|
147
150
|
tests/test_signal_safe_block_on.py,sha256=bmal0XgzJowZXJV6T1Blow5a-vZluYWusCThLMGxyTE,3336
|
148
151
|
tests/test_sim_backend.py,sha256=RckCkHO3DxKsAGdZMcIzRnd6YJXwDim1D5-xbBbgKio,1473
|
@@ -151,9 +154,9 @@ tests/simulator/test_profiling.py,sha256=TGYCfzTLdkpIwnOuO6KApprmrgPIRQe60KRX3wk
|
|
151
154
|
tests/simulator/test_simulator.py,sha256=LO8lA0ssY-OGEBL5ipEu74f97Y765TEwfUOv-DtIptM,14568
|
152
155
|
tests/simulator/test_task.py,sha256=ipqBDuDAysuo1xOB9S5psaFvwe6VATD43IovCTSs0t4,2327
|
153
156
|
tests/simulator/test_worker.py,sha256=QrWWIJ3HDgDLkBPRc2mwYPlOQoXQcj1qRfc0WUfKkFY,3507
|
154
|
-
torchmonarch_nightly-2025.6.
|
155
|
-
torchmonarch_nightly-2025.6.
|
156
|
-
torchmonarch_nightly-2025.6.
|
157
|
-
torchmonarch_nightly-2025.6.
|
158
|
-
torchmonarch_nightly-2025.6.
|
159
|
-
torchmonarch_nightly-2025.6.
|
157
|
+
torchmonarch_nightly-2025.6.13.dist-info/licenses/LICENSE,sha256=e0Eotbf_rHOYPuEUlppIbvwy4SN98CZnl_hqwvbDA4Q,1530
|
158
|
+
torchmonarch_nightly-2025.6.13.dist-info/METADATA,sha256=WhintlKk3a9WRrjo-QLNntfi87q98I4gcZW_0f42q48,2772
|
159
|
+
torchmonarch_nightly-2025.6.13.dist-info/WHEEL,sha256=_wZSFk0d90K9wOBp8Q-UGxshyiJ987JoPiyUBNC6VLk,104
|
160
|
+
torchmonarch_nightly-2025.6.13.dist-info/entry_points.txt,sha256=sqfQ16oZqjEvttUI-uj9BBXIIE6jt05bYFSmy-2hyXI,106
|
161
|
+
torchmonarch_nightly-2025.6.13.dist-info/top_level.txt,sha256=E-ZssZzyM17glpVrh-S9--qJ-w9p2EjuYOuNw9tQ4Eg,33
|
162
|
+
torchmonarch_nightly-2025.6.13.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
{torchmonarch_nightly-2025.6.11.dist-info → torchmonarch_nightly-2025.6.13.dist-info}/top_level.txt
RENAMED
File without changes
|