Lambda Labs Gpu Cloud — Reserved and on-demand GPU cloud instances for ML training and inference
Reserved and on-demand GPU cloud instances for ML training and inference. Use when you need dedicated GPU instances with simple SSH access, persistent filesystems, or high-performance multi-node clusters for large-scale training.
Skill metadata
Section titled “Skill metadata”| Source | Optional — install with hermes skills install official/mlops/lambda-labs |
| Path | optional-skills/mlops/lambda-labs |
| Version | 1.0.0 |
| Author | Orchestra Research |
| License | MIT |
| Dependencies | lambda-cloud-client>=1.0.0 |
| Platforms | linux, macos, windows |
| Tags | Infrastructure, GPU Cloud, Training, Inference, Lambda Labs |
Reference: full SKILL.md
Section titled “Reference: full SKILL.md”The following is the complete skill definition that Hermes loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
Lambda Labs GPU Cloud
Section titled “Lambda Labs GPU Cloud”Comprehensive guide to running ML workloads on Lambda Labs GPU cloud with on-demand instances and 1-Click Clusters.
When to use Lambda Labs
Section titled “When to use Lambda Labs”Use Lambda Labs when:
- Need dedicated GPU instances with full SSH access
- Running long training jobs (hours to days)
- Want simple pricing with no egress fees
- Need persistent storage across sessions
- Require high-performance multi-node clusters (16-512 GPUs)
- Want pre-installed ML stack (Lambda Stack with PyTorch, CUDA, NCCL)
Key features:
- GPU variety: B200, H100, GH200, A100, A10, A6000, V100
- Lambda Stack: Pre-installed PyTorch, TensorFlow, CUDA, cuDNN, NCCL
- Persistent filesystems: Keep data across instance restarts
- 1-Click Clusters: 16-512 GPU Slurm clusters with InfiniBand
- Simple pricing: Pay-per-minute, no egress fees
- Global regions: 12+ regions worldwide
Use alternatives instead:
- Modal: For serverless, auto-scaling workloads
- SkyPilot: For multi-cloud orchestration and cost optimization
- RunPod: For cheaper spot instances and serverless endpoints
- Vast.ai: For GPU marketplace with lowest prices
Quick start
Section titled “Quick start”Account setup
Section titled “Account setup”- Create account at https://lambda.ai
- Add payment method
- Generate API key from dashboard
- Add SSH key (required before launching instances)
Launch via console
Section titled “Launch via console”- Go to https://cloud.lambda.ai/instances
- Click “Launch instance”
- Select GPU type and region
- Choose SSH key
- Optionally attach filesystem
- Launch and wait 3-15 minutes
Connect via SSH
Section titled “Connect via SSH”# Get instance IP from consolessh ubuntu@<INSTANCE-IP>
# Or with specific keyssh -i ~/.ssh/lambda_key ubuntu@<INSTANCE-IP>GPU instances
Section titled “GPU instances”Available GPUs
Section titled “Available GPUs”| GPU | VRAM | Price/GPU/hr | Best For |
|---|---|---|---|
| B200 SXM6 | 180 GB | $4.99 | Largest models, fastest training |
| H100 SXM | 80 GB | $2.99-3.29 | Large model training |
| H100 PCIe | 80 GB | $2.49 | Cost-effective H100 |
| GH200 | 96 GB | $1.49 | Single-GPU large models |
| A100 80GB | 80 GB | $1.79 | Production training |
| A100 40GB | 40 GB | $1.29 | Standard training |
| A10 | 24 GB | $0.75 | Inference, fine-tuning |
| A6000 | 48 GB | $0.80 | Good VRAM/price ratio |
| V100 | 16 GB | $0.55 | Budget training |
Instance configurations
Section titled “Instance configurations”8x GPU: Best for distributed training (DDP, FSDP)4x GPU: Large models, multi-GPU training2x GPU: Medium workloads1x GPU: Fine-tuning, inference, developmentLaunch times
Section titled “Launch times”- Single-GPU: 3-5 minutes
- Multi-GPU: 10-15 minutes
Lambda Stack
Section titled “Lambda Stack”All instances come with Lambda Stack pre-installed:
# Included software- Ubuntu 22.04 LTS- NVIDIA drivers (latest)- CUDA 12.x- cuDNN 8.x- NCCL (for multi-GPU)- PyTorch (latest)- TensorFlow (latest)- JAX- JupyterLabVerify installation
Section titled “Verify installation”# Check GPUnvidia-smi
# Check PyTorchpython -c "import torch; print(torch.cuda.is_available())"
# Check CUDA versionnvcc --versionPython API
Section titled “Python API”Installation
Section titled “Installation”pip install lambda-cloud-clientAuthentication
Section titled “Authentication”import osimport lambda_cloud_client
# Configure with API keyconfiguration = lambda_cloud_client.Configuration( host="https://cloud.lambdalabs.com/api/v1", access_token=os.environ["LAMBDA_API_KEY"])List available instances
Section titled “List available instances”with lambda_cloud_client.ApiClient(configuration) as api_client: api = lambda_cloud_client.DefaultApi(api_client)
# Get available instance types types = api.instance_types() for name, info in types.data.items(): print(f"{name}: {info.instance_type.description}")Launch instance
Section titled “Launch instance”from lambda_cloud_client.models import LaunchInstanceRequest
request = LaunchInstanceRequest( region_name="us-west-1", instance_type_name="gpu_1x_h100_sxm5", ssh_key_names=["my-ssh-key"], file_system_names=["my-filesystem"], # Optional name="training-job")
response = api.launch_instance(request)instance_id = response.data.instance_ids[0]print(f"Launched: {instance_id}")List running instances
Section titled “List running instances”instances = api.list_instances()for instance in instances.data: print(f"{instance.name}: {instance.ip} ({instance.status})")Terminate instance
Section titled “Terminate instance”from lambda_cloud_client.models import TerminateInstanceRequest
request = TerminateInstanceRequest( instance_ids=[instance_id])api.terminate_instance(request)SSH key management
Section titled “SSH key management”from lambda_cloud_client.models import AddSshKeyRequest
# Add SSH keyrequest = AddSshKeyRequest( name="my-key", public_key="ssh-rsa AAAA...")api.add_ssh_key(request)
# List keyskeys = api.list_ssh_keys()
# Delete keyapi.delete_ssh_key(key_id)CLI with curl
Section titled “CLI with curl”List instance types
Section titled “List instance types”curl -u $LAMBDA_API_KEY: \ https://cloud.lambdalabs.com/api/v1/instance-types | jqLaunch instance
Section titled “Launch instance”curl -u $LAMBDA_API_KEY: \ -X POST https://cloud.lambdalabs.com/api/v1/instance-operations/launch \ -H "Content-Type: application/json" \ -d '{ "region_name": "us-west-1", "instance_type_name": "gpu_1x_h100_sxm5", "ssh_key_names": ["my-key"] }' | jqTerminate instance
Section titled “Terminate instance”curl -u $LAMBDA_API_KEY: \ -X POST https://cloud.lambdalabs.com/api/v1/instance-operations/terminate \ -H "Content-Type: application/json" \ -d '{"instance_ids": ["<INSTANCE-ID>"]}' | jqPersistent storage
Section titled “Persistent storage”Filesystems
Section titled “Filesystems”Filesystems persist data across instance restarts:
# Mount location/lambda/nfs/<FILESYSTEM_NAME>
# Example: save checkpointspython train.py --checkpoint-dir /lambda/nfs/my-storage/checkpointsCreate filesystem
Section titled “Create filesystem”- Go to Storage in Lambda console
- Click “Create filesystem”
- Select region (must match instance region)
- Name and create
Attach to instance
Section titled “Attach to instance”Filesystems must be attached at instance launch time:
- Via console: Select filesystem when launching
- Via API: Include
file_system_namesin launch request
Best practices
Section titled “Best practices”# Store on filesystem (persists)/lambda/nfs/storage/ ├── datasets/ ├── checkpoints/ ├── models/ └── outputs/
# Local SSD (faster, ephemeral)/home/ubuntu/ └── working/ # Temporary filesSSH configuration
Section titled “SSH configuration”Add SSH key
Section titled “Add SSH key”# Generate key locallyssh-keygen -t ed25519 -f ~/.ssh/lambda_key
# Add public key to Lambda console# Or via APIMultiple keys
Section titled “Multiple keys”# On instance, add more keysecho 'ssh-rsa AAAA...' >> ~/.ssh/authorized_keysImport from GitHub
Section titled “Import from GitHub”# On instancessh-import-id gh:usernameSSH tunneling
Section titled “SSH tunneling”# Forward Jupyterssh -L 8888:localhost:8888 ubuntu@<IP>
# Forward TensorBoardssh -L 6006:localhost:6006 ubuntu@<IP>
# Multiple portsssh -L 8888:localhost:8888 -L 6006:localhost:6006 ubuntu@<IP>JupyterLab
Section titled “JupyterLab”Launch from console
Section titled “Launch from console”- Go to Instances page
- Click “Launch” in Cloud IDE column
- JupyterLab opens in browser
Manual access
Section titled “Manual access”# On instancejupyter lab --ip=0.0.0.0 --port=8888
# From local machine with tunnelssh -L 8888:localhost:8888 ubuntu@<IP># Open http://localhost:8888Training workflows
Section titled “Training workflows”Single-GPU training
Section titled “Single-GPU training”# SSH to instancessh ubuntu@<IP>
# Clone repogit clone https://github.com/user/projectcd project
# Install dependenciespip install -r requirements.txt
# Trainpython train.py --epochs 100 --checkpoint-dir /lambda/nfs/storage/checkpointsMulti-GPU training (single node)
Section titled “Multi-GPU training (single node)”import torchimport torch.distributed as distfrom torch.nn.parallel import DistributedDataParallel as DDP
def main(): dist.init_process_group("nccl") rank = dist.get_rank() device = rank % torch.cuda.device_count()
model = MyModel().to(device) model = DDP(model, device_ids=[device])
# Training loop...
if __name__ == "__main__": main()# Launch with torchrun (8 GPUs)torchrun --nproc_per_node=8 train_ddp.pyCheckpoint to filesystem
Section titled “Checkpoint to filesystem”import os
checkpoint_dir = "/lambda/nfs/my-storage/checkpoints"os.makedirs(checkpoint_dir, exist_ok=True)
# Save checkpointtorch.save({ 'epoch': epoch, 'model_state_dict': model.state_dict(), 'optimizer_state_dict': optimizer.state_dict(), 'loss': loss,}, f"{checkpoint_dir}/checkpoint_{epoch}.pt")1-Click Clusters
Section titled “1-Click Clusters”Overview
Section titled “Overview”High-performance Slurm clusters with:
- 16-512 NVIDIA H100 or B200 GPUs
- NVIDIA Quantum-2 400 Gb/s InfiniBand
- GPUDirect RDMA at 3200 Gb/s
- Pre-installed distributed ML stack
Included software
Section titled “Included software”- Ubuntu 22.04 LTS + Lambda Stack
- NCCL, Open MPI
- PyTorch with DDP and FSDP
- TensorFlow
- OFED drivers
Storage
Section titled “Storage”- 24 TB NVMe per compute node (ephemeral)
- Lambda filesystems for persistent data
Multi-node training
Section titled “Multi-node training”# On Slurm clustersrun --nodes=4 --ntasks-per-node=8 --gpus-per-node=8 \ torchrun --nnodes=4 --nproc_per_node=8 \ --rdzv_backend=c10d --rdzv_endpoint=$MASTER_ADDR:29500 \ train.pyNetworking
Section titled “Networking”Bandwidth
Section titled “Bandwidth”- Inter-instance (same region): up to 200 Gbps
- Internet outbound: 20 Gbps max
Firewall
Section titled “Firewall”- Default: Only port 22 (SSH) open
- Configure additional ports in Lambda console
- ICMP traffic allowed by default
Private IPs
Section titled “Private IPs”# Find private IPip addr show | grep 'inet 'Common workflows
Section titled “Common workflows”Workflow 1: Fine-tuning LLM
Section titled “Workflow 1: Fine-tuning LLM”# 1. Launch 8x H100 instance with filesystem
# 2. SSH and setupssh ubuntu@<IP>pip install transformers accelerate peft
# 3. Download model to filesystempython -c "from transformers import AutoModelForCausalLMmodel = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-2-7b-hf')model.save_pretrained('/lambda/nfs/storage/models/llama-2-7b')"
# 4. Fine-tune with checkpoints on filesystemaccelerate launch --num_processes 8 train.py \ --model_path /lambda/nfs/storage/models/llama-2-7b \ --output_dir /lambda/nfs/storage/outputs \ --checkpoint_dir /lambda/nfs/storage/checkpointsWorkflow 2: Batch inference
Section titled “Workflow 2: Batch inference”# 1. Launch A10 instance (cost-effective for inference)
# 2. Run inferencepython inference.py \ --model /lambda/nfs/storage/models/fine-tuned \ --input /lambda/nfs/storage/data/inputs.jsonl \ --output /lambda/nfs/storage/data/outputs.jsonlCost optimization
Section titled “Cost optimization”Choose right GPU
Section titled “Choose right GPU”| Task | Recommended GPU |
|---|---|
| LLM fine-tuning (7B) | A100 40GB |
| LLM fine-tuning (70B) | 8x H100 |
| Inference | A10, A6000 |
| Development | V100, A10 |
| Maximum performance | B200 |
Reduce costs
Section titled “Reduce costs”- Use filesystems: Avoid re-downloading data
- Checkpoint frequently: Resume interrupted training
- Right-size: Don’t over-provision GPUs
- Terminate idle: No auto-stop, manually terminate
Monitor usage
Section titled “Monitor usage”- Dashboard shows real-time GPU utilization
- API for programmatic monitoring
Common issues
Section titled “Common issues”| Issue | Solution |
|---|---|
| Instance won’t launch | Check region availability, try different GPU |
| SSH connection refused | Wait for instance to initialize (3-15 min) |
| Data lost after terminate | Use persistent filesystems |
| Slow data transfer | Use filesystem in same region |
| GPU not detected | Reboot instance, check drivers |
References
Section titled “References”- Advanced Usage - Multi-node training, API automation
- Troubleshooting - Common issues and solutions
Resources
Section titled “Resources”- Documentation: https://docs.lambda.ai
- Console: https://cloud.lambda.ai
- Pricing: https://lambda.ai/instances
- Support: https://support.lambdalabs.com
- Blog: https://lambda.ai/blog