[CI] [GHA] [DOCS] Add section on GPU (#24678)

### Tickets:
 - *140542*
This commit is contained in:
Andrei Kashchikhin 2024-05-28 11:52:53 +01:00 committed by GitHub
parent 31fccc801f
commit 1fe36a26c8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 53 additions and 2 deletions

View File

@ -274,7 +274,7 @@ You can run jobs in Docker containers.
Refer to [the documentation for syntax overview](https://docs.github.com/en/actions/using-jobs/running-jobs-in-a-container).
Workflows utilize appropriate Docker images based on their jobs' needs. Learn more about the
available images and how to choose one in the [hOpenVINO Docker Image Overview](./docker_images.md).
available images and how to choose one in the [OpenVINO Docker Image Overview](./docker_images.md).
## Caches

View File

@ -38,7 +38,14 @@ OpenVINO repositories make use of the following runners:
## Available Self-hosted Runners
The self-hosted runners are dynamically spawned for each requested pipeline.
Two groups of self-hosted runners are available:
* Dynamically-spawned Linux and Windows runners with CPU-only capabilities
* Dedicated Linux runners with GPU capabilities
### Dynamically-spawned Linux and Windows Runners
These self-hosted runners are dynamically spawned for each requested pipeline.
Several configurations are available, which are identified by different group names.
The group names generally follow the pattern:
`aks-{OS}-{CORES_N}-cores-|{RAM_SIZE}gb|-|{ARCH}|`, where:
@ -65,6 +72,50 @@ The available configurations are:
* `*` - Not specified in the group name
### Dedicated GPU Runners
Eighteen runners with GPU capabilities (both integrated and discrete, iGPU and dGPU)
are available to all repositories in the OpenVINO organisation's GitHub Actions.
These runners are virtual machines with Ubuntu 22.04 and have the following specifications:
* CPU: i9-12900k
* All of them have iGPU (UHD 770 Graphics)
* Twelve of them have iGPU (UHD 770 Graphics) and dGPU (Arc A770)
These runners may be selected using labels provided in the `runs-on` field in a job configuration.
The available labels are:
* `gpu` - encapsulates all the 18 runners
* `igpu` - encapsulates all the 18 runners as all of them have iGPU
* `dgpu` - encapsulates 12 runners that have dGPU
Here is an example, a `GPU Tests` job that uses the `gpu` label and runs on any available GPU runner:
```yaml
GPU:
name: GPU Tests
needs: [ Build, Smart_CI ]
runs-on: [ self-hosted, gpu ]
container:
image: ubuntu:20.04
options: --device /dev/dri:/dev/dri --group-add 109 --group-add 44
volumes:
- /dev/dri:/dev/dri
...
```
If, for example, a job requires a dGPU, it should use the `dgpu` label, instead:
```yaml
GPU:
name: GPU Tests
needs: [ Build, Smart_CI ]
runs-on: [ self-hosted, dgpu ]
...
```
**NOTE**: as these are persistent runners, Docker should be used for the jobs that utilise the GPU runners.
Learn more about the
available images and how to choose one in the [OpenVINO Docker Image Overview](./docker_images.md).
## How to Choose a Runner
The configuration of a runner required for a job (building, testing, other tasks) depends on the