mplang-nightly 0.1.dev279__py3-none-any.whl → 0.1.dev281__py3-none-any.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.
- mplang/__init__.py +2 -2
- mplang/backends/channel.py +6 -5
- mplang/backends/simp_driver/http.py +1 -1
- mplang/backends/simp_worker/http.py +29 -16
- mplang/backends/simp_worker/mem.py +1 -1
- mplang/backends/spu_impl.py +1 -1
- mplang/backends/table_impl.py +1 -1
- mplang/backends/tensor_impl.py +1 -1
- mplang/cli.py +1 -1
- mplang/edsl/jit.py +1 -1
- mplang/edsl/primitive.py +1 -1
- mplang/edsl/tracer.py +1 -1
- mplang/libs/device/api.py +1 -1
- mplang/runtime/interpreter.py +1 -1
- mplang/utils/__init__.py +4 -0
- mplang/{logging_config.py → utils/logging.py} +6 -19
- {mplang_nightly-0.1.dev279.dist-info → mplang_nightly-0.1.dev281.dist-info}/METADATA +1 -1
- {mplang_nightly-0.1.dev279.dist-info → mplang_nightly-0.1.dev281.dist-info}/RECORD +21 -21
- {mplang_nightly-0.1.dev279.dist-info → mplang_nightly-0.1.dev281.dist-info}/WHEEL +0 -0
- {mplang_nightly-0.1.dev279.dist-info → mplang_nightly-0.1.dev281.dist-info}/entry_points.txt +0 -0
- {mplang_nightly-0.1.dev279.dist-info → mplang_nightly-0.1.dev281.dist-info}/licenses/LICENSE +0 -0
mplang/__init__.py
CHANGED
|
@@ -94,10 +94,10 @@ from mplang.libs.device import (
|
|
|
94
94
|
set_dev_attr,
|
|
95
95
|
)
|
|
96
96
|
from mplang.libs.device import fetch as device_fetch
|
|
97
|
+
from mplang.runtime.interpreter import Interpreter
|
|
97
98
|
|
|
98
99
|
# Logging configuration
|
|
99
|
-
from mplang.
|
|
100
|
-
from mplang.runtime.interpreter import Interpreter
|
|
100
|
+
from mplang.utils.logging import disable_logging, get_logger, setup_logging
|
|
101
101
|
|
|
102
102
|
# =============================================================================
|
|
103
103
|
# Context Management API (JAX-like pattern)
|
mplang/backends/channel.py
CHANGED
|
@@ -25,7 +25,7 @@ from typing import Protocol
|
|
|
25
25
|
|
|
26
26
|
import spu.libspu as libspu
|
|
27
27
|
|
|
28
|
-
from mplang.
|
|
28
|
+
from mplang.utils.logging import get_logger
|
|
29
29
|
|
|
30
30
|
logger = get_logger(__name__)
|
|
31
31
|
|
|
@@ -36,7 +36,9 @@ class CommunicatorProtocol(Protocol):
|
|
|
36
36
|
Both ThreadCommunicator and HttpCommunicator implement this interface.
|
|
37
37
|
"""
|
|
38
38
|
|
|
39
|
-
def send(
|
|
39
|
+
def send(
|
|
40
|
+
self, to: int, key: str, data: bytes, *, is_raw_bytes: bool = False
|
|
41
|
+
) -> None: ...
|
|
40
42
|
def recv(self, frm: int, key: str) -> bytes: ...
|
|
41
43
|
|
|
42
44
|
|
|
@@ -111,9 +113,8 @@ class BaseChannel(libspu.link.IChannel):
|
|
|
111
113
|
len(data),
|
|
112
114
|
)
|
|
113
115
|
|
|
114
|
-
# Send raw bytes directly
|
|
115
|
-
|
|
116
|
-
self._comm.send(self._peer_rank, key, data)
|
|
116
|
+
# Send raw bytes directly.
|
|
117
|
+
self._comm.send(self._peer_rank, key, data, is_raw_bytes=True)
|
|
117
118
|
|
|
118
119
|
def Recv(self, tag: str) -> bytes:
|
|
119
120
|
"""Receive bytes from peer (blocking).
|
|
@@ -25,9 +25,9 @@ import httpx
|
|
|
25
25
|
|
|
26
26
|
from mplang.backends.simp_driver.state import SimpDriver
|
|
27
27
|
from mplang.edsl import serde
|
|
28
|
-
from mplang.logging_config import get_logger
|
|
29
28
|
from mplang.runtime.interpreter import Interpreter
|
|
30
29
|
from mplang.runtime.object_store import ObjectStore
|
|
30
|
+
from mplang.utils.logging import get_logger
|
|
31
31
|
|
|
32
32
|
logger = get_logger(__name__)
|
|
33
33
|
|
|
@@ -54,9 +54,9 @@ from mplang.backends.simp_worker import SimpWorker
|
|
|
54
54
|
from mplang.backends.simp_worker import ops as _simp_worker_ops # noqa: F401
|
|
55
55
|
from mplang.edsl import serde
|
|
56
56
|
from mplang.edsl.graph import Graph
|
|
57
|
-
from mplang.logging_config import get_logger
|
|
58
57
|
from mplang.runtime.interpreter import ExecutionTracer, Interpreter
|
|
59
58
|
from mplang.runtime.object_store import ObjectStore
|
|
59
|
+
from mplang.utils.logging import get_logger
|
|
60
60
|
|
|
61
61
|
logger = get_logger(__name__)
|
|
62
62
|
|
|
@@ -91,27 +91,37 @@ class HttpCommunicator:
|
|
|
91
91
|
self._pending_sends: list[concurrent.futures.Future[None]] = []
|
|
92
92
|
self.client = httpx.Client(timeout=None)
|
|
93
93
|
|
|
94
|
-
def send(self, to: int, key: str, data: Any) -> None:
|
|
95
|
-
"""Send data to another rank asynchronously.
|
|
96
|
-
|
|
94
|
+
def send(self, to: int, key: str, data: Any, *, is_raw_bytes: bool = False) -> None:
|
|
95
|
+
"""Send data to another rank asynchronously.
|
|
96
|
+
|
|
97
|
+
Args:
|
|
98
|
+
to: Target rank.
|
|
99
|
+
key: Message key.
|
|
100
|
+
data: Payload.
|
|
101
|
+
is_raw_bytes: If True, treat `data` as raw bytes and transmit as
|
|
102
|
+
base64-encoded bytes (no serde). If False, the transport may still
|
|
103
|
+
treat `bytes` payloads as raw bytes.
|
|
104
|
+
"""
|
|
105
|
+
future = self._send_executor.submit(self._do_send, to, key, data, is_raw_bytes)
|
|
97
106
|
self._pending_sends.append(future)
|
|
98
107
|
|
|
99
|
-
def _do_send(self, to: int, key: str, data: Any) -> None:
|
|
108
|
+
def _do_send(self, to: int, key: str, data: Any, is_raw_bytes: bool) -> None:
|
|
100
109
|
"""Perform the HTTP send."""
|
|
101
110
|
url = f"{self.endpoints[to]}/comm/{key}"
|
|
102
111
|
logger.debug(f"Rank {self.rank} sending to {to} key={key}, url={url}")
|
|
103
112
|
|
|
104
|
-
#
|
|
105
|
-
|
|
106
|
-
|
|
113
|
+
# Raw-bytes transport rule:
|
|
114
|
+
# - If caller explicitly marks raw bytes, always use raw path.
|
|
115
|
+
# - Otherwise, if payload is `bytes`, use raw path.
|
|
116
|
+
# This avoids coupling encoding format to key naming conventions.
|
|
117
|
+
send_raw_bytes = is_raw_bytes or isinstance(data, bytes)
|
|
118
|
+
|
|
119
|
+
if send_raw_bytes:
|
|
107
120
|
import base64
|
|
108
121
|
|
|
109
122
|
payload = base64.b64encode(data).decode("ascii")
|
|
110
|
-
is_raw_bytes = True
|
|
111
123
|
else:
|
|
112
|
-
# Use secure JSON serialization
|
|
113
124
|
payload = serde.dumps_b64(data)
|
|
114
|
-
is_raw_bytes = False
|
|
115
125
|
|
|
116
126
|
size_bytes = len(payload)
|
|
117
127
|
|
|
@@ -132,7 +142,7 @@ class HttpCommunicator:
|
|
|
132
142
|
json={
|
|
133
143
|
"data": payload,
|
|
134
144
|
"from_rank": self.rank,
|
|
135
|
-
"is_raw_bytes":
|
|
145
|
+
"is_raw_bytes": send_raw_bytes,
|
|
136
146
|
},
|
|
137
147
|
)
|
|
138
148
|
resp.raise_for_status()
|
|
@@ -212,6 +222,7 @@ def create_worker_app(
|
|
|
212
222
|
world_size: int,
|
|
213
223
|
endpoints: list[str],
|
|
214
224
|
spu_endpoints: dict[int, str] | None = None,
|
|
225
|
+
enable_tracing: bool = False,
|
|
215
226
|
) -> FastAPI:
|
|
216
227
|
"""Create a FastAPI app for the worker.
|
|
217
228
|
|
|
@@ -224,6 +235,7 @@ def create_worker_app(
|
|
|
224
235
|
world_size: Total number of workers.
|
|
225
236
|
endpoints: HTTP endpoints for all workers (for shuffle communication).
|
|
226
237
|
spu_endpoints: Optional dict mapping global_rank -> BRPC endpoint for SPU.
|
|
238
|
+
enable_tracing: Whether to enable execution tracing for profiler.
|
|
227
239
|
|
|
228
240
|
Returns:
|
|
229
241
|
FastAPI application instance
|
|
@@ -236,11 +248,12 @@ def create_worker_app(
|
|
|
236
248
|
data_root = pathlib.Path(os.environ.get("MPLANG_DATA_ROOT", ".mpl"))
|
|
237
249
|
cluster_id = os.environ.get("MPLANG_CLUSTER_ID", f"__http_{world_size}")
|
|
238
250
|
root_dir = data_root / cluster_id / f"node{rank}"
|
|
239
|
-
trace_dir = root_dir / "trace"
|
|
240
251
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
252
|
+
tracer = None
|
|
253
|
+
if enable_tracing:
|
|
254
|
+
trace_dir = root_dir / "trace"
|
|
255
|
+
tracer = ExecutionTracer(enabled=True, trace_dir=trace_dir)
|
|
256
|
+
tracer.start()
|
|
244
257
|
|
|
245
258
|
comm = HttpCommunicator(rank, world_size, endpoints, tracer=tracer)
|
|
246
259
|
store = ObjectStore(fs_root=str(root_dir))
|
|
@@ -50,7 +50,7 @@ class ThreadCommunicator:
|
|
|
50
50
|
self._shutdown = True
|
|
51
51
|
self._cond.notify_all()
|
|
52
52
|
|
|
53
|
-
def send(self, to: int, key: str, data: Any) -> None:
|
|
53
|
+
def send(self, to: int, key: str, data: Any, *, is_raw_bytes: bool = False) -> None:
|
|
54
54
|
assert 0 <= to < self.world_size
|
|
55
55
|
if self.use_serde:
|
|
56
56
|
from mplang.edsl import serde
|
mplang/backends/spu_impl.py
CHANGED
|
@@ -31,9 +31,9 @@ from mplang.backends.tensor_impl import TensorValue
|
|
|
31
31
|
from mplang.dialects import spu
|
|
32
32
|
from mplang.edsl import serde
|
|
33
33
|
from mplang.edsl.graph import Operation
|
|
34
|
-
from mplang.logging_config import get_logger
|
|
35
34
|
from mplang.runtime.interpreter import Interpreter
|
|
36
35
|
from mplang.runtime.value import WrapValue
|
|
36
|
+
from mplang.utils.logging import get_logger
|
|
37
37
|
|
|
38
38
|
logger = get_logger(__name__)
|
|
39
39
|
|
mplang/backends/table_impl.py
CHANGED
|
@@ -33,9 +33,9 @@ from mplang.backends.tensor_impl import TensorValue
|
|
|
33
33
|
from mplang.dialects import table
|
|
34
34
|
from mplang.edsl import serde
|
|
35
35
|
from mplang.edsl.graph import Operation
|
|
36
|
-
from mplang.logging_config import get_logger
|
|
37
36
|
from mplang.runtime.interpreter import Interpreter
|
|
38
37
|
from mplang.runtime.value import WrapValue
|
|
38
|
+
from mplang.utils.logging import get_logger
|
|
39
39
|
|
|
40
40
|
logger = get_logger(__name__)
|
|
41
41
|
|
mplang/backends/tensor_impl.py
CHANGED
|
@@ -36,9 +36,9 @@ import mplang.edsl.typing as elt
|
|
|
36
36
|
from mplang.dialects import dtypes, tensor
|
|
37
37
|
from mplang.edsl import serde
|
|
38
38
|
from mplang.edsl.graph import Operation
|
|
39
|
-
from mplang.logging_config import get_logger
|
|
40
39
|
from mplang.runtime.interpreter import Interpreter
|
|
41
40
|
from mplang.runtime.value import Value, WrapValue
|
|
41
|
+
from mplang.utils.logging import get_logger
|
|
42
42
|
|
|
43
43
|
logger = get_logger(__name__)
|
|
44
44
|
|
mplang/cli.py
CHANGED
mplang/edsl/jit.py
CHANGED
mplang/edsl/primitive.py
CHANGED
|
@@ -29,7 +29,7 @@ from jax.tree_util import tree_map
|
|
|
29
29
|
|
|
30
30
|
from mplang.edsl.context import get_current_context, get_default_context
|
|
31
31
|
from mplang.edsl.object import Object
|
|
32
|
-
from mplang.
|
|
32
|
+
from mplang.utils.logging import get_logger
|
|
33
33
|
|
|
34
34
|
if TYPE_CHECKING:
|
|
35
35
|
from mplang.edsl.typing import BaseType
|
mplang/edsl/tracer.py
CHANGED
|
@@ -36,7 +36,7 @@ from mplang.edsl.graph import Graph
|
|
|
36
36
|
from mplang.edsl.graph import Value as GraphValue
|
|
37
37
|
from mplang.edsl.object import Object
|
|
38
38
|
from mplang.edsl.typing import BaseType
|
|
39
|
-
from mplang.
|
|
39
|
+
from mplang.utils.logging import get_logger
|
|
40
40
|
|
|
41
41
|
if TYPE_CHECKING:
|
|
42
42
|
from mplang.edsl.primitive import Primitive
|
mplang/libs/device/api.py
CHANGED
|
@@ -32,7 +32,7 @@ from mplang.backends import load_builtins
|
|
|
32
32
|
from mplang.dialects import crypto, simp, spu, tee
|
|
33
33
|
from mplang.edsl.object import Object
|
|
34
34
|
from mplang.libs.device.cluster import Device
|
|
35
|
-
from mplang.
|
|
35
|
+
from mplang.utils.logging import get_logger
|
|
36
36
|
|
|
37
37
|
load_builtins()
|
|
38
38
|
|
mplang/runtime/interpreter.py
CHANGED
|
@@ -40,9 +40,9 @@ from mplang.edsl.graph import Graph, Value
|
|
|
40
40
|
from mplang.edsl.object import Object
|
|
41
41
|
from mplang.edsl.registry import get_impl
|
|
42
42
|
from mplang.edsl.typing import BaseType
|
|
43
|
-
from mplang.logging_config import get_logger
|
|
44
43
|
from mplang.runtime.dialect_state import DialectState
|
|
45
44
|
from mplang.runtime.object_store import ObjectStore
|
|
45
|
+
from mplang.utils.logging import get_logger
|
|
46
46
|
|
|
47
47
|
if TYPE_CHECKING:
|
|
48
48
|
from mplang.edsl.primitive import Primitive
|
mplang/utils/__init__.py
CHANGED
|
@@ -22,13 +22,17 @@ from .func_utils import (
|
|
|
22
22
|
var_demorph,
|
|
23
23
|
var_morph,
|
|
24
24
|
)
|
|
25
|
+
from .logging import disable_logging, get_logger, setup_logging
|
|
25
26
|
|
|
26
27
|
__all__ = [
|
|
27
28
|
"MorphStruct",
|
|
29
|
+
"disable_logging",
|
|
30
|
+
"get_logger",
|
|
28
31
|
"is_treedef_list",
|
|
29
32
|
"list_reconstruct",
|
|
30
33
|
"list_split",
|
|
31
34
|
"normalize_fn",
|
|
35
|
+
"setup_logging",
|
|
32
36
|
"validate_morph_struct",
|
|
33
37
|
"var_demorph",
|
|
34
38
|
"var_morph",
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
"""
|
|
16
|
-
Logging configuration for MPLang.
|
|
15
|
+
"""Logging configuration for MPLang.
|
|
17
16
|
|
|
18
17
|
This module provides a unified logging setup for the MPLang library.
|
|
19
18
|
When MPLang is used as a library, logging is disabled by default (NullHandler),
|
|
@@ -31,6 +30,8 @@ Example usage:
|
|
|
31
30
|
... )
|
|
32
31
|
"""
|
|
33
32
|
|
|
33
|
+
from __future__ import annotations
|
|
34
|
+
|
|
34
35
|
import logging
|
|
35
36
|
import sys
|
|
36
37
|
from typing import Any, Literal
|
|
@@ -52,8 +53,7 @@ def setup_logging(
|
|
|
52
53
|
force: bool = False,
|
|
53
54
|
propagate: bool = False,
|
|
54
55
|
) -> None:
|
|
55
|
-
"""
|
|
56
|
-
Configure logging for MPLang.
|
|
56
|
+
"""Configure logging for MPLang.
|
|
57
57
|
|
|
58
58
|
This function sets up a logger for all MPLang components. By default,
|
|
59
59
|
MPLang uses a NullHandler to suppress log output when used as a library.
|
|
@@ -143,8 +143,7 @@ def setup_logging(
|
|
|
143
143
|
|
|
144
144
|
|
|
145
145
|
def disable_logging() -> None:
|
|
146
|
-
"""
|
|
147
|
-
Disable all MPLang logging by adding a NullHandler.
|
|
146
|
+
"""Disable all MPLang logging by adding a NullHandler.
|
|
148
147
|
|
|
149
148
|
This is useful for testing or when you want to completely suppress
|
|
150
149
|
MPLang log output.
|
|
@@ -163,21 +162,9 @@ def disable_logging() -> None:
|
|
|
163
162
|
|
|
164
163
|
|
|
165
164
|
def get_logger(name: str) -> logging.Logger:
|
|
166
|
-
"""
|
|
167
|
-
Get a logger for a specific MPLang module.
|
|
165
|
+
"""Get a logger for a specific MPLang module.
|
|
168
166
|
|
|
169
|
-
This function should be used by all MPLang modules to create their loggers.
|
|
170
167
|
The logger name will be prefixed with 'mplang' automatically if not already.
|
|
171
|
-
|
|
172
|
-
Args:
|
|
173
|
-
name: Module name, typically __name__ from the calling module.
|
|
174
|
-
|
|
175
|
-
Returns:
|
|
176
|
-
A logger instance for the specified module.
|
|
177
|
-
|
|
178
|
-
Example:
|
|
179
|
-
>>> # In mplang/edsl/tracer.py
|
|
180
|
-
>>> logger = get_logger(__name__) # Creates 'mplang.edsl.tracer' logger
|
|
181
168
|
"""
|
|
182
169
|
# Ensure the logger name is under mplang hierarchy
|
|
183
170
|
if not name.startswith(MPLANG_LOGGER_NAME):
|
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
mplang/__init__.py,sha256=
|
|
2
|
-
mplang/cli.py,sha256=
|
|
1
|
+
mplang/__init__.py,sha256=RQ0z5slM6eNgWlTqGkn67tYDvq8ZzZBfMD2XCdQR86c,14518
|
|
2
|
+
mplang/cli.py,sha256=JQRdLlbycK7awumcY60F4Nw7ozRebfe5cpNEDyRQ3jw,20316
|
|
3
3
|
mplang/cli_guide.md,sha256=hKC6AKgJn-lM_wZ0CzZIP2QUBxGPnT0Op_1YyeUhCfI,3581
|
|
4
|
-
mplang/logging_config.py,sha256=6Zm1Z_EBnzxAfeKr94xiLpWYDD8fa4ZEs2g_kMoH8eI,7579
|
|
5
4
|
mplang/py.typed,sha256=RyhZV7Yxo8BvEoBiFz5fH3IWVqQKTcBBE-bzjx_N5GQ,583
|
|
6
5
|
mplang/backends/__init__.py,sha256=EnKHmOX4YgvNVA42k_KfiS-Vn860yN7Rj9XkUU0g9ys,2042
|
|
7
6
|
mplang/backends/bfv_impl.py,sha256=qobGXe7ldWvYVcqdkNsTcVdNV-hUVE9-Ks5pd3X0Mvc,25691
|
|
8
|
-
mplang/backends/channel.py,sha256=
|
|
7
|
+
mplang/backends/channel.py,sha256=S6LwfyS0H_17gv46ZqSrZirKTB_CCIFVbNTGuY1YIfc,6887
|
|
9
8
|
mplang/backends/crypto_impl.py,sha256=m5tbZpedn4McG5t6HIaEjhTQUFOIaEDMdyEG0499S0Y,23187
|
|
10
9
|
mplang/backends/field_impl.py,sha256=lIghppy0i8QL7aTNCr8tNWjC_bvOXBIKLnavaO0fIOA,14773
|
|
11
10
|
mplang/backends/func_impl.py,sha256=vhkSJnvgSzvQWXqOE40O8npqOmtNqLxefzv9ETuQODQ,3573
|
|
12
11
|
mplang/backends/phe_impl.py,sha256=CefRpFrRJvbZm3X58OYOFAyNZXKDp081Q6CT8fhdreE,4118
|
|
13
12
|
mplang/backends/simp_design.md,sha256=u4YeDLKk5avsueXhzPtt4OUBToBmurOVK_BWTKTJ7w0,5246
|
|
14
|
-
mplang/backends/spu_impl.py,sha256=
|
|
13
|
+
mplang/backends/spu_impl.py,sha256=mkyNCwHC4N7zZ23mCRdOqJWbKv8dxH-Tqi14cTyhGSA,9526
|
|
15
14
|
mplang/backends/spu_state.py,sha256=tgwOiWN6zfP-fBx2rN2cNnC-Y9GrSArqU-ZBT3NdXls,6557
|
|
16
15
|
mplang/backends/store_impl.py,sha256=BdrCfNhFbcjswIvfxD2XKGYeBfBrmEQA3pj2-EDzFcI,2213
|
|
17
|
-
mplang/backends/table_impl.py,sha256=
|
|
16
|
+
mplang/backends/table_impl.py,sha256=SFbZJpZS1SdRxxlYfQjc69qcy-2hVfVAYEapNRaTTiI,27617
|
|
18
17
|
mplang/backends/tee_impl.py,sha256=5yed94Lr55hgSDT6j3FjdTboqzhl4HpJ9lGk1YGZBXQ,7026
|
|
19
|
-
mplang/backends/tensor_impl.py,sha256=
|
|
18
|
+
mplang/backends/tensor_impl.py,sha256=iIOsvSXiRsQWbC8BBfPUpOUhAXJW8VY11l0BxsMVYPo,18963
|
|
20
19
|
mplang/backends/simp_driver/__init__.py,sha256=pQkHGR8HagnPB4OqagPZY-Ul19y6HjIJ5dY6QXZrBH8,1243
|
|
21
|
-
mplang/backends/simp_driver/http.py,sha256=
|
|
20
|
+
mplang/backends/simp_driver/http.py,sha256=isZvDHrrCgi07u5_sFfTYvR4p2CI3vs8zwnk9u6O3Ko,5601
|
|
22
21
|
mplang/backends/simp_driver/mem.py,sha256=EAsDO4Zl2pHf8TY4K_whluhbAwaT1NhktBM9u4g5yYE,9101
|
|
23
22
|
mplang/backends/simp_driver/ops.py,sha256=WYObWDRCsiXH0UBWZX5vD5W98ZPkd88U_qBV8SE5rA8,4503
|
|
24
23
|
mplang/backends/simp_driver/state.py,sha256=dNmYMFN2D2BBdgs6C0YLaHrfaBRMgs05UNxMWw6tZIs,1713
|
|
25
24
|
mplang/backends/simp_driver/values.py,sha256=Lz1utNSIzH-dCzZAEjU6JRcxPsfKGfUJrYl6gIuMOGw,1509
|
|
26
25
|
mplang/backends/simp_worker/__init__.py,sha256=gdrSY1-MDkupCoJ8xwwH7em7fgVWv3J4gBJ45uHdzgg,961
|
|
27
|
-
mplang/backends/simp_worker/http.py,sha256=
|
|
28
|
-
mplang/backends/simp_worker/mem.py,sha256=
|
|
26
|
+
mplang/backends/simp_worker/http.py,sha256=UiqXKcH5DZG_eTXcW7qDSjIsBWtA37tkqBEowJJ0hQE,13186
|
|
27
|
+
mplang/backends/simp_worker/mem.py,sha256=hLJftzSMQIw64vjBdrSrFReFzWS6rlzf-0Q7SWkfhak,3605
|
|
29
28
|
mplang/backends/simp_worker/ops.py,sha256=ntxfkD4e6Il4w7FshK1ODcUCUPMlipt33pDY_x5iC0U,5661
|
|
30
29
|
mplang/backends/simp_worker/state.py,sha256=nIu0ybvdYqRqp0TkoSneUF2u31evDHucCRduVBaDals,1445
|
|
31
30
|
mplang/dialects/__init__.py,sha256=CYMmkeQVU0Znr9n3_5clZKb16u7acJ5jl5Zjbx4Tn1U,1478
|
|
@@ -45,14 +44,14 @@ mplang/edsl/README.md,sha256=viflvdRojOa6Xk_UMRPqpuPGXcPGmdlv2-XR6LO7B58,7592
|
|
|
45
44
|
mplang/edsl/__init__.py,sha256=WL4efo6uY1br781_8IaCkSi7yCUldcfJfbtFsn6Fdj4,2698
|
|
46
45
|
mplang/edsl/context.py,sha256=Ln8n3bDe8_ISe42TAGzUuz8fw57-tu1APuihMfAtW1Y,10075
|
|
47
46
|
mplang/edsl/graph.py,sha256=nCeCN7-bxfzyv40fmxcEXOaVUx14cOCaHfFb7A9OBnE,14968
|
|
48
|
-
mplang/edsl/jit.py,sha256=
|
|
47
|
+
mplang/edsl/jit.py,sha256=urXV68sQ-CjYuWGQSLj9ZAxP3YieISt2tfr2GEo-vCQ,2392
|
|
49
48
|
mplang/edsl/object.py,sha256=dBl58q-ondjpjPNBh8zZvIEj6pJw2yEoz6TCaM_oleA,1906
|
|
50
|
-
mplang/edsl/primitive.py,sha256=
|
|
49
|
+
mplang/edsl/primitive.py,sha256=N9HEsXJuQTx_haLafUluL4EuIS2AKHNekZvCRWu5o-0,10858
|
|
51
50
|
mplang/edsl/printer.py,sha256=drmfRkdCNqbkRfSDmejxtO-rEAaM13QyHB3AbAmKVFk,4393
|
|
52
51
|
mplang/edsl/program.py,sha256=_JdEU2-nb79VlFLcgMJf4JS30TARBeUIzno0y0SFVsg,4467
|
|
53
52
|
mplang/edsl/registry.py,sha256=hudXZPUrUUueEwgksDKN0cnE3iiXucuTaDdDK8uSPmk,6822
|
|
54
53
|
mplang/edsl/serde.py,sha256=8K94laE8ObeGuBoF6m7g3A-xEe98EvqQ_6ZPPspddAY,11641
|
|
55
|
-
mplang/edsl/tracer.py,sha256=
|
|
54
|
+
mplang/edsl/tracer.py,sha256=WQFNL2ZgXSLjxD4JA7cXIDUKIQXe3aZ94qer57IKPXc,23128
|
|
56
55
|
mplang/edsl/typing.py,sha256=Vp0r_oTyFrOhwwpVD_6XAX0sSsKvR04X-KdihkmD4QA,29287
|
|
57
56
|
mplang/kernels/Makefile,sha256=5PoPpajcb_8ByPGNHzVytmovXUwkjJs_K8MbXX9qDYs,1033
|
|
58
57
|
mplang/kernels/__init__.py,sha256=J_rDl9lAXd7QL3Nt_P3YX6j9yge7ssguSaHuafPZNKE,876
|
|
@@ -63,7 +62,7 @@ mplang/kernels/okvs_opt.cpp,sha256=qKkwHGGv7ayvIRW46PrQZZ7ej4b58Drbr3BlqEK506U,1
|
|
|
63
62
|
mplang/kernels/py_kernels.py,sha256=EXK2ByfRsVpBqp1etDyCb_qExT0obiytcNFXYpRyxpo,12070
|
|
64
63
|
mplang/libs/collective.py,sha256=1RhwnpKwjLvbZ5UgmCMkO6brwqHEIdkW_zymRawwTW4,10668
|
|
65
64
|
mplang/libs/device/__init__.py,sha256=UHPGQ9JVedXy6AQo-ixQooS2R8eTwJEu7-p8A5_po78,1248
|
|
66
|
-
mplang/libs/device/api.py,sha256=
|
|
65
|
+
mplang/libs/device/api.py,sha256=vkwoHjIlwEivSUn1_NLf47pOq34gO6yCXTWRDYdgN2I,28869
|
|
67
66
|
mplang/libs/device/cluster.py,sha256=YUqYZ_IBS6rpV5ejUFP3kTxcTQHSyeDeuaJcsiFY_Js,12508
|
|
68
67
|
mplang/libs/ml/__init__.py,sha256=kUR6V74kWmGnOUdmLuGAP1xebW7y-NBOmHyHK-kdqWg,784
|
|
69
68
|
mplang/libs/ml/sgb.py,sha256=g5x1PQnV7oRzheyu6PiDooqmBWI9jMvLHkIHrNnMoDk,60211
|
|
@@ -92,15 +91,16 @@ mplang/libs/mpc/vole/ldpc.py,sha256=gOmIbyOjkGE5lewyatl3p6FizNNH8LZ_1oOhp_-TOck,
|
|
|
92
91
|
mplang/libs/mpc/vole/silver.py,sha256=EIxhpFIVNBemgeIZzCu5Cz_4wysxRm9b1Xfu0xiweVQ,12218
|
|
93
92
|
mplang/runtime/__init__.py,sha256=VdUwJ3kDaI46FvGw7iMGwcsjt0HTGmmRmaBwj99xKIw,620
|
|
94
93
|
mplang/runtime/dialect_state.py,sha256=HxO1i4kSOujS2tQzAF9-WmI3nChSaGgupf2_07dHetY,1277
|
|
95
|
-
mplang/runtime/interpreter.py,sha256=
|
|
94
|
+
mplang/runtime/interpreter.py,sha256=yWcUDbAfjKgkx09rYTHrIcrs4KzbV3y8tkC7VrqQRJ4,43592
|
|
96
95
|
mplang/runtime/object_store.py,sha256=yT6jtKG2GUEJVmpq3gnQ8mCMvUFYzgBciC5A-J5KRdk,5998
|
|
97
96
|
mplang/runtime/value.py,sha256=EqlhSgxLTJi_FF3ppyKjMe4eHS6-ROx-zK1YesG1U4o,4311
|
|
98
97
|
mplang/tool/__init__.py,sha256=9K-T50W_vClUlyERcVx5xGZaeyv0Ts63SaQX6AZtjIs,1341
|
|
99
98
|
mplang/tool/program.py,sha256=W3H8bpPirnoJ4ZrmyPYuMCPadJis20o__n_1MKqCsWU,11058
|
|
100
|
-
mplang/utils/__init__.py,sha256=
|
|
99
|
+
mplang/utils/__init__.py,sha256=Hwrwti2nfPxWUXV8DN6T1QaqXH_Jsd27k8UMSdBGUns,1073
|
|
101
100
|
mplang/utils/func_utils.py,sha256=aZ-X43w8JKJgiF-IUMS0G7QqrNeoTM5ZPzRNd-tKxpw,5180
|
|
102
|
-
|
|
103
|
-
mplang_nightly-0.1.
|
|
104
|
-
mplang_nightly-0.1.
|
|
105
|
-
mplang_nightly-0.1.
|
|
106
|
-
mplang_nightly-0.1.
|
|
101
|
+
mplang/utils/logging.py,sha256=9dMhwprVbx1WMGJrgoQbWmV50vyYuLU4NSPnetcl1Go,7237
|
|
102
|
+
mplang_nightly-0.1.dev281.dist-info/METADATA,sha256=8agWyua8ldzpx3GM7Re_YmCRfkIBuoSJHbXIZiBphls,16783
|
|
103
|
+
mplang_nightly-0.1.dev281.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
104
|
+
mplang_nightly-0.1.dev281.dist-info/entry_points.txt,sha256=mG1oJT-GAjQR834a62_QIWb7litzWPPyVnwFqm-rWuY,55
|
|
105
|
+
mplang_nightly-0.1.dev281.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
106
|
+
mplang_nightly-0.1.dev281.dist-info/RECORD,,
|
|
File without changes
|
{mplang_nightly-0.1.dev279.dist-info → mplang_nightly-0.1.dev281.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev279.dist-info → mplang_nightly-0.1.dev281.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|