Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Deploy GPU Prover

  1. Follow multi-machine-setup.md to prepare the GPU box.

  2. Install Docker and add your user to the docker group:

    sudo groupadd docker 2>/dev/null || true && sudo usermod -aG docker $USER
    

    If Docker reports could not select device driver "" with capabilities: [[gpu]], install the NVIDIA Container Toolkit and restart Docker:

    sudo systemctl restart docker
    
  3. Download the GPU Pico proving service image from /home/ubuntu:

    curl -sL -O https://pico-proofs.s3.us-west-2.amazonaws.com/prover-network/mainnet/pico-proving-service-gpu.tar
    
  4. Load the image into Docker:

    docker load -i pico-proving-service-gpu.tar
    
  5. Clone the repository and enter the GPU docker folder:

    git clone https://github.com/brevis-network/pico-proving-service
    cd pico-proving-service/docker/gpu
    
  6. Copy the environment template:

    cp .env.example .env
    
    • Fix PROVER_COUNT to the number of GPUs on your machine.
    • The SPLIT_THRESHOLD, CHUNK_SIZE, MEM_POOL_RESERVE_SIZE and PICO_GPU_MEM are set to default for RTX 5090. For RTX 4090, comment the settings for 5090 and enable the settings for 4090.

    Leave the others unless you are sure they need to change. If you encounter a GPU memory allocation issue, you could enable MAX_EMULATION_CYCLES to give a try, its value is machine specific.

  7. Download dependencies and bring up the containers:

    make download-gnark
    make up
    
  8. Verify the containers:

    docker ps
    

    You should see pico-proving-service and pico_gnark_server. The Gnark server produces the final on-chain verifiable proof.

  9. Review the Makefile for other targets (down/restart/clean). For logs, run:

    make logs-server
    make logs-gnark