Skip to content

Frequently Asked Questions

This page addresses common questions about Machine, its features, pricing, and usage patterns. If you don’t find an answer to your question here, please reach out to our support team or join our Discord community.

General Questions

What is Machine?

Machine is a SaaS platform that provides high-performance CPU and GPU runners for GitHub Actions workflows. It allows you to run compute-intensive workloads, machine learning tasks, and large builds directly in your GitHub Actions CI/CD pipeline without managing infrastructure.

How does Machine differ from other GPU cloud providers?

Unlike traditional cloud providers that require setting up and managing infrastructure, Machine integrates directly with GitHub Actions. This eliminates the need for separate accounts, billing systems, and infrastructure management. You can seamlessly add GPU acceleration to your existing GitHub workflows without any DevOps overhead.

What types of workloads are best suited for Machine?

Machine is optimized for:

  • Training and fine-tuning machine learning models
  • Running inference at scale
  • Processing large datasets with CPU or GPU acceleration
  • Large-scale builds and compilation
  • Parallel testing and CI/CD pipelines
  • Computer vision and image processing
  • Language model training and evaluation
  • Hyperparameter tuning
  • Data processing and ETL pipelines

Can I use Machine with private repositories?

Yes, Machine supports both public and private GitHub repositories. Your code and data remain secure and are only accessible within your workflow.

Getting Started

How do I sign up for Machine?

  1. Visit machine.dev and join the waitlist
  2. You’ll typically receive an invitation within 48 hours
  3. Once accepted, log in with your GitHub account
  4. Install the Machine Provisioner GitHub App to your account or organization
  5. Select the repositories you want to enable Machine for
  6. Start using high-performance runners in your workflows
  7. Early access users receive 2000 free GPU credits (approximately 33 hours of GPU time)

Do I need to install anything to use Machine?

No. Machine is a cloud service that requires no installation. Simply specify the machine runner in your GitHub Actions workflow YAML file, and Machine will automatically provision the GPU resources when your workflow runs.

How quickly are GPU runners provisioned?

Most GPU runners are provisioned within 1 minute of your workflow being triggered. The exact time depends on current demand and region availability.

Technical Questions

What compute resources does Machine offer?

CPU Runners:

  • Flexible configurations from 2 to 64 vCPUs
  • RAM from 4GB to 128GB
  • Both X64 (Intel/AMD) and ARM64 (Graviton) architectures
  • Optimized for builds, testing, and data processing

GPU Runners: Machine offers a comprehensive range of NVIDIA GPUs:

  • T4G (16GB VRAM) - ARM64, entry-level ML
  • T4 (16GB VRAM) - General-purpose ML
  • L4 (24GB VRAM) - Balanced training/inference
  • A10G (24GB VRAM) - Advanced training
  • L40S (48GB VRAM) - Large model training

AI Accelerators:

  • TRAINIUM (32GB) - High-performance training
  • INFERENTIA2 (32GB) - Optimized inference

Can I use a specific CUDA or driver version?

Yes, you can install any version of CUDA on Machine runners without limitations. Machine runners provide you with complete freedom to customize your software environment to match your exact requirements.

Are there limitations on network access or outbound connections?

Machine runners have full outbound internet access, allowing you to download datasets, models, or dependencies. However, there are some restrictions:

  • Only common outbound ports are accessible (80, 443, etc.)

Can I install custom software on the runners?

Yes, you can install any software you want on Machine runners without limits. The runners provide full root access, allowing you to customize the environment with any tools, libraries, or dependencies your workflow requires.

How long can my jobs run?

Jobs can run for up to 5 days of execution time, as per GitHub Actions limits for self-hosted runners. If a job reaches this limit, it will be terminated and fail to complete. Additionally, entire workflow runs are limited to 35 days, including execution, waiting, and approval time.

For long-running workloads, we still recommend:

  • Breaking your job into smaller steps when practical
  • Implementing checkpointing to resume from interruptions
  • Using persistent storage options for checkpoints

Can I run multiple GPUs in a single job?

Currently, Machine supports single GPU configurations for most users. For specialized multi-GPU needs, reach out to our support team to discuss your requirements.

What operating system do the runners use?

All Machine runners use Ubuntu 22.04 LTS as the base operating system, with optimized drivers and libraries for machine learning workloads.

Pricing and Billing

How is Machine billed?

Machine uses a credit-based system where you pay only for what you use. Credits are consumed based on the GPU type, runtime duration, additional resources (CPU, RAM), and instance type (on-demand vs. spot). One credit is worth $0.005 at the base rate.

What plans are available?

Machine offers flexible pricing options:

  • One-Time Credit Bundle: $20 for 4,000 credits (no commitment, credits never expire)
  • Developer Plan: $50/month for 11,000 credits (10% bonus - pay $50, get $55 worth)
  • Growth Plan: $85/month for 20,000 credits (18% bonus - unlock $100 worth of compute)
  • Pro Plan: $160/month for 40,000 credits (25% bonus - pay $160, get $200 worth)
  • Custom Enterprise Solutions: For teams needing more credits or concurrent machines

All subscription credits roll over and never expire.

Credit Consumption Rates

Credit consumption varies by runner type and configuration. Spot instances provide significant savings (up to 85%) compared to on-demand instances.

GPU Runners:

GPU TypevCPURAMCredits/Min (Spot)Credits/Min (On-Demand)
T4G48GB13
T4416GB24
L4416GB26
A10G416GB37
L40S432GB314

CPU Runners (X64):

vCPURAMCredits/Min (Spot)Credits/Min (On-Demand)
24GB0.51
816GB1.54
1632GB2.57
64128GB4.513

Do credits expire?

No, credits never expire. All credits, whether purchased one-time or included in monthly subscriptions, roll over indefinitely until used.

Do I pay for provisioning time?

No, you only pay for the time your job is actually running. Provisioning time and teardown time are not billed.

What happens if my job is interrupted when using spot instances?

If your job is interrupted while using spot instances, you will only be billed for the actual runtime up to the point of interruption. We recommend implementing checkpointing in your workflows when using spot instances.

Workflow Configuration

How do I specify a GPU type in my workflow?

Use the runs-on syntax with the machine label and the desired GPU type:

jobs:
train:
runs-on:
- machine
- gpu=A10G
steps:
# Your job steps

Can I use both regular GitHub runners and Machine runners in the same workflow?

Yes, you can mix regular GitHub-hosted runners and Machine GPU runners in different jobs within the same workflow:

jobs:
prepare:
runs-on: ubuntu-latest
# Preparation steps on standard runner
train:
needs: prepare
runs-on:
- machine
- gpu=A10G
# GPU training steps

How can I tell if my job is efficiently using the GPU?

Machine provides GPU monitoring metrics during your job run. You can also use nvidia-smi in your workflow to check GPU utilization:

steps:
- name: Check GPU utilization
run: |
nvidia-smi -l 5 -i 0

What happens if my workflow exceeds the maximum runtime?

Jobs running longer than the maximum allowed runtime will be automatically terminated. The job will be marked as failed in GitHub Actions.

Can I specify regional preferences for my GPU runners?

Yes, you can specify preferred regions for your GPU runners using the regions parameter:

runs-on:
- machine
- gpu=L4
- regions=us-east-1,us-east-2

This allows you to meet data sovereignty requirements or target regions with better availability.

Troubleshooting

My job is failing with an “out of memory” error. What should I do?

If you’re encountering GPU out of memory errors:

  1. Reduce your batch size
  2. Enable gradient checkpointing
  3. Use mixed precision training
  4. Choose a GPU with more memory

My spot instance was terminated before my job completed. How do I handle this?

For spot instances, implement checkpointing in your code:

  1. Save model state regularly
  2. Design your workflow to resume from checkpoints
steps:
- name: Train with checkpoints
run: python train.py --checkpoint-every=10

I’m experiencing slow download/upload speeds. How can I improve this?

To improve data transfer speeds:

  1. Use Hugging Face to store models, checkpoints and datasets when possible
  2. Use compression when uploading/downloading large artifacts
  3. Consider using GitHub’s cache action for frequently used datasets or dependencies
  4. Pre-process and downsample data where possible
  5. Use efficient formats for storing data (e.g., parquet instead of CSV)
  6. Break large uploads/downloads into smaller chunks

How do I optimize my workflow to reduce costs?

To optimize costs on Machine:

  1. Use spot instances whenever possible
  2. Choose the right GPU for your workload (don’t use L40S when L4 would suffice)
  3. Implement efficient checkpointing to recover from interruptions
  4. Use workflow conditionals to only run GPU jobs when necessary
  5. Optimize your code to reduce total runtime
  6. Consider running preparatory and post-processing steps on standard GitHub runners

For more optimization tips, see our Cost Optimization Guide.

Where can I learn more?

To learn more about Machine and how to optimize your workflows: