No items found.
Start Building
Announcement

Packet.ai + SkyPilot: Run ML Workloads with One Command (Alpha)

Native SkyPilot integration for packet.ai: <code>sky launch --cloud packet --gpus H100:1 train.yaml</code>. Same YAML, multi-cloud fallback, auto-stop, H100 from $0.65/hr.

Author photo
packet.ai Team
January 31, 2025

packet.ai now has a native SkyPilot cloud provider, letting you run ML workloads with sky launch --cloud packet using the same YAML files you already use for AWS, GCP, or Lambda Labs.

Key takeaways

  • packet.ai is now a supported SkyPilot cloud provider. One config change, and your existing SkyPilot YAML files run on NVIDIA A100, L40S, and B200 hardware.
  • Authentication uses a standard packet.ai API key and region - the same credentials you use for the dashboard and REST API.
  • packet.ai's pricing model applies in full: Dynamic capacity from $0.66/GPU-hr (RTX 6000 Pro) or $3.75/GPU-hr (B200), Dedicated single-tenant from $0.92/GPU-hr (L40S). SkyPilot spot mode maps to Dynamic, on-demand maps to Dedicated.
  • The integration is in alpha. Multi-region failover and managed spot recovery are available now. Cluster autoscaling is on the roadmap.

What This Integration Does

SkyPilot is a framework for running ML jobs across cloud providers without rewriting your launch scripts for each one. You write a task YAML once, and SkyPilot handles provisioning, SSH, file sync, and multi-node orchestration - regardless of which cloud you are targeting.

Adding packet.ai as a provider means your existing SkyPilot jobs can run on packet.ai hardware. If you are already using SkyPilot for jobs on Lambda, AWS, or RunPod, you can point the same YAML at packet.ai, take advantage of the lower pricing, and switch back if you need to.

The integration works by implementing the SkyPilot Cloud API for packet.ai's GPU fleet. SkyPilot calls the standard API surface - instance listing, provisioning, SSH key injection, status polling, teardown - and packet.ai handles the underlying hardware allocation.

Current Status: Alpha

The integration is in alpha as of this post. What works today:

  • Single-node GPU jobs on any packet.ai GPU SKU (A100, L40S, B200, RTX 6000 Pro)
  • Multi-node jobs using SkyPilot's cluster abstraction
  • Spot mode (maps to Dynamic capacity) and on-demand mode (maps to Dedicated capacity)
  • File sync, SSH access, and log streaming
  • Managed spot recovery: SkyPilot automatically restarts checkpointed jobs on interruption
  • Multi-cloud failover: point SkyPilot at multiple clouds including packet.ai, and it picks the cheapest available option

What is coming:

  • Cluster autoscaling (on the roadmap)
  • Native support for packet.ai persistent storage in SkyPilot volume mounts
  • SkyPilot Managed Jobs dashboard integration

Configuration

To add packet.ai to SkyPilot, add the following block to your ~/.sky/config.yaml:

packet:
  api_key: <your-packet-ai-api-key>
  region: us-east  # or eu-central

Your API key is available in the packet.ai dashboard under API Settings. Region options are us-east (Virginia), us-west (California), us-central (Texas), and eu-central (Frankfurt). Additional EU regions are supported - check the dashboard for current availability.

Once configured, launch a job the same way you would on any other SkyPilot cloud:

sky launch --cloud packet task.yaml

Or use packet.ai as a fallback in a multi-cloud job:

sky launch --cloud aws,packet,lambda task.yaml

SkyPilot will pick the cheapest available option across all three clouds for each launch.

Mapping SkyPilot Concepts to packet.ai Tiers

SkyPilot distinguishes between spot (preemptible) and on-demand instances. packet.ai maps these to its two capacity tiers:

  • Spot mode in SkyPilot maps to Dynamic capacity on packet.ai. Dynamic capacity gives you the same GPU silicon at a lower hourly rate, scheduled dynamically. SkyPilot's managed spot recovery handles automatic restarts on interruption.
  • On-demand mode in SkyPilot maps to Dedicated capacity on packet.ai. Dedicated pins the hardware to you for the duration of the job. No interruptions, no preemption.

This means a SkyPilot job written for AWS Spot will work correctly on packet.ai Dynamic capacity without modification, including checkpoint recovery if the job is interrupted.

Pricing Through SkyPilot

packet.ai's standard pricing applies when you launch through SkyPilot. No markup, no SkyPilot premium. What you see in the packet.ai pricing page is what you pay.

  • RTX 6000 Pro (Dynamic): $0.66/GPU-hr
  • L40S (Dedicated): $0.92/GPU-hr
  • A100 80GB (Dedicated): $1.43/GPU-hr
  • B200 (Dynamic): $3.75/GPU-hr

SkyPilot's cost reporting and sky cost-report command reflect actual packet.ai charges based on the hourly rates above.

Known Limitations

  • Autoscaling is not yet supported. Cluster size is fixed at launch time.
  • SkyPilot volume mounts do not yet integrate with packet.ai persistent storage. Use rsync or the packet.ai storage API for data transfers in the interim.
  • Multi-region jobs that span both US and EU regions require explicit region pinning in the YAML. Cross-region auto-selection is on the roadmap.

Feedback

This is an alpha release. If you hit issues, email help@packet.ai with "SkyPilot" in the subject line. Bug reports, feature requests, and edge cases all help. Spot recovery and automatic checkpoint restart are highest-priority items for the next release, based on early user feedback.

Waste less compute.

Same models. Same API. Fraction of the cost. Start free — no credit card required.

Start Building →

More from the blog