Metadata-Version: 2.4
Name: nv-ppcie-verifier
Version: 2.0.0
Summary: Protected PCIE Verifier SDK CPP
License: OSI Approved :: Apache Software License
License-File: LICENSE
Author: Kartheeka Bokka
Author-email: kartheekab@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: ecdsa (==0.18.0)
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: twine (>=3.7.1)
Requires-Dist: typing_extensions (==4.10.0)
Requires-Dist: wheel (==0.43.0)
Description-Content-Type: text/markdown

# Protected PCIE Verifier (Version 2.x)

> **Note:** PPCIE Verifier 2.x requires the CPP Attestation SDK and does NOT work with the Python Attestation SDK. See [Prerequisites](#prerequisites) for installation instructions.

## 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
1. HGX system with 8 GPUs and 4 switches assigned to the single tenant
2. python >= 3.9
3. git installed
4. Nvidia GPU driver installed
5. Nvidia Switch driver installed
6. Nvidia Fabric Manager installed
7. NVIDIA Attestation CLI (`nvattest`) must be installed — follow the [NVIDIA Attestation CLI documentation](https://docs.nvidia.com/attestation/nv-attestation-sdk-cpp/latest/sdk-cli/introduction.html) (also installs the Attestation CPP SDK).

## Installation

1. Before installing PPCIE Verifier, verify `nvattest` is installed and on your PATH:
    ```
    nvattest version
    ```
        
2. Please elevate to Root User Privileges before installing the packages: (Note: This is necessary to set the GPU ready state)
    ```
    sudo -i
    ```

3. Create a new virtual environment and install PPCIE Verifier from PyPi repository

    ```
    python3 -m venv venv
    
    source venv/bin/activate
    
    pip3 install nv-ppcie-verifier
    ```

## Usage and Examples

- For advanced options and usage details, see the [PPCIE Quick Start Guide](https://docs.nvidia.com/attestation/attestation-client-tools-ppcie-sdk-cpp/latest/ppcie_quickstart_guide.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)
