Documentation structure for LLMs (llms.txt)

Using the Arm VM execution environment

Cloud Server

You can access the Arm VM (virtual machine) execution environment for a job by using the machine executor and specifying a Linux virtual machine image that includes Arm resources. You then specify an Arm resource class.

  • Cloud

  • Server

# .circleci/config.yml
jobs:
  my-job:
    machine:
      image: ubuntu-2404:current
    resource_class: arm.medium
    steps:
      - run: uname -a
      - run: echo "Hello, Arm!"
# .circleci/config.yml
jobs:
  my-job:
    machine:
      image: arm-default
    resource_class: arm.medium
    steps:
      - run: uname -a
      - run: echo "Hello, Arm!"

Available resource classes

The following Arm resources are available as part of the machine executor:

Gen1

Class vCPUs RAM Disk Size Cloud Server

arm.medium (default)

2

8GB

100 GB

Yes

Yes

arm.large

4

16GB

100 GB

Yes

Yes

arm.xlarge

8

32GB

100 GB

Yes

Yes

arm.2xlarge

16

64GB

100 GB

Yes

Yes

Using server? Check with your systems administrator whether you have access to the Arm execution environment.

Gen2 Beta

Arm gen2 for the machine executor is currently in beta. Performance and pricing are tentative and may change when this feature becomes generally available.
Class vCPUs RAM Disk Size Cloud Server

arm.medium.gen2

2

8GB

100 GB

Yes

No

arm.large.gen2

4

16GB

100 GB

Yes

No

arm.xlarge.gen2

8

32GB

100 GB

Yes

No

arm.2xlarge.gen2

16

64GB

100 GB

Yes

No

For pricing and plans information, see the resource class pricing overview.

View resource usage

To view the compute resource usage for the duration of a job in the CircleCI web app:

  1. In the CircleCI web app, select your org from the org cards on your user homepage.

  2. Select Pipelines from the sidebar and locate your pipeline from the list. You can use the project, branch, date, and status search options to help.

  3. Select the job you want to access by selecting the job name.

  4. Select the Resources tab to view CPU and RAM usage for the duration of the job.

You can use these insights to decide whether to make changes to the job’s configured resource class.

Resources tab
Figure 1. Resources tab in web app for a job

Arm VM generations

Gen2 Beta

Resource classes running on gen2 infrastructure offer significant performance and cost improvements over their gen1 equivalents.

Performance improvements

Using more modern compute, gen2 instances deliver up to 73% faster performance compared to gen1 equivalents, based on benchmarks measured during the beta period. Actual performance gains depend on your specific workloads, and this figure may change when Arm gen2 becomes generally available.

Using gen2

To use a gen2 resource class, specify an arm.large.gen2 or equivalent class in your job configuration:

# .circleci/config.yml
jobs:
  my-job:
    machine:
      image: ubuntu-2404:current
    resource_class: arm.large.gen2
    steps:
      - run: uname -a
      - run: echo "Hello, Arm!"
Gen2 resource classes for the Arm VM execution environment are available on CircleCI Cloud only.

Images with Arm support

Arm resources are accessible by using the machine executor when using one of the following images:

Gen1

Ubuntu 20.04 - focal

  • ubuntu-2004:current - most recent, recommended for all users.

  • ubuntu-2004:2023.07.1

  • ubuntu-2004:2023.04.2

  • ubuntu-2004:2023.02.1

  • ubuntu-2004:2022.10.1

  • ubuntu-2004:2022.07.1

  • ubuntu-2004:2022.04.1

  • ubuntu-2004:202201-02

  • ubuntu-2004:202201-01

  • ubuntu-2004:202111-02

  • ubuntu-2004:202111-01

  • ubuntu-2004:202107-01

  • ubuntu-2004:202104-01

  • ubuntu-2004:202101-01

  • ubuntu-2004:202011-01 - deprecated as of Feb 3, 2021.

Ubuntu 22.04 - jammy

  • ubuntu-2204:current - most recent, recommended for all users.

  • ubuntu-2204:2023.07.1

  • ubuntu-2204:2023.04.2

  • ubuntu-2204:2023.02.1

  • ubuntu-2204:2022.10.2

  • ubuntu-2204:2022.07.2

Gen2 Beta

Arm gen2 resource classes are only supported on the following images and tags:

  • ubuntu-2404:current

  • ubuntu-2404:edge

  • ubuntu-2604:current

  • ubuntu-2604:edge

For a full list of machine executor images, see the CircleCI Developer Hub. And for announcements about image updates, see CircleCI Discuss.

Limitations

  • CircleCI supports only 64-bit arm64 architectures.

  • In CircleCI Server, Arm resources are only available when using the EC2 provider for VM service or machine provisioner. No Arm instances are available in GCP.

  • If you run into issues with orbs, or if there is software you require that is not available in the image, submit a feature request.

Arm on Docker

For further information on using Arm with the Docker execution environment, see the Using the Docker Execution Environment page.