Runner

By default, RWX runs tasks on runners with 2 CPUs, 8 GB memory, and 50 GB disks. You can customize the hardware with the runner key on your task.

The configuration for the runner only applies to that specific task. That means you can use up to 64 CPUs and 256 GB RAM for CPU or memory intensive tasks (like compiling) and then run less intensive tasks (like uploading your binaries) on a smaller runner.

Example

Here is a task that runs on a 64 CPU 256 GB memory runner and prints the number of CPUs and amount of memory available:

tasks:
  - key: show-cpu-and-memory
    run: |
      nproc
      grep MemTotal /proc/meminfo
    runner:
      cpus: 64
      memory: 256gb

Supported specifications

General purpose

CPUsMemory
28gb
416gb
832gb
1664gb
32128gb
64256gb

Compute optimized

CPUsMemory
24gb
48gb
816gb
1632gb
3264gb

Memory optimized

CPUsMemory
216gb
432gb
864gb
16128gb
32256gb
48384gb
64512gb

Flexible CPU and memory

If you only specify one of cpus or memory, RWX will use the lowest cost runner available with the desired number of CPUs or amount of memory.

For example, specifying 4 CPUs will run a 4 CPU 8 GB memory runner:

runner:
  cpus: 4

Whereas specifying only 32gb of memory will run a 4 CPU 32 GB memory runner:

runner:
  memory: 32gb

Disks

By default, RWX runs tasks with 50 GB disks. You can increase this in 50 GB increments by specifying the disk key on runner:

runner:
  disk: 100gb

You can specify disk in conjunction with any of the options for cpus and memory`.

Static IPs

Static IPs are available upon request.

They will be configured on a vault, and you can configure tasks to use them by defining static-ips under runner.

tasks:
  - key: check-ip
    run: curl -s "http://checkip.amazonaws.com"
    runner:
      static-ips: ${{ vaults.default.static-ips }}

GPUs

Runners with attached NVIDIA GPUs are available upon request.

To use a GPU-powered runner, set gpu on runner to the appropriate GPU:

runner:
  gpu: nvidia-h100
  cpus: 16
  memory: 256gb

The following GPUs are currently supported:

GPU
nvidia-h100
nvidia-a10
nvidia-l4

Nested virtualization

If you need to run a VM inside of an RWX task (for example, to test on an Android emulator or to test an application which relies on Firecracker or QEMU), you can set nested-virtualization on runner:

runner:
  nested-virtualization: true

When nested-virtualization is true, /dev/kvm will be available inside the task.

Nested virtualization is only available for general purpose x86_64 runners.

Default specification

You can specify the default runner specification for a run or embedded run with the defaults key. The default specification will be applied to all tasks within the run (but not to tasks within embedded runs in the run).

defaults:
  runner:
    cpus: 4
    memory: 16gb

tasks:
  # This task will use 4 cpus and 16GB of memory
  - key: task-1
    run: grep MemTotal /proc/meminfo

  # This task will override the default and therefore use 2 cpus and 8GB of memory
  - key: task-2
    runner:
      cpus: 2
      memory: 8gb
    run: grep MemTotal /proc/meminfo

Pricing

See the pricing reference.