Metadata-Version: 2.4
Name: nv-ppcie-verifier
Version: 1.6.6
Summary: Protected PCIE Verifier (1.x version)
License: OSI Approved :: Apache Software License
License-File: LICENSE
Author: Shwetha Kalyanaraman
Author-email: skalyanarama@nvidia.com
Requires-Python: >=3.9,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: astroid (==3.1.0)
Requires-Dist: black (==24.3.0)
Requires-Dist: build (==1.2.1)
Requires-Dist: click (==8.1.7)
Requires-Dist: cryptography (==43.0.1)
Requires-Dist: dill (==0.3.8)
Requires-Dist: nv-attestation-sdk (==2.6.5)
Requires-Dist: nv-local-gpu-verifier (==2.6.5)
Requires-Dist: nvidia-ml-py (>=12.550.52,<13.0.0)
Requires-Dist: pathspec (==0.12.1)
Requires-Dist: prettytable (>=3.10.0,<4.0.0)
Requires-Dist: pylint (==3.1.0)
Requires-Dist: pytest (==8.1.1)
Requires-Dist: pytest-cov (>=5.0.0,<6.0.0)
Requires-Dist: setuptools (==80.9.0)
Requires-Dist: timeout-decorator (==0.5.0)
Requires-Dist: tomlkit (==0.12.4)
Requires-Dist: typing_extensions (==4.10.0)
Requires-Dist: urllib3 (==2.6.3)
Requires-Dist: wheel (==0.43.0)
Description-Content-Type: text/markdown

# Protected PCIE Verifier (Version 1.x)

**Note**: PPCIE Verifier version 1.x is deprecated and only supports the Python SDK. For the latest version 2.x with enhanced features, see [PPCIE Verifier SDK CPP](../ppcie-verifier-sdk-cpp/README.md).

## Introduction 

In a multi-GPU confidential computing (CC) setup, NVLink interconnects and NVSwitches are used for GPU to GPU data traffic. NVLink interconnects and NVSwitches are outside the trust boundary and thus should not allow access to plain-text data. All data that flows over NVLink must be encrypted prior to transfer and decrypted at the destination GPU. On the GPU encryption and decryption is performed by the GPU copy engine (CE).

Bouncing through a CE adds constraints and latency to the data path which may result in performance drops for some workloads. To minimize performance impact, NVIDIA's 'PPCIE' mode adjusts the security model to trust NVLink data, enabling plain-text traffic without CEs while preserving a Confidential Virtual Machine.

**Note**: There are only two supported GPU usage configurations: 
- ALL GPUs are in CC mode. Each GPU can be assigned to one Confidential VM. In this scenario, use the CC verifier. 
- ALL GPUs are in PPCIe mode. All GPUs must be assigned one Confidential VM. In this scenario, use the PPCIE verifier

# Quick Start Guide

## Prerequisites
- HGX system with 8 GPUs and 4 switches assigned to the single tenant
- python >= 3.9
- git installed
- Nvidia GPU driver installed
- Nvidia Switch driver installed
- Nvidia Fabric Manager installed

## Installation

1. Please elevate to Root User Privileges before installing the packages: (Note: This is necessary to set the GPU ready state)      

    ```
    sudo -i
    ```
2. Create a new virtual environment and install PPCIE Verifier from PyPi repository

    ```
    python3 -m venv venv
    
    source venv/bin/activate
    
    # This installs version 1.x 
    pip3 install "nv-ppcie-verifier>=1.0,<2.0"
    ```
## Usage and Examples

- For advanced options and usage details, see the **[PPCIE Quick Start Guide](https://docs.nvidia.com/attestation/attestation-client-tools-ppcie/latest/ppcie_quickstart_guide.html)**.
- For a complete end-to-end PPCIE attestation example, see the **[Hopper Multi-GPU (PPCIE) Attestation Example](https://docs.nvidia.com/attestation/quick-start-guide/latest/attestation-examples/hopper_ppcie.html)**.

## License

This repository is licensed under Apache License v2.0 except where otherwise noted.

## Support

- For issues or questions, please [file a bug](https://github.com/NVIDIA/nvtrust/issues). 
- For additional support, contact us at [attestation-support@nvidia.com](mailto:attestation-support@nvidia.com)
