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.
The runner key was previously named agent. If your config still uses
agent, rename it to 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
RWX reserves 2 GB RAM for internal use on runners. For example, if you declare that your task needs a 4 CPU, 16 GB RAM runner, your task will have 14 GB RAM available.
General purpose
| CPUs | Memory |
|---|---|
| 2 | 8gb |
| 4 | 16gb |
| 8 | 32gb |
| 16 | 64gb |
| 32 | 128gb |
| 64 | 256gb |
Compute optimized
| CPUs | Memory |
|---|---|
| 2 | 4gb |
| 4 | 8gb |
| 8 | 16gb |
| 16 | 32gb |
| 32 | 64gb |
Memory optimized
| CPUs | Memory |
|---|---|
| 2 | 16gb |
| 4 | 32gb |
| 8 | 64gb |
| 16 | 128gb |
| 32 | 256gb |
| 48 | 384gb |
| 64 | 512gb |
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.