TechCompare LogoTechCompare

Ubicloud runner benchmarks with premium routing explained

Both Ubicloud labels in this snapshot request two vCPUs. The x64 guest reports Ryzen 9 7950X3D even though the label contains standard. Ubicloud documents account-level premium routing that keeps those workflow labels, which explains the apparent mismatch. The ARM guest reports only aarch64 and maps to Ampere Altra Q80-30 through Ubicloud's documentation.

By TechCompare · Updated

Measured configurations
2
CPU execution threads
1
Five accepted samples per runner

Use current documentation for the rates

Ubicloud's detailed pricing reference lists two-vCPU premium x64 at $0.002 per minute and two-vCPU standard x64 or ARM at $0.00125. Those normalize to $0.001 and $0.000625 per vCPU-minute. The detailed reference is used here because older or summary marketing prices can differ. The table links directly to the rate source and records when it was checked.

vCPU doesn't always mean a physical core

Ubicloud says each ARM vCPU is a dedicated physical core, while each pair of standard x64 vCPUs corresponds to one physical core. The runner size ladder reaches 30 vCPUs. That is the largest listed runner size, not the host CPU's total core count. The supplied single thread measurements don't establish how a 30-vCPU workflow scales or how many parallel workers a specific build should use.

Calculator

GitHub Actions runner CPU models, single thread CPU scores, disk, cache, and internet scores, and value per USD compute cost. Missing tests have no score.
RunnerCPUSingle threadCPU valueDiskCacheInternetCost/vCPU/minUSDMax vCPU
Ubicloud Linux x64

AMD Ryzen 9 7950X3D 16-Core

33,393
33.4M/USD
243.7
48.5
1,104.1
0.00130
Ubicloud Linux arm64

Ampere Altra Q80-30

21,630
34.6M/USD
80.6
50.8
670.4
0.000630

Single thread CPU: CoreMark iterations/s. Disk and cache: composite MiB/s. Internet: composite Mbps. Value: score ÷ USD cost/vCPU/min. K means thousand, M means million. Higher is better. Cache uses each runner's best tested cache or artifact backend. Limits: maximum runner vCPU. Prices and value use USD. RunJob's EUR rate is converted at €1 = $1.1206 (ECB, 2026-10-09).

Open the full GitHub Actions runner benchmark tool

Measurement context

The x64 price uses the premium rate that matches the reported Ryzen hardware. Standard EPYC fallback has a different price. The ARM price uses the ARM rate. These mappings preserve the measured hardware rather than assuming that the word standard in a workflow label fixes the processor family.

Verdict

Verify account-level premium settings when reproducing this test. A label can stay the same while the actual hardware and rate change. Read the raw CPU string, the runner family note, and the provider documentation together.

More runner benchmark scenarios

Frequently asked questions

Are these independent GitHub Actions runner benchmarks?
TechCompare publishes measurements from its own runner benchmark suite. The results come from the supplied published reports, while provider documentation supplies hardware mappings, prices, and available sizes. Scores from provider marketing pages aren't used as test results.
Does a CoreMark score predict my build time?
No. CoreMark is a CPU microbenchmark running one execution thread. A full build also depends on parallelism, memory, disk, dependencies, cache behavior, and queue time. This snapshot doesn't measure complete application builds or queue delays.
How are disk, cache, and internet scores calculated?
Each score is a geometric mean of that runner's own measurements. Disk combines sequential read/write MiB/s with random read/write IOPS converted to MiB/s using the 4 KiB operation size. Cache combines save and restore MiB/s from one backend. By default, each runner uses its highest verified score across tested cache and artifact backends. Hover or open details to see the backend, or select a specific backend type. Internet combines available download and upload Mbps, or uses the single recorded direction. Protocol 7 reports speeds from actual payload bytes and elapsed time, including transfers that reach the time limit. Older timeout records use recorded bytes divided by the nominal limit. These fixed formulas have no ranking reference or upper score limit, so adding a faster runner doesn't change existing scores. CPU keeps its measured CoreMark iterations per second.
How is price per minute per vCPU calculated?
A fixed runner's quoted minute rate is divided by its billed vCPU count. Prices are shown in USD and are list or overage rates before allowances and extras. RunJob publishes EUR consumed CPU rates, which are converted using the dated ECB reference rate shown on the page. Its original rate stays in the details, and memory charges are additional. GitHub uses private standard rates, and Namespace shows overage with prepaid equivalents.
What does CPU value mean?
CPU value is the measured single thread CoreMark score divided by the USD cost per vCPU per minute. More billed vCPUs don't multiply the measured score. EUR compute rates are converted before calculating value, so every provider is in one USD ranking. K means thousand and M means million. Optional disk, cache, and internet value columns use the same score divided by rate formula. These ratios don't measure full build performance or predict the final bill.
Why is an exact CPU model sometimes missing?
Some virtual machines expose only AMD EPYC or aarch64. The table uses a provider mapping where documentation identifies a family, labels that evidence, and leaves undisclosed model numbers unconfirmed. Similar benchmark scores aren't enough to identify a processor.
Are missing tests counted as zero?
No. Internet transfers with a nonzero recorded byte count can supply a speed even if they reach the time limit. A blocked request or a timeout with no recorded bytes stays unscored. Disk uses verified sample medians with all four throughput components. The updated BuildPulse ARM disk result is included using its three completed samples, with the original counts in the details. Cache requires all three verified save and restore pairs. The table shows a dash when no score is available. Hover or open the row details to inspect the measurements.