그래픽 처리 장치(GPU) 사용
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab Runner는 그래픽 처리 장치(GPU) 사용을 지원합니다. 컨테이너 런타임 엔진으로 Podman을 사용하는 경우 GPU가 감지되지 않습니다. runners.docker 섹션의 gpus 또는 service_gpus 구성 옵션을 사용하세요:
히스토리
- GitLab Runner 13.9에서 도입되었습니다.
GitLab Runner는 그래픽 처리 장치(GPU) 사용을 지원합니다. 다음 섹션에서는 다양한 실행자에 대해 GPU를 활성화하는 데 필요한 구성을 설명합니다.
Shell 실행자#
러너 구성이 필요하지 않습니다.
Docker 실행자#
컨테이너 런타임 엔진으로 Podman을 사용하는 경우 GPU가 감지되지 않습니다. 자세한 내용은 이슈 39095를 참조하세요.
사전 요건:
runners.docker 섹션의 gpus 또는 service_gpus 구성 옵션을 사용하세요:
[runners.docker]
gpus = "all"
service_gpus = "all"
Docker Machine 실행자#
Docker Machine의 GitLab 포크 문서를 참조하세요.
Kubernetes 실행자#
사전 요건:
- 노드 선택기가 GPU를 지원하는 노드를 선택하도록 설정하세요.
FF_USE_ADVANCED_POD_SPEC_CONFIGURATION기능 플래그를 활성화하세요.
GPU 지원을 활성화하려면 파드 명세에서 GPU 리소스를 요청하도록 러너를 구성하세요. 예:
[[runners.kubernetes.pod_spec]]
name = "gpu"
patch = '''
containers:
- name: build
resources:
requests:
nvidia.com/gpu: 1
limits:
nvidia.com/gpu: 1
'''
patch_type = "strategic" # <--- `strategic` patch_type
작업 요구 사항에 따라 requests와 limits의 GPU 수를 조정하세요.
GitLab Runner는 GPU 활성화 인스턴스와 함께 Amazon Elastic Kubernetes Service에서 테스트되었습니다.
GPU 활성화 확인#
NVIDIA GPU가 있는 러너를 사용할 수 있습니다. NVIDIA GPU의 경우,
CI 작업에 GPU가 활성화되어 있는지 확인하는 방법 중 하나는 스크립트 시작 시 nvidia-smi를 실행하는 것입니다. 예:
train:
script:
- nvidia-smi
GPU가 활성화된 경우 nvidia-smi 출력에 사용 가능한 장치가 표시됩니다. 다음 예시에서는 단일 NVIDIA Tesla P4가 활성화되어 있습니다:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla P4 Off | 00000000:00:04.0 Off | 0 |
| N/A 43C P0 22W / 75W | 0MiB / 7611MiB | 3% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
하드웨어가 GPU를 지원하지 않으면 nvidia-smi는 누락되었거나 드라이버와 통신할 수 없기 때문에 실패합니다:
modprobe: ERROR: could not insert 'nvidia': No such device
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
