Skip to content

Cost Estimation

Canard uses spot GPU instances. Cost depends on num_envs, max_iterations, and gpu_count. The SDK and dashboard show estimates before you submit.

Pricing Model

GPUs Hourly Rate Speedup
1 ~$0.50/hr 1.0x
2 ~$1.00/hr 1.7x
4 ~$2.00/hr 2.9x

How It's Calculated

iter_time = 4.4s × (num_envs / 4096) / gpu_speedup
task_hours = (max_iterations × iter_time / 3600) + startup_overhead
task_cost  = task_hours × gpu_count × $0.50/hr
total_cost = task_cost × num_tasks
  • Base: 4.4 seconds per iteration on RTX 4090 with 4096 envs
  • Startup overhead: ~2 minutes (Isaac Sim boot + environment init)
  • GPU speedup: 1.0x (1 GPU), 1.7x (2 GPU), 2.9x (4 GPU)

Estimate from Python

from canard.models import TrainingConfig

config = TrainingConfig(
    task_name="Template-Go2-Standing-Direct-v0",
    num_envs=8192,
    max_iterations=5000,
    gpu_count=2,
)

est = config.estimate_cost(total_tasks=1)
print(f"Iter time:   {est['iter_sec']:.1f}s")
print(f"Task time:   {est['task_time_hr']:.1f} hr")
print(f"Hourly rate: ${est['hourly_rate']:.2f}")
print(f"Task cost:   ${est['task_cost']:.2f}")

For a sweep:

est = config.estimate_cost(total_tasks=12)
print(f"Per task:  ${est['task_cost']:.2f}")
print(f"Total:     ${est['total_cost']:.2f}")
print(f"Wall time: ~{est['wall_time_hr']:.1f} hr (parallel)")

Examples

Config Time Cost
5000 iter, 4096 envs, 1 GPU ~6.1 hr ~$3.09
5000 iter, 4096 envs, 2 GPU ~3.6 hr ~$3.63
5000 iter, 8192 envs, 2 GPU ~7.2 hr ~$7.23
5000 iter, 4096 envs, 4 GPU ~2.1 hr ~$4.26
12-task sweep, 8192 envs, 2 GPU ~7.2 hr wall ~$86.76

Tips

  • More GPUs = faster but slightly more expensive per run (sublinear speedup, linear cost)
  • num_envs scales linearly with time — 8192 takes 2x longer than 4096
  • Spot pricing fluctuates — these are estimates based on typical rates
  • The dashboard shows estimates before you click "Start Training"