mplang-nightly 0.1.dev253__py3-none-any.whl → 0.1.dev254__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/v2/backends/simp_driver/mem.py +4 -0
- mplang/v2/cli.py +1 -1
- mplang/v2/edsl/context.py +4 -4
- mplang/v2/libs/ml/__init__.py +23 -0
- mplang/v2/libs/ml/sgb.py +1873 -0
- mplang/v2/libs/mpc/vole/ldpc.py +3 -2
- mplang/v2/runtime/interpreter.py +26 -0
- {mplang_nightly-0.1.dev253.dist-info → mplang_nightly-0.1.dev254.dist-info}/METADATA +1 -1
- {mplang_nightly-0.1.dev253.dist-info → mplang_nightly-0.1.dev254.dist-info}/RECORD +12 -10
- {mplang_nightly-0.1.dev253.dist-info → mplang_nightly-0.1.dev254.dist-info}/WHEEL +0 -0
- {mplang_nightly-0.1.dev253.dist-info → mplang_nightly-0.1.dev254.dist-info}/entry_points.txt +0 -0
- {mplang_nightly-0.1.dev253.dist-info → mplang_nightly-0.1.dev254.dist-info}/licenses/LICENSE +0 -0
mplang/v2/libs/mpc/vole/ldpc.py
CHANGED
|
@@ -300,12 +300,13 @@ def generate_sparse_noise(n: int, weight: int) -> el.Object:
|
|
|
300
300
|
|
|
301
301
|
# Generate unique indices using rejection-free Fisher-Yates-like approach
|
|
302
302
|
# Map random u64 to positions while ensuring uniqueness
|
|
303
|
-
|
|
303
|
+
# Use int64 to avoid dtype mismatch warning in scatter operations
|
|
304
|
+
positions = jnp.zeros(weight, dtype=jnp.int64)
|
|
304
305
|
|
|
305
306
|
# Build positions array (unrolled for JAX compatibility)
|
|
306
307
|
for i in range(weight):
|
|
307
308
|
# Map random value to remaining range [0, n-i)
|
|
308
|
-
pos = jnp.
|
|
309
|
+
pos = jnp.int64(idx_entropy[i] % (n - i))
|
|
309
310
|
|
|
310
311
|
# Shift position to avoid already-used indices
|
|
311
312
|
# Count how many existing positions are <= current pos
|
mplang/v2/runtime/interpreter.py
CHANGED
|
@@ -360,6 +360,32 @@ class Interpreter(AbstractInterpreter):
|
|
|
360
360
|
self.trace_pid = trace_pid
|
|
361
361
|
self.store: ObjectStore | None = store
|
|
362
362
|
|
|
363
|
+
def shutdown(self) -> None:
|
|
364
|
+
"""Shutdown the interpreter and release resources.
|
|
365
|
+
|
|
366
|
+
This method is idempotent and safe to call multiple times.
|
|
367
|
+
It performs the following cleanup:
|
|
368
|
+
1. Shuts down the internal executor (if any).
|
|
369
|
+
2. Stops the execution tracer (if any).
|
|
370
|
+
3. Shuts down any attached dialect states (e.g., stopping drivers).
|
|
371
|
+
"""
|
|
372
|
+
# 1. Shutdown Executor
|
|
373
|
+
if self.executor:
|
|
374
|
+
self.executor.shutdown(wait=True)
|
|
375
|
+
self.executor = None
|
|
376
|
+
|
|
377
|
+
# 2. Stop Tracer
|
|
378
|
+
if self.tracer:
|
|
379
|
+
self.tracer.stop()
|
|
380
|
+
# Don't clear self.tracer, as we might want to read stats later
|
|
381
|
+
|
|
382
|
+
# 3. Shutdown Dialect States
|
|
383
|
+
# Iterate over all attached states (e.g., drivers, cluster managers)
|
|
384
|
+
# and shut them down if they support it.
|
|
385
|
+
for state in self._states.values():
|
|
386
|
+
if hasattr(state, "shutdown") and callable(state.shutdown):
|
|
387
|
+
state.shutdown()
|
|
388
|
+
|
|
363
389
|
# =========================================================================
|
|
364
390
|
# Dialect State Management
|
|
365
391
|
# =========================================================================
|
|
@@ -78,7 +78,7 @@ mplang/v1/utils/func_utils.py,sha256=vCJcZmu0bEbqhOQKdpttV2_MBllIcPSN0b8U4WjNGGo
|
|
|
78
78
|
mplang/v1/utils/spu_utils.py,sha256=S3L9RBkBe2AvSuMSQQ12cBY5Y1NPthubvErSX_7nj1A,4158
|
|
79
79
|
mplang/v1/utils/table_utils.py,sha256=1fDgZLrRf2bvKvA45egT6RtMPgwE1cI2BokMHUU_xv4,5945
|
|
80
80
|
mplang/v2/__init__.py,sha256=SqVxDiRvA9W49NaXaT70spf6-xSbat1ZfIdI4j8KgFk,13816
|
|
81
|
-
mplang/v2/cli.py,sha256=
|
|
81
|
+
mplang/v2/cli.py,sha256=QtiTFG418k26opRy4GhVV8fwFqRS11xTLH3xRCIIm6M,19665
|
|
82
82
|
mplang/v2/cli_guide.md,sha256=kyoCaqkvIJJ1vsvCyBu3qgOuRSb0txu9BDZoy9GU5S0,3617
|
|
83
83
|
mplang/v2/backends/__init__.py,sha256=H-4-jBEPWBZl6XT7AxBShRINnruF_f_2lB4iaiQoXME,1988
|
|
84
84
|
mplang/v2/backends/bfv_impl.py,sha256=cQPinze3c2xN4CmIIoXxZoIEhu9ynoGaXbdF95z_aTE,25709
|
|
@@ -94,7 +94,7 @@ mplang/v2/backends/tee_impl.py,sha256=5PzzQ6mibd6-Wyvvt_8DD6G-CzA4VAmqGk6H1Z9ris
|
|
|
94
94
|
mplang/v2/backends/tensor_impl.py,sha256=8f9f4-_e-m4JWGZSbXLmSSHcgPykRBc1sAYrA3OIxEg,18906
|
|
95
95
|
mplang/v2/backends/simp_driver/__init__.py,sha256=ahOPYYvtFVwqxiFxkpSNP8BCTao_MfCXmtt5zsMaJxg,1258
|
|
96
96
|
mplang/v2/backends/simp_driver/http.py,sha256=nl7ny7f8bzhy1ubNIDXhMgA5P_WA8dhhgFNHvcmfSKk,5548
|
|
97
|
-
mplang/v2/backends/simp_driver/mem.py,sha256=
|
|
97
|
+
mplang/v2/backends/simp_driver/mem.py,sha256=nFA-KkYx5fDh6NseI8QOd5FkNErPDq4h_QjrWD7nMrE,9126
|
|
98
98
|
mplang/v2/backends/simp_driver/ops.py,sha256=UeVC3eaCUwxrkN6OsJyMYj8qMDufMFQI0YogeSbhkjM,4515
|
|
99
99
|
mplang/v2/backends/simp_driver/state.py,sha256=6tQyQg_PNzHOJkjCoNm51Wvknl3XiJZzpQXuRB4qRtM,1719
|
|
100
100
|
mplang/v2/backends/simp_driver/values.py,sha256=OQ_7Kt6l7Pcfx5eB6GVbpunS6CG60Lj0AS6H9Wx9sKQ,1515
|
|
@@ -118,7 +118,7 @@ mplang/v2/dialects/tee.py,sha256=R_XySt-JNhZJNdjRiUw-nU4BjwBNMtV4sYFMOtvJZzc,115
|
|
|
118
118
|
mplang/v2/dialects/tensor.py,sha256=FxPKsiNi2vFb-R2hqRgR7zYYO5LdRu_rdDHfjE3_2Lw,40003
|
|
119
119
|
mplang/v2/edsl/README.md,sha256=viflvdRojOa6Xk_UMRPqpuPGXcPGmdlv2-XR6LO7B58,7592
|
|
120
120
|
mplang/v2/edsl/__init__.py,sha256=YqmtrJXD1NLKS-_Ofnxtiv77muokTZnrAiV7dXUZVyo,2607
|
|
121
|
-
mplang/v2/edsl/context.py,sha256=
|
|
121
|
+
mplang/v2/edsl/context.py,sha256=0RgQAt7cbPudt9kyBb7wjZ31HzGMnq81Ah5sgs_qU2U,10093
|
|
122
122
|
mplang/v2/edsl/graph.py,sha256=VXeE_9Oc9E0qfnwFDYBvFyDL79qvABLs1aFC-lheJ8M,14983
|
|
123
123
|
mplang/v2/edsl/jit.py,sha256=tofGAqNSUPuEmqy0flaZpNaR1Y425Pk2FdmCKxRPCM8,2069
|
|
124
124
|
mplang/v2/edsl/object.py,sha256=rijDu4yuG_Sitgfz5gk8-mJ1-3Bgor0QrQU04q9mkgo,1909
|
|
@@ -139,6 +139,8 @@ mplang/v2/libs/collective.py,sha256=pfXq9tmFUNKjeHhWMTjtzOi-m2Fn1lLru1G6txZVyic,
|
|
|
139
139
|
mplang/v2/libs/device/__init__.py,sha256=mXsSvXrWmlHu6Ch87Vcd85m4L_qdDkbSvJyHyuai2fc,1251
|
|
140
140
|
mplang/v2/libs/device/api.py,sha256=8i0KP3q_XbOfPYB9fzs7pA6vVY4Ib6lxdoiwAi_RlmU,27838
|
|
141
141
|
mplang/v2/libs/device/cluster.py,sha256=YUqYZ_IBS6rpV5ejUFP3kTxcTQHSyeDeuaJcsiFY_Js,12508
|
|
142
|
+
mplang/v2/libs/ml/__init__.py,sha256=xTxhC_YwHP32muUEFCEwOjc-3Ml-vmO48NNECU90zm4,787
|
|
143
|
+
mplang/v2/libs/ml/sgb.py,sha256=qoJww01EEbWo9nvwB5w-JZqx9BchcmhSrToypxV7fPg,60297
|
|
142
144
|
mplang/v2/libs/mpc/__init__.py,sha256=znADXBv0cATTvNN9pVOH8V47O5vmYZnR1Y7tfh1QVjw,1405
|
|
143
145
|
mplang/v2/libs/mpc/_utils.py,sha256=Xzt5jIQSm2e8_xFC6zrdKL93IqbTDb40apk2JBbEgBI,3215
|
|
144
146
|
mplang/v2/libs/mpc/analytics/__init__.py,sha256=8_1Sm05nrO2ISat1hNZT6UXHpKQ-SDBby1eeS-wm_fE,1204
|
|
@@ -160,15 +162,15 @@ mplang/v2/libs/mpc/psi/rr22.py,sha256=2mN1zbjrBUgaWCsF3Lj8ohtK6gcG95PtBb3EseS-Ns
|
|
|
160
162
|
mplang/v2/libs/mpc/psi/unbalanced.py,sha256=hC84TVsgnlJDg6hpUrx8kbUbmFb27T9wrHG0zv3FXLc,7433
|
|
161
163
|
mplang/v2/libs/mpc/vole/__init__.py,sha256=2dU4X6n73HoK-YCiCl4b36SkLRKR6rofe2xxLxBz6Rc,968
|
|
162
164
|
mplang/v2/libs/mpc/vole/gilboa.py,sha256=apnKOYR4_dJ2wkzGq7PBlwauA-W5i5MPESdetCWTegU,9951
|
|
163
|
-
mplang/v2/libs/mpc/vole/ldpc.py,sha256=
|
|
165
|
+
mplang/v2/libs/mpc/vole/ldpc.py,sha256=1H_Dz1xdZTN2f3V6lz9NKBaY-How9Qu1GgwN0IJZero,12786
|
|
164
166
|
mplang/v2/libs/mpc/vole/silver.py,sha256=Qnk3EiA18i6RJl-iDCMHOwNdf0Zvkmxq_57O3Y0HPFw,12236
|
|
165
167
|
mplang/v2/runtime/__init__.py,sha256=VdUwJ3kDaI46FvGw7iMGwcsjt0HTGmmRmaBwj99xKIw,620
|
|
166
168
|
mplang/v2/runtime/dialect_state.py,sha256=HxO1i4kSOujS2tQzAF9-WmI3nChSaGgupf2_07dHetY,1277
|
|
167
|
-
mplang/v2/runtime/interpreter.py,sha256=
|
|
169
|
+
mplang/v2/runtime/interpreter.py,sha256=UzrM5oepka6H0YKRZncNXhsuwKVm4pliG5J92fFRZMI,32300
|
|
168
170
|
mplang/v2/runtime/object_store.py,sha256=yT6jtKG2GUEJVmpq3gnQ8mCMvUFYzgBciC5A-J5KRdk,5998
|
|
169
171
|
mplang/v2/runtime/value.py,sha256=CMOxElJP78v7pjasPhEpbxWbSgB2KsLbpPmzz0mQX0E,4317
|
|
170
|
-
mplang_nightly-0.1.
|
|
171
|
-
mplang_nightly-0.1.
|
|
172
|
-
mplang_nightly-0.1.
|
|
173
|
-
mplang_nightly-0.1.
|
|
174
|
-
mplang_nightly-0.1.
|
|
172
|
+
mplang_nightly-0.1.dev254.dist-info/METADATA,sha256=ZcoLTH8VISCxJm5lA7S8eZBNSF5vEYWphlx8Ni9fO38,16768
|
|
173
|
+
mplang_nightly-0.1.dev254.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
174
|
+
mplang_nightly-0.1.dev254.dist-info/entry_points.txt,sha256=mG1oJT-GAjQR834a62_QIWb7litzWPPyVnwFqm-rWuY,55
|
|
175
|
+
mplang_nightly-0.1.dev254.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
176
|
+
mplang_nightly-0.1.dev254.dist-info/RECORD,,
|
|
File without changes
|
{mplang_nightly-0.1.dev253.dist-info → mplang_nightly-0.1.dev254.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev253.dist-info → mplang_nightly-0.1.dev254.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|