Skip to main content

SPU aims to be a 'provable', 'measurable' secure computation device.

Project description

SPU: Secure Processing Unit

CircleCI Python PyPI version OpenSSF Scorecard OpenSSF Best Practices

SPU (Secure Processing Unit) aims to be a provable, measurable secure computation device, which provides computation ability while keeping your private data protected.

SPU could be treated as a programmable device, it's not designed to be used directly. Normally we use SecretFlow framework, which use SPU as the underline secure computing device.

Currently, we mainly focus on provable security. It contains a secure runtime that evaluates XLA-like tensor operations, which use MPC as the underline evaluation engine to protect privacy information.

SPU python package also contains a simple distributed module to demo SPU usage, but it's NOT designed for production due to system security and performance concerns, please DO NOT use it directly in production.

Contribution Guidelines

If you would like to contribute to SPU, please check Contribution guidelines.

This documentation also contains instructions for build and testing.

Installation Guidelines

Supported platforms

Linux x86_64 Linux aarch64 macOS x64 macOS Apple Silicon Windows x64 Windows WSL2 x64
CPU yes yes yes1 yes no yes
NVIDIA GPU experimental no no n/a no experimental
  1. Due to CI resource limitation, macOS x64 prebuild binary will no longer available since next release (0.9.x).

Instructions

Please follow Installation Guidelines to install SPU.

Hardware Requirements

General Features FourQ based PSI GPU
AVX/ARMv8 AVX2/ARMv8 CUDA 11.8+

Citing SPU

If you think SPU is helpful for your research or development, please consider citing our paper:

@inproceedings {spu,
    author = {Junming Ma and Yancheng Zheng and Jun Feng and Derun Zhao and Haoqi Wu and Wenjing Fang and Jin Tan and Chaofan Yu and Benyu Zhang and Lei Wang},
    title = {{SecretFlow-SPU}: A Performant and {User-Friendly} Framework for {Privacy-Preserving} Machine Learning},
    booktitle = {2023 USENIX Annual Technical Conference (USENIX ATC 23)},
    year = {2023},
    isbn = {978-1-939133-35-9},
    address = {Boston, MA},
    pages = {17--33},
    url = {https://www.usenix.org/conference/atc23/presentation/ma},
    publisher = {USENIX Association},
    month = jul,
}

Acknowledgement

We thank the significant contributions made by Alibaba Gemini Lab.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

spu-0.8.0.dev20240306-cp311-cp311-manylinux_2_28_aarch64.whl (36.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

spu-0.8.0.dev20240306-cp311-cp311-macosx_12_0_x86_64.whl (36.6 MB view details)

Uploaded CPython 3.11 macOS 12.0+ x86-64

spu-0.8.0.dev20240306-cp311-cp311-macosx_12_0_arm64.whl (33.6 MB view details)

Uploaded CPython 3.11 macOS 12.0+ ARM64

spu-0.8.0.dev20240306-cp310-cp310-manylinux_2_28_aarch64.whl (36.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

spu-0.8.0.dev20240306-cp310-cp310-macosx_12_0_x86_64.whl (36.6 MB view details)

Uploaded CPython 3.10 macOS 12.0+ x86-64

spu-0.8.0.dev20240306-cp310-cp310-macosx_12_0_arm64.whl (33.6 MB view details)

Uploaded CPython 3.10 macOS 12.0+ ARM64

spu-0.8.0.dev20240306-cp39-cp39-manylinux_2_28_aarch64.whl (36.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

spu-0.8.0.dev20240306-cp39-cp39-macosx_12_0_x86_64.whl (36.6 MB view details)

Uploaded CPython 3.9 macOS 12.0+ x86-64

spu-0.8.0.dev20240306-cp39-cp39-macosx_12_0_arm64.whl (33.6 MB view details)

Uploaded CPython 3.9 macOS 12.0+ ARM64

File details

Details for the file spu-0.8.0.dev20240306-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 27765f47602c6d7e1b772f1e1a2d154fc37a096c9ecc5fa780ff1ded47ed33ba
MD5 4e6626319a37d57aa8c54682f63566e1
BLAKE2b-256 9a0684d8d65350ac94fbc19192660162bce664ca8aaeab98a144d724726d3ab6

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f031cdf05372df0e02c408c18ad91145b20a8abbfc55b4a47541b5b7f4da462
MD5 78fd4ab5f500cab986539498369fd1e6
BLAKE2b-256 d0d5060a6b9cfbe2c7d3d1f0c1aafdfbda662d8e0137431380e8ab3da765f0b9

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp311-cp311-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 97e0d41be2c51d66c8d30b03382e5e43fda3d938fef6a005592c22f58fc5f01b
MD5 7c4832c9ad040a2c8a5927c50545dd8b
BLAKE2b-256 a3c96c2a3e4fd00a172640d243647433123472ce3c961173cff86d9b5a3b33e6

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e14440d72d4b1bbf6ec441f321cbd0eb6f012f71f8245e0d7eac665b74f556ec
MD5 f285ff8bd09890990a8a957a6f02eb81
BLAKE2b-256 fbf13cca4857a42d9b291d6d051ca26b9156aa7b3c090bc7cb288fc7f9c2a7c0

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 30c2983b9122a1bf0ae553f01424d4bcfe7d21c5803670fd0881750b67f7ea6d
MD5 8a107420df5d6c023ef34821a2ce4395
BLAKE2b-256 18a0681f08678c6d8f1eec265d61be69980a4327cafa4e88878962916c561973

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e15d5bfd0eeccd23ac7635bb8b2e25801588dcb4149500c668434e3a09747846
MD5 874b9a2005c6e087a91e035ce0999548
BLAKE2b-256 14acf251f1c9d68fb531539a912ee6f7b590452eea2d1c94ca637203fbea945b

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp310-cp310-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 42bf4e4482c5597a9ba29c5ad233abfc4dad5fa350185e42680540dd5c547ba8
MD5 644ac231a286bd90db20572768e72a65
BLAKE2b-256 86b5a3f790ead697518f0dfeda9d3843c9bfe5bc15cbc7e9f58f9a53a970a7ee

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1590684eb07c9270177c3e894c758936da29ea7dd7941b70b9386a222a3ce13e
MD5 05a0e5ddb9fe14e33bfad7b15c002c7a
BLAKE2b-256 e813371e666114a295bfddea1020e0a4955594e287d0856710ed15af579a0150

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3e86292112348cf669c84aca5b4d2e1835e86b1f5897193c1387e5d80443dbe9
MD5 cb48634ea3bf1f20c2dbbd0f79c3b9fa
BLAKE2b-256 77c89c9bdbab43c2591c1351b3d3dc180ba0597ade8e0b41d37aab9da97c4308

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3594845874deeb8b89354645f7fa73151e0234cd8c4a4cdc77e1e2a20ccb7687
MD5 4a91d5a0a8dfebe6d353d026fc9c0308
BLAKE2b-256 3617799c978c164f3ca4a21d501010e5caf77ca770c4d5488fa109359d7160a1

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp39-cp39-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 62f3201351984e48f869140ad268f293784953854762ba1fdb2e4dce71b0645a
MD5 89bd8e4e35dd1f47cf83913e43a52422
BLAKE2b-256 a840e28835a68a0b80efc5531beb3368c55993e206565c7e0d23db0888f76f1c

See more details on using hashes here.

File details

Details for the file spu-0.8.0.dev20240306-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for spu-0.8.0.dev20240306-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e9d467af0986673de48dd282280be1e61b3e6bd877187d7fcdb93cdbfc5e13b5
MD5 6786b3efceda966d15a0bd151a382b08
BLAKE2b-256 01a9076d6c42d6267eafad3de7ca96fbe0c4588a33ba38979d8274b02c70aedd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page