PIRonGPU

February 19, 2025 · View on GitHub

PIRonGPU is an innovative library that accelerates data retrieval while preserving user privacy through the implementation of Private Information Retrieval (PIR) technology. By modifying the existing SealPIR protocol with HEonGPU, PIRonGPU leverages the parallel processing capabilities of GPUs to perform computation-intensive tasks at significantly higher speeds. This approach not only ensures that the client’s data request remains confidential but also enhances performance in high-demand applications. With its modular and flexible design, PIRonGPU offers a secure and efficient solution for modern data querying needs, making it an ideal tool for applications requiring both privacy and high-performance computing.

Installation

Requirements

Build & Install

To build and install PIRonGPU, follow the steps below. This includes configuring the project using CMake, compiling the source code, and installing the library on your system.

GPU ArchitectureCompute Capability (CMAKE_CUDA_ARCHITECTURES Value)
Volta70, 72
Turing75
Ampere80, 86
Ada89, 90
$ cmake -S . -D CMAKE_CUDA_ARCHITECTURES=89 -B build
$ cmake --build ./build/

Examples

To run examples:

$ cmake -S . -D PIRonGPU_BUILD_EXAMPLES=ON -D CMAKE_CUDA_ARCHITECTURES=89 -B build
$ cmake --build ./build/

$ ./build/bin/examples/<...>
$ Example: ./build/bin/examples/pir_example

Tests

To run examples:

$ cmake -S . -D PIRonGPU_BUILD_TESTS=ON -D CMAKE_CUDA_ARCHITECTURES=89 -B build
$ cmake --build ./build/

$ ./build/bin/tests/<...>

License

This project contains portions of code originally from the Microsoft SealPIR project, which is licensed under the MIT License. All modifications and additions made by Alişah Özcan are licensed under the Apache License, Version 2.0.

For more details, please refer to the LICENSE file.

Contributing

Contributions are welcome! Please check the CONTRIBUTING file for guidelines on how to contribute to the project.

Contact

If you have any questions or feedback, feel free to contact me: