mplang-nightly 0.1.dev254__tar.gz → 0.1.dev255__tar.gz
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_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/PKG-INFO +1 -1
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/spu_impl.py +10 -79
- mplang_nightly-0.1.dev255/mplang/v2/backends/spu_state.py +124 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/.gitignore +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/LICENSE +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/README.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/conf/3pc.yaml +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/stax_nn/README.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/stax_nn/models.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/stax_nn/stax_nn.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/bench_fhe_hist.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/hist_jax.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/hist_jax_test.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/naive_np.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/readme.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/sgb.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/sgb_test.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/hatch_build.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/_device.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/analysis/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/analysis/diagram.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/cluster.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/comm.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/context_mgr.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/dtypes.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/ast.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/evaluator.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/printer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/transformer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/visitor.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/walk.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/interp.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/mask.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/mpir.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/mpobject.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/mptype.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/pfunc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/primitive.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/table.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/tensor.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/tracer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/host.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/base.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/basic.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/context.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/crypto.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/fhe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/mock_tee.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/phe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/spu.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/sql_duckdb.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/stablehlo.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/value.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/base.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/basic.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/crypto.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/fhe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/jax_cc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/nnx_cc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/phe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/spu.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/sql_cc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/tee.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/mpir_pb2.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/mpir_pb2.pyi +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/value_pb2.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/value_pb2.pyi +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/cli.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/client.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/communicator.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/data_providers.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/driver.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/exceptions.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/http_api.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/link_comm.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/server.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/session.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/simulation.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/api.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/mpi.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/party.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/random.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/smpc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/crypto.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/func_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/spu_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/table_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/bfv_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/crypto_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/field_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/func_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/phe_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_design.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/http.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/mem.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/ops.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/state.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/values.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/http.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/mem.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/ops.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/state.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/store_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/table_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/tee_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/tensor_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/cli.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/cli_guide.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/bfv.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/crypto.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/dtypes.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/field.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/func.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/phe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/simp.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/spu.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/store.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/table.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/tee.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/tensor.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/README.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/context.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/graph.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/jit.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/object.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/primitive.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/printer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/registry.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/serde.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/tracer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/typing.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/Makefile +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/gf128.cpp +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/ldpc.cpp +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/okvs.cpp +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/okvs_opt.cpp +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/py_kernels.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/collective.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/device/api.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/device/cluster.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/ml/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/ml/sgb.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/aggregation.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/groupby.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/groupby.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/permutation.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/common/constants.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/ot/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/ot/base.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/ot/extension.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/ot/silent.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/cuckoo.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/okvs.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/okvs_gct.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/oprf.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/rr22.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/unbalanced.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/vole/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/vole/gilboa.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/vole/ldpc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/vole/silver.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/dialect_state.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/interpreter.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/object_store.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/value.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/pyproject.toml +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/conftest.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/analysis/test_diagram.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/conftest.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/conftest.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/test_ast.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/test_printer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/test_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/test_walk.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_cluster.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_dtype.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_mask.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_mpir.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_mptype.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_primitive.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_table.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_tensor.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_tracer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/device/test_device_basic.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/README.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_crypto_roundtrip.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_http_e2e.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_symbols_roundtrip.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_tee_workflow.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_tutorials.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_unused_param_integration.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_basic.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_debug_print.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_fhe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_kernel_binding.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_phe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_spu.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_sql_duckdb.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_stablehlo.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_value.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_value_serde.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/dummy.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_basic_pack.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_crypto.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_feop_base.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_jax_cc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_nnx_cc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_phe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_spu.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_spu_defensive.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_sql.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_sql_cc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_table_tensor_conversion.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_cli.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_communicator.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_driver.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_server.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_simulation.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/simp/test_mpi.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/simp/test_random.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/simp/test_smpc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/simp/test_sugar.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/server_fixtures.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/test_func_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/test_spu_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/test_table_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_driver/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_driver/test_http.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_worker/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_worker/test_http.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_worker/test_mem.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_bfv_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_crypto_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_okvs_binding.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_simp_integration.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_simp_object_store.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_spu_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_table_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_tee_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_tensor_impl.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_verify_clean.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/conftest.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_bfv.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_crypto.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_dtypes.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_field.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_func.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_okvs.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_okvs_bench.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_phe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_simp.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_simp_comm.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_spu.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_table.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_tee.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_tensor.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_context.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_graph.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_primitive.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_primitive_multi_output.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_printer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_serde.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_tracer.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_typing.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_typing_graph_serde.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/conftest.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/test_device_api_errors.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/test_device_dialects.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/test_device_layouts.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/test_device_tee.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/ml/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/ml/test_sgb.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/ml/test_sgb_bench.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/analytics/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/analytics/test_aggregation.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/analytics/test_groupby.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/analytics/test_permutation.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/ot/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/ot/test_ot.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/ot/test_ot_extension.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/ot/test_silent_ot.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_okvs_gct.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_oprf.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_psi.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_psi_bench.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_rr22.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/verify_psi_okvs_logic.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/test_field_gf128.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/test_utils.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_gilboa_manual.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_ldpc.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_silver_vole.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_vole.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_vole_bench.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/verify_vole_logic.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/test_collective.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/test_simple_guide.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/runtime/test_interpreter_async.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/runtime/test_object_store.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/runtime/test_object_store_fs.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/test_fetch_semantics.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/test_pytree_io.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/test_store.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/utils/tensor_patch.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/MIGRATION.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/README.md +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/__init__.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/data/alice.csv +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/data/bob.csv +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/data/prepare_vertical_iris.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/run.sh +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/00_device_basics.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/01_function_decorator.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/02_simulation_and_driver.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/03_run_jax.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/04_run_sql.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/05_pipeline.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/06_ir_dump_and_analysis.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/07_run_nnx.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/pitfalls/late_binding.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/pitfalls/rand.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/00_basic.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/01_condition.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/02_whileloop.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/03_stdio.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/04_phe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/05_tee.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/06_fhe.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/07_advanced.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/08_simple_secret_sharing.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/00_device_basics.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/01_function_decorator.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/02_simulation_and_driver.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/03_run_jax.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/04_ir_dump_and_analysis.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/05_run_sql.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/06_pipeline.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/07_stax_nn.py +0 -0
- {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/__init__.py +0 -0
|
@@ -27,6 +27,7 @@ import spu.api as spu_api
|
|
|
27
27
|
import spu.libspu as libspu
|
|
28
28
|
|
|
29
29
|
from mplang.v2.backends.simp_worker import SimpWorker
|
|
30
|
+
from mplang.v2.backends.spu_state import SPUState
|
|
30
31
|
from mplang.v2.backends.tensor_impl import TensorValue
|
|
31
32
|
from mplang.v2.dialects import spu
|
|
32
33
|
from mplang.v2.edsl import serde
|
|
@@ -107,84 +108,6 @@ def to_runtime_config(config: spu.SPUConfig) -> libspu.RuntimeConfig:
|
|
|
107
108
|
return runtime_config
|
|
108
109
|
|
|
109
110
|
|
|
110
|
-
# Global cache for SPU runtimes per (local_rank, world_size) pair
|
|
111
|
-
# Key: (local_rank, spu_world_size, protocol, field, link_mode), Value: (Runtime, Io)
|
|
112
|
-
_SPU_RUNTIMES: dict[
|
|
113
|
-
tuple[int, int, str, str, str], tuple[spu_api.Runtime, spu_api.Io]
|
|
114
|
-
] = {}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
def _create_mem_link(local_rank: int, spu_world_size: int) -> libspu.link.Context:
|
|
118
|
-
"""Create in-memory link for simulation."""
|
|
119
|
-
desc = libspu.link.Desc() # type: ignore
|
|
120
|
-
desc.recv_timeout_ms = 30 * 1000
|
|
121
|
-
for i in range(spu_world_size):
|
|
122
|
-
desc.add_party(f"P{i}", f"mem:{i}")
|
|
123
|
-
return libspu.link.create_mem(desc, local_rank)
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
def _create_brpc_link(local_rank: int, spu_endpoints: list[str]) -> libspu.link.Context:
|
|
127
|
-
"""Create BRPC link for distributed execution.
|
|
128
|
-
|
|
129
|
-
Args:
|
|
130
|
-
local_rank: The local rank within the SPU device (0-indexed).
|
|
131
|
-
spu_endpoints: List of BRPC endpoints for all SPU parties.
|
|
132
|
-
|
|
133
|
-
Returns:
|
|
134
|
-
A libspu.link.Context for BRPC communication.
|
|
135
|
-
"""
|
|
136
|
-
desc = libspu.link.Desc() # type: ignore
|
|
137
|
-
desc.recv_timeout_ms = 100 * 1000 # 100 seconds
|
|
138
|
-
desc.http_max_payload_size = 32 * 1024 * 1024 # 32MB
|
|
139
|
-
|
|
140
|
-
for i, endpoint in enumerate(spu_endpoints):
|
|
141
|
-
desc.add_party(f"P{i}", endpoint)
|
|
142
|
-
|
|
143
|
-
return libspu.link.create_brpc(desc, local_rank)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
def _get_spu_ctx(
|
|
147
|
-
local_rank: int,
|
|
148
|
-
spu_world_size: int,
|
|
149
|
-
config: spu.SPUConfig,
|
|
150
|
-
spu_endpoints: list[str] | None = None,
|
|
151
|
-
) -> tuple[spu_api.Runtime, spu_api.Io]:
|
|
152
|
-
"""Get or create SPU runtime and IO for the given local rank within SPU.
|
|
153
|
-
|
|
154
|
-
Args:
|
|
155
|
-
local_rank: The local rank within the SPU device (0-indexed).
|
|
156
|
-
spu_world_size: The number of parties in the SPU device.
|
|
157
|
-
config: SPU configuration including protocol settings.
|
|
158
|
-
spu_endpoints: Optional list of BRPC endpoints. If None, use mem link.
|
|
159
|
-
|
|
160
|
-
Returns:
|
|
161
|
-
A tuple of (Runtime, Io) for this party.
|
|
162
|
-
"""
|
|
163
|
-
# Determine link mode
|
|
164
|
-
link_mode = "brpc" if spu_endpoints else "mem"
|
|
165
|
-
|
|
166
|
-
# Include protocol, field, and link_mode in cache key
|
|
167
|
-
cache_key = (local_rank, spu_world_size, config.protocol, config.field, link_mode)
|
|
168
|
-
if cache_key in _SPU_RUNTIMES:
|
|
169
|
-
return _SPU_RUNTIMES[cache_key]
|
|
170
|
-
|
|
171
|
-
# Create Link
|
|
172
|
-
if spu_endpoints:
|
|
173
|
-
link = _create_brpc_link(local_rank, spu_endpoints)
|
|
174
|
-
else:
|
|
175
|
-
link = _create_mem_link(local_rank, spu_world_size)
|
|
176
|
-
|
|
177
|
-
# Use config from SPUConfig
|
|
178
|
-
runtime_config = to_runtime_config(config)
|
|
179
|
-
|
|
180
|
-
# Create Runtime and Io
|
|
181
|
-
runtime = spu_api.Runtime(link, runtime_config)
|
|
182
|
-
io = spu_api.Io(spu_world_size, runtime_config)
|
|
183
|
-
|
|
184
|
-
_SPU_RUNTIMES[cache_key] = (runtime, io)
|
|
185
|
-
return runtime, io
|
|
186
|
-
|
|
187
|
-
|
|
188
111
|
@spu.makeshares_p.def_impl
|
|
189
112
|
def makeshares_impl(
|
|
190
113
|
interpreter: Interpreter, op: Operation, data: TensorValue
|
|
@@ -293,7 +216,15 @@ def exec_impl(interpreter: Interpreter, op: Operation, *args: Any) -> Any:
|
|
|
293
216
|
)
|
|
294
217
|
spu_endpoints.append(spu_endpoints_map[party_rank])
|
|
295
218
|
|
|
296
|
-
|
|
219
|
+
# Get or create SPUState for caching Runtime/Io
|
|
220
|
+
spu_state = interpreter.get_dialect_state(SPUState.dialect_name)
|
|
221
|
+
if not isinstance(spu_state, SPUState):
|
|
222
|
+
spu_state = SPUState()
|
|
223
|
+
interpreter.set_dialect_state(SPUState.dialect_name, spu_state)
|
|
224
|
+
|
|
225
|
+
runtime, io = spu_state.get_or_create(
|
|
226
|
+
local_rank, spu_world_size, config, spu_endpoints
|
|
227
|
+
)
|
|
297
228
|
|
|
298
229
|
executable_code = op.attrs["executable"]
|
|
299
230
|
input_names = op.attrs["input_names"]
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Copyright 2025 Ant Group Co., Ltd.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
"""SPU Dialect State.
|
|
16
|
+
|
|
17
|
+
Manages SPU Runtime lifecycle as a dialect state, enabling reuse across
|
|
18
|
+
multiple executions while binding to the Interpreter's lifecycle.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
from typing import TYPE_CHECKING
|
|
24
|
+
|
|
25
|
+
import spu.api as spu_api
|
|
26
|
+
import spu.libspu as libspu
|
|
27
|
+
|
|
28
|
+
from mplang.v2.runtime.dialect_state import DialectState
|
|
29
|
+
|
|
30
|
+
if TYPE_CHECKING:
|
|
31
|
+
from mplang.v2.dialects import spu
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class SPUState(DialectState):
|
|
35
|
+
"""SPU Runtime cache as dialect state.
|
|
36
|
+
|
|
37
|
+
Caches SPU Runtime and Io objects per (local_rank, world_size, config, link_mode)
|
|
38
|
+
to enable reuse across multiple SPU kernel executions.
|
|
39
|
+
|
|
40
|
+
This replaces the previous global `_SPU_RUNTIMES` cache with a properly
|
|
41
|
+
lifecycle-managed dialect state.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
dialect_name: str = "spu"
|
|
45
|
+
|
|
46
|
+
def __init__(self) -> None:
|
|
47
|
+
# Key: (local_rank, world_size, protocol, field, link_mode)
|
|
48
|
+
# Value: (Runtime, Io)
|
|
49
|
+
self._runtimes: dict[
|
|
50
|
+
tuple[int, int, str, str, str], tuple[spu_api.Runtime, spu_api.Io]
|
|
51
|
+
] = {}
|
|
52
|
+
|
|
53
|
+
def get_or_create(
|
|
54
|
+
self,
|
|
55
|
+
local_rank: int,
|
|
56
|
+
spu_world_size: int,
|
|
57
|
+
config: spu.SPUConfig,
|
|
58
|
+
spu_endpoints: list[str] | None = None,
|
|
59
|
+
) -> tuple[spu_api.Runtime, spu_api.Io]:
|
|
60
|
+
"""Get or create SPU Runtime and Io for the given configuration.
|
|
61
|
+
|
|
62
|
+
Args:
|
|
63
|
+
local_rank: The local rank within the SPU device (0-indexed).
|
|
64
|
+
spu_world_size: The number of parties in the SPU device.
|
|
65
|
+
config: SPU configuration including protocol settings.
|
|
66
|
+
spu_endpoints: Optional list of BRPC endpoints. If None, use mem link.
|
|
67
|
+
|
|
68
|
+
Returns:
|
|
69
|
+
A tuple of (Runtime, Io) for this party.
|
|
70
|
+
"""
|
|
71
|
+
from mplang.v2.backends.spu_impl import to_runtime_config
|
|
72
|
+
|
|
73
|
+
link_mode = "brpc" if spu_endpoints else "mem"
|
|
74
|
+
cache_key = (
|
|
75
|
+
local_rank,
|
|
76
|
+
spu_world_size,
|
|
77
|
+
config.protocol,
|
|
78
|
+
config.field,
|
|
79
|
+
link_mode,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
if cache_key in self._runtimes:
|
|
83
|
+
return self._runtimes[cache_key]
|
|
84
|
+
|
|
85
|
+
# Create Link
|
|
86
|
+
if spu_endpoints:
|
|
87
|
+
link = self._create_brpc_link(local_rank, spu_endpoints)
|
|
88
|
+
else:
|
|
89
|
+
link = self._create_mem_link(local_rank, spu_world_size)
|
|
90
|
+
|
|
91
|
+
# Create Runtime and Io
|
|
92
|
+
runtime_config = to_runtime_config(config)
|
|
93
|
+
runtime = spu_api.Runtime(link, runtime_config)
|
|
94
|
+
io = spu_api.Io(spu_world_size, runtime_config)
|
|
95
|
+
|
|
96
|
+
self._runtimes[cache_key] = (runtime, io)
|
|
97
|
+
return runtime, io
|
|
98
|
+
|
|
99
|
+
def _create_mem_link(
|
|
100
|
+
self, local_rank: int, spu_world_size: int
|
|
101
|
+
) -> libspu.link.Context:
|
|
102
|
+
"""Create in-memory link for simulation."""
|
|
103
|
+
desc = libspu.link.Desc() # type: ignore
|
|
104
|
+
desc.recv_timeout_ms = 30 * 1000
|
|
105
|
+
for i in range(spu_world_size):
|
|
106
|
+
desc.add_party(f"P{i}", f"mem:{i}")
|
|
107
|
+
return libspu.link.create_mem(desc, local_rank)
|
|
108
|
+
|
|
109
|
+
def _create_brpc_link(
|
|
110
|
+
self, local_rank: int, spu_endpoints: list[str]
|
|
111
|
+
) -> libspu.link.Context:
|
|
112
|
+
"""Create BRPC link for distributed execution."""
|
|
113
|
+
desc = libspu.link.Desc() # type: ignore
|
|
114
|
+
desc.recv_timeout_ms = 100 * 1000 # 100 seconds
|
|
115
|
+
desc.http_max_payload_size = 32 * 1024 * 1024 # 32MB
|
|
116
|
+
|
|
117
|
+
for i, endpoint in enumerate(spu_endpoints):
|
|
118
|
+
desc.add_party(f"P{i}", endpoint)
|
|
119
|
+
|
|
120
|
+
return libspu.link.create_brpc(desc, local_rank)
|
|
121
|
+
|
|
122
|
+
def shutdown(self) -> None:
|
|
123
|
+
"""Clear all cached runtimes."""
|
|
124
|
+
self._runtimes.clear()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/bench_fhe_hist.py
RENAMED
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/hist_jax_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/mpir_pb2.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/mpir_pb2.pyi
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/value_pb2.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/value_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/__init__.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/http.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/mem.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/ops.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/state.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/values.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/__init__.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/http.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/mem.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/ops.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|