---
url: /en/build/build-node.md
---
When using cloud-native builds, you are essentially distributing build tasks to various `build nodes` for execution.\
These nodes perform build tasks using a specified Docker image as the build environment.

## Configuration Method

In the pipeline configuration, you can specify the `pipeline.runner.tags` property to select different build nodes.\
By specifying the `pipeline.runner.cpus` property, you can configure the maximum number of `CPU` cores to be used.

The official available `tags` is as follows:

1. `cnb:arch:amd64`
   * The `CPU` with the `amd64` architecture.
   * The `runner.cpus` can be configured in the range of 1 to 64, with a default value of 8.
   * `Cloud-Native Build - Maximum Available Time` 20 hours.
   * `Cloud-Native Development - Maximum Available Time` 18 hours.
2. `cnb:arch:arm64:v8`
   * The `CPU` with the `arm64/v8` architecture.
   * The `runner.cpus` can be configured in the range of 1 to 16, with a default value of 8.
   * `Cloud-Native Build - Maximum Available Time` 20 hours.
   * `Cloud-Native Development - Maximum Available Time` 18 hours.
3. `cnb:arch:amd64:gpu`
   * The `CPU` with the `amd64` architecture.
   * The `runner.cpus` is fixed at 16.
   * The `GPU` memory has a maximum of 48GB, operating in shared mode.
   * `Cloud-Native Build - Maximum Available Time` 4 hours
   * `Cloud-Native Development - Maximum Available Time` 4 hours
4. `cnb:arch:amd64:gpu:H20` -- Not recommended, as H20 has been discontinued
   * The `CPU` with the `amd64` architecture.
   * The `runner.cpus` is fixed at 32.
   * The `GPU` memory has a maximum of 96GB, operating in shared mode.
   * `Cloud-Native Build - Maximum Available Time` 4 hours.
   * `Cloud-Native Development - Maximum Available Time` 4 hours.
5. `cnb:arch:amd64:gpu:L40`
   * The `CPU` with the `amd64` architecture.
   * The `runner.cpus` is fixed at 16.
   * The `GPU` memory has a maximum of 48GB, operating in shared mode.
   * `Cloud-Native Build - Maximum Available Time` 4 hours.
   * `Cloud-Native Development - Maximum Available Time` 4 hours.

Example:

```yaml
main:
  push:
    - runner:
        # Execute on amd64 build node
        tags: cnb:arch:amd64
        cpus: 8
      stages:
        - name: uname
          script: uname -a

    - runner:
        # Execute on arm64/v8 build node
        tags: cnb:arch:arm64:v8
        cpus: 8
      stages:
        - name: uname
          script: uname -a

$:
  vscode:
    - runner:
        # Start a remote development environment with GPU access
        tags: cnb:arch:amd64:gpu
      services:
        - vscode
```
