|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
Simple RunPod test script to verify API connection and GPU availability. |
|
|
|
|
|
Usage: |
|
|
export RUNPOD_API_KEY="your-api-key" |
|
|
uv run scripts/runpod_simple_test.py |
|
|
uv run scripts/runpod_simple_test.py --list-gpus |
|
|
uv run scripts/runpod_simple_test.py --run-test |
|
|
""" |
|
|
|
|
|
import os |
|
|
import click |
|
|
import runpod |
|
|
|
|
|
|
|
|
@click.command() |
|
|
@click.option("--list-gpus", is_flag=True, help="List available GPU types") |
|
|
@click.option("--run-test", is_flag=True, help="Run a quick test pod") |
|
|
def main(list_gpus, run_test): |
|
|
"""Test RunPod API connection and GPU availability.""" |
|
|
api_key = os.environ.get("RUNPOD_API_KEY") |
|
|
if not api_key: |
|
|
raise click.ClickException( |
|
|
"Set RUNPOD_API_KEY environment variable.\n" |
|
|
"Get your key at: https://runpod.io/console/user/settings" |
|
|
) |
|
|
|
|
|
runpod.api_key = api_key |
|
|
|
|
|
|
|
|
click.echo("Testing RunPod API connection...") |
|
|
try: |
|
|
pods = runpod.get_pods() |
|
|
click.echo(f" Connected! Active pods: {len(pods)}") |
|
|
except Exception as e: |
|
|
raise click.ClickException(f"API connection failed: {e}") |
|
|
|
|
|
|
|
|
if list_gpus: |
|
|
click.echo("\nAvailable GPU types:") |
|
|
try: |
|
|
gpus = runpod.get_gpus() |
|
|
for gpu in gpus: |
|
|
name = gpu.get("id", "Unknown") |
|
|
mem = gpu.get("memoryInGb", "?") |
|
|
click.echo(f" - {name} ({mem}GB)") |
|
|
except Exception as e: |
|
|
click.echo(f" Could not list GPUs: {e}") |
|
|
|
|
|
|
|
|
if run_test: |
|
|
click.echo("\nLaunching test pod...") |
|
|
test_script = "nvidia-smi && python3 -c 'import torch; print(f\"PyTorch: {torch.__version__}, CUDA: {torch.cuda.is_available()}\")'" |
|
|
|
|
|
pod = runpod.create_pod( |
|
|
name="bamboo-1-test", |
|
|
image_name="runpod/pytorch:2.1.0-py3.10-cuda11.8.0-devel-ubuntu22.04", |
|
|
gpu_type_id="NVIDIA RTX A4000", |
|
|
volume_in_gb=5, |
|
|
docker_args=f"bash -c '{test_script}; sleep 60'", |
|
|
) |
|
|
|
|
|
click.echo(f" Pod ID: {pod['id']}") |
|
|
click.echo(f" Monitor: https://runpod.io/console/pods") |
|
|
click.echo(f"\n Terminate after checking:") |
|
|
click.echo(f" uv run scripts/runpod_setup.py terminate {pod['id']}") |
|
|
|
|
|
if not list_gpus and not run_test: |
|
|
click.echo("\nUse --list-gpus to see available GPUs") |
|
|
click.echo("Use --run-test to launch a quick test pod") |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |
|
|
|