spu


Namespu JSON
Version 0.9.0.dev20240415 PyPI version JSON
download
home_pagehttps://github.com/secretflow/spu
SummarySPU aims to be a 'provable', 'measurable' secure computation device.
upload_time2024-04-15 03:01:36
maintainerNone
docs_urlNone
authorSecretFlow Team
requires_pythonNone
licenseApache 2.0
keywords spu mpc secretflow compiler vm aby3 secure computation
VCS
bugtrack_url
requirements grpcio numpy protobuf cloudpickle multiprocess cachetools jax termcolor
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SPU: Secure Processing Unit

[![CircleCI](https://dl.circleci.com/status-badge/img/gh/secretflow/spu/tree/main.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/secretflow/spu/tree/main)
[![Python](https://img.shields.io/pypi/pyversions/spu.svg)](https://pypi.org/project/spu/)
[![PyPI version](https://img.shields.io/pypi/v/spu)](https://pypi.org/project/spu/)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/secretflow/spu/badge)](https://securityscorecards.dev/viewer/?uri=github.com/secretflow/spu)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8311/badge)](https://www.bestpractices.dev/projects/8311)

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](https://www.tensorflow.org/xla/operation_semantics)-like tensor operations,
which use [MPC](https://en.wikipedia.org/wiki/Secure_multi-party_computation) 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](CONTRIBUTING.md).

This documentation also contains instructions for [build and testing](CONTRIBUTING.md#build).

## Installation Guidelines

### Supported platforms

|            | Linux x86_64 | Linux aarch64 | macOS x64      | macOS Apple Silicon | Windows x64    | Windows WSL2    x64 |
|------------|--------------|---------------|----------------|---------------------|----------------|---------------------|
| CPU        | yes          | yes           | yes<sup>1</sup>| yes                 | no             | yes                 |
| NVIDIA GPU | experimental | no            | no             | n/a                 | no             | experimental        |

1. Due to CI resource limitation, macOS x64 prebuild binary is no longer available.

### Instructions

Please follow [Installation Guidelines](INSTALLATION.md) 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](https://www.usenix.org/conference/atc23/presentation/ma):

```text
@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](https://alibaba-gemini-lab.github.io).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/secretflow/spu",
    "name": "spu",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "spu mpc secretflow compiler vm ABY3 secure computation",
    "author": "SecretFlow Team",
    "author_email": "secretflow-contact@service.alipay.com",
    "download_url": null,
    "platform": null,
    "description": "# SPU: Secure Processing Unit\n\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/secretflow/spu/tree/main.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/secretflow/spu/tree/main)\n[![Python](https://img.shields.io/pypi/pyversions/spu.svg)](https://pypi.org/project/spu/)\n[![PyPI version](https://img.shields.io/pypi/v/spu)](https://pypi.org/project/spu/)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/secretflow/spu/badge)](https://securityscorecards.dev/viewer/?uri=github.com/secretflow/spu)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8311/badge)](https://www.bestpractices.dev/projects/8311)\n\nSPU (Secure Processing Unit) aims to be a `provable`, `measurable` secure computation device,\nwhich provides computation ability while keeping your private data protected.\n\nSPU could be treated as a programmable device, it's not designed to be used directly.\nNormally we use SecretFlow framework, which use SPU as the underline secure computing device.\n\nCurrently, we mainly focus on `provable` security. It contains a secure runtime that evaluates\n[XLA](https://www.tensorflow.org/xla/operation_semantics)-like tensor operations,\nwhich use [MPC](https://en.wikipedia.org/wiki/Secure_multi-party_computation) as the underline\nevaluation engine to protect privacy information.\n\nSPU python package also contains a simple distributed module to demo SPU usage,\nbut it's **NOT designed for production** due to system security and performance concerns,\nplease **DO NOT** use it directly in production.\n\n## Contribution Guidelines\n\nIf you would like to contribute to SPU, please check [Contribution guidelines](CONTRIBUTING.md).\n\nThis documentation also contains instructions for [build and testing](CONTRIBUTING.md#build).\n\n## Installation Guidelines\n\n### Supported platforms\n\n|            | Linux x86_64 | Linux aarch64 | macOS x64      | macOS Apple Silicon | Windows x64    | Windows WSL2    x64 |\n|------------|--------------|---------------|----------------|---------------------|----------------|---------------------|\n| CPU        | yes          | yes           | yes<sup>1</sup>| yes                 | no             | yes                 |\n| NVIDIA GPU | experimental | no            | no             | n/a                 | no             | experimental        |\n\n1. Due to CI resource limitation, macOS x64 prebuild binary is no longer available.\n\n### Instructions\n\nPlease follow [Installation Guidelines](INSTALLATION.md) to install SPU.\n\n### Hardware Requirements\n\n| General Features | FourQ based PSI | GPU |\n| ---------------- | --------------- | --- |\n| AVX/ARMv8        | AVX2/ARMv8      | CUDA 11.8+ |\n\n## Citing SPU\n\nIf you think SPU is helpful for your research or development, please consider citing our [paper](https://www.usenix.org/conference/atc23/presentation/ma):\n\n```text\n@inproceedings {spu,\n    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},\n    title = {{SecretFlow-SPU}: A Performant and {User-Friendly} Framework for {Privacy-Preserving} Machine Learning},\n    booktitle = {2023 USENIX Annual Technical Conference (USENIX ATC 23)},\n    year = {2023},\n    isbn = {978-1-939133-35-9},\n    address = {Boston, MA},\n    pages = {17--33},\n    url = {https://www.usenix.org/conference/atc23/presentation/ma},\n    publisher = {USENIX Association},\n    month = jul,\n}\n```\n\n## Acknowledgement\n\nWe thank the significant contributions made by [Alibaba Gemini Lab](https://alibaba-gemini-lab.github.io).\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "SPU aims to be a 'provable', 'measurable' secure computation device.",
    "version": "0.9.0.dev20240415",
    "project_urls": {
        "Homepage": "https://github.com/secretflow/spu"
    },
    "split_keywords": [
        "spu",
        "mpc",
        "secretflow",
        "compiler",
        "vm",
        "aby3",
        "secure",
        "computation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3f9e1828a1e4980c412fc9ea6cfc1a0754455220e5c8953f68330597cddf14de",
                "md5": "6ec440ea686f19d30fca8786313ccac7",
                "sha256": "1997cf8fbb1ea36b4166521e705d4285143c919f74dd5c8069f53e2e5f7c1ddb"
            },
            "downloads": -1,
            "filename": "spu-0.9.0.dev20240415-cp310-cp310-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "6ec440ea686f19d30fca8786313ccac7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 32597364,
            "upload_time": "2024-04-15T03:01:36",
            "upload_time_iso_8601": "2024-04-15T03:01:36.876594Z",
            "url": "https://files.pythonhosted.org/packages/3f/9e/1828a1e4980c412fc9ea6cfc1a0754455220e5c8953f68330597cddf14de/spu-0.9.0.dev20240415-cp310-cp310-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "83d8e505d62187b42efae37b43c402099ac71aff4431f638e2c308ed41a60e57",
                "md5": "27de63f1516a7a8d65b1bde5cdfac936",
                "sha256": "18c50703e0efd99159b814e31b3dfc0f3a8048cac60b172619167a9e0d574186"
            },
            "downloads": -1,
            "filename": "spu-0.9.0.dev20240415-cp310-cp310-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "27de63f1516a7a8d65b1bde5cdfac936",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 37529628,
            "upload_time": "2024-04-15T02:54:00",
            "upload_time_iso_8601": "2024-04-15T02:54:00.823677Z",
            "url": "https://files.pythonhosted.org/packages/83/d8/e505d62187b42efae37b43c402099ac71aff4431f638e2c308ed41a60e57/spu-0.9.0.dev20240415-cp310-cp310-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d1c03bc85948e952b225951c0b3b2a48f0848dbd6407530c8431f1aa8b58407",
                "md5": "d5b0f5ec7cab03b375f976c31e7fa8f3",
                "sha256": "546e511ee9a30db45c540c9ee7ff29c59e58a82281753108d2c3671473dd9526"
            },
            "downloads": -1,
            "filename": "spu-0.9.0.dev20240415-cp310-cp310-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d5b0f5ec7cab03b375f976c31e7fa8f3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 36454748,
            "upload_time": "2024-04-15T03:00:26",
            "upload_time_iso_8601": "2024-04-15T03:00:26.458856Z",
            "url": "https://files.pythonhosted.org/packages/8d/1c/03bc85948e952b225951c0b3b2a48f0848dbd6407530c8431f1aa8b58407/spu-0.9.0.dev20240415-cp310-cp310-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-15 03:01:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "secretflow",
    "github_project": "spu",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "circle": true,
    "requirements": [
        {
            "name": "grpcio",
            "specs": [
                [
                    ">=",
                    "1.42.0"
                ],
                [
                    "!=",
                    "1.48.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.22.0"
                ]
            ]
        },
        {
            "name": "protobuf",
            "specs": [
                [
                    "<",
                    "5"
                ],
                [
                    ">=",
                    "4"
                ]
            ]
        },
        {
            "name": "cloudpickle",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "multiprocess",
            "specs": [
                [
                    ">=",
                    "0.70.12.2"
                ]
            ]
        },
        {
            "name": "cachetools",
            "specs": [
                [
                    ">=",
                    "5.0.0"
                ]
            ]
        },
        {
            "name": "jax",
            "specs": [
                [
                    ">=",
                    "0.4.16"
                ]
            ]
        },
        {
            "name": "termcolor",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        }
    ],
    "lcname": "spu"
}
        
Elapsed time: 0.25443s