Prerequisites
- TerraGPU account (sign up at terragpu.com)
- Payment method configured
- SSH client (built-in on macOS/Linux, PuTTY for Windows)
- OpenVPN client (for VPN connectivity)
Step 1: Account Setup
- Sign Up: Visit terragpu.com/signup
- Enter email and password
- Verify email (check spam folder)
- Complete Onboarding:
- Organization name and billing email
- Add payment method (Stripe)
- Set notification preferences
Step 2: Network Configuration
Choose your connectivity option:
Option A: TerraGPU VPN (Recommended)
Best for: Most users, fastest setup
curl https://get.terragpu.com | bash
terragpu connect
Option B: Customer VPN
Best for: Enterprise with existing VPN infrastructure
Setup fee: $500 | See VPN Guide for details
Option C: Direct Connect
Best for: Large datasets, low latency requirements
Setup fee: $2,000 | Monthly: $1,500-$10,000
Step 3: Launch Your First Instance
- Navigate to Console: Console → Instances → Launch Instance
- Select GPU:
- 1x A100 40GB - $2.50/hr (recommended for testing)
- 2x A100 80GB - $4.80/hr
- 4x A100 80GB - $9.00/hr
- 8x H100 80GB - $16.00/hr
- Choose Container Image:
- PyTorch 2.1 (CUDA 12.2)
- TensorFlow 2.14 (CUDA 12.2)
- JAX 0.4 (CUDA 12.2)
- Custom Docker image
- Configure Storage:
- 500GB ephemeral (included)
- Optional: Add persistent storage ($0.10/GB/month)
- Optional: Mount S3 bucket
- Set Options:
- Instance name
- Region (Sydney)
- Spot instance (30% discount, may be interrupted)
- Auto-shutdown (1hr, 4hr, 8hr, never)
- Review & Launch: Instance ready in 2-3 minutes
Step 4: Connect to Instance
Via SSH
ssh ubuntu@10.100.5.23
# Check GPUs
nvidia-smi
# Check CUDA
nvcc --version
Via Jupyter
Access Jupyter at: https://10.100.5.23:8888
Token displayed in instance details
Step 5: Run Your First Workload
# Test PyTorch
python3 << EOF
import torch
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"GPU count: {torch.cuda.device_count()}")
print(f"GPU name: {torch.cuda.get_device_name(0)}")
# Simple tensor operation
x = torch.rand(1000, 1000).cuda()
y = torch.rand(1000, 1000).cuda()
z = x @ y
print(f"Result shape: {z.shape}")
EOFStep 6: Upload Your Data
Option A: SCP/SFTP
scp -r ./datasets ubuntu@10.100.5.23:/home/ubuntu/
Option B: Mount S3
s3fs my-bucket /mnt/s3 -o passwd_file=~/.passwd-s3fs
Option C: Console Upload
Console → Storage → Upload Files (max 5GB per file)
Step 7: Monitor & Manage
- View real-time metrics: Console → Instances → [Instance] → Metrics
- Set up alerts: Console → Alerts → Create Alert
- Track costs: Console → Usage → View Reports
- Stop instance when done: Console → Instances → Stop
Best Practices
- Use spot instances for training jobs with checkpoints (30% cheaper)
- Set auto-shutdown to avoid paying for idle instances
- Use persistent storage for important data (survives termination)
- Monitor GPU utilization - if consistently low, downsize instance
- Set cost alerts to avoid surprise bills
Next Steps
- Explore integrations: AWS, Azure, GCP, MLOps tools
- Set up team members and roles
- Configure API keys for automation
- Review security settings