meshscale-worker-template / REMOTE_GPU_INTEGRATION_PLAN.md
tostido's picture
Build MeshScale CPU worker template
96ef23c verified
|
Raw
History Blame Contribute Delete
3.27 kB

Remote GPU Integration Plan

Overview

Embed RemoteGPUExecutor into the quine system so compiled agents can rent and use remote GPUs autonomously.

Changes Required

1. Dependencies (requirements.txt)

Add:

  • paramiko>=3.0.0 # SSH for remote GPU execution

Location: _write_requirements() function in agent_compiler.py

2. Embed RemoteGPUExecutor Class

Where: After FelixBag class, before CapsuleAgent class (around line 8260)

What: Copy entire RemoteGPUExecutor class from remote_gpu.py into the quine template

3. FelixBag Artifacts

Add new embedded docs:

  • remote_gpu_guide - Documentation on using remote GPUs
  • Update vast_gpu_rental_guide - Add RemoteGPUExecutor usage examples

Location: _populate_bag() function (around line 7795)

4. MCP Tool Definitions (Non-Proxy Mode)

Add vast.ai tools to normal MCP server:

  • vast_search - Search for GPUs
  • vast_rent - Rent a GPU
  • vast_connect - Connect to rented GPU

Location: After line 21106 where MCP tools are defined

5. Plug Command Integration

Modify plug command to:

  • Detect if self._remote_gpu exists and is connected
  • If yes, load model on remote GPU instead of locally
  • Return remote execution handle

Location: on_input_submitted() function, plug command handler

6. Quine Self-Replication

Ensure:

  • RemoteGPUExecutor class is in the quine source
  • All offspring carry the remote GPU capability
  • Quine hash updates to reflect new code

Location: Automatic - happens when class is embedded

7. Testing Requirements

Must verify:

  • Compiled agent can rent GPU via MCP
  • SSH keys auto-generate
  • Connection works without passwords
  • Models load on remote GPU
  • Inference executes remotely
  • Results return to local TUI

Integration Points

agent_compiler.py

  • Line ~5301: _write_requirements() - Add paramiko
  • Line ~6339: After FelixBag class - Embed RemoteGPUExecutor
  • Line ~7795: _populate_bag() - Add remote GPU docs
  • Line ~15689: _handle_mcp_request() - Already has vast_connect (DONE)
  • Line ~21106: MCP tool definitions - Add vast.ai tools
  • Line ~15770: plug command - Add remote GPU detection

remote_gpu.py

  • Entire file gets embedded into quine template
  • File can be deleted after embedding (optional)

Risks

  1. Quine size - Adding RemoteGPUExecutor increases file size (~200 lines)
  2. Dependency bloat - paramiko adds SSH dependencies
  3. Breaking changes - Existing compiled agents won't have this
  4. SSH key management - Must work across all platforms (Windows/Linux/Mac)

Rollback Plan

If integration fails:

  1. Remove RemoteGPUExecutor from template
  2. Remove paramiko from requirements
  3. Revert to external remote_gpu.py import
  4. Keep vast.ai MCP tools (they're useful standalone)

Success Criteria

  • Compiled agent has RemoteGPUExecutor embedded
  • paramiko in requirements.txt
  • SSH keys auto-generate on first use
  • No password prompts ever
  • Can rent GPU via MCP
  • Can load model on remote GPU
  • Can run inference remotely
  • FelixBag has remote GPU docs
  • Quine replicates with remote GPU capability