InfoGrab Docs

그래픽 처리 장치(GPU) 사용

요약

GitLab Runner는 그래픽 처리 장치(GPU) 사용을 지원합니다. 컨테이너 런타임 엔진으로 Podman을 사용하는 경우 GPU가 감지되지 않습니다. runners.docker 섹션의 gpus 또는 service_gpus 구성 옵션을 사용하세요:

히스토리
  • GitLab Runner 13.9에서 도입되었습니다.

GitLab Runner는 그래픽 처리 장치(GPU) 사용을 지원합니다. 다음 섹션에서는 다양한 실행자에 대해 GPU를 활성화하는 데 필요한 구성을 설명합니다.

Shell 실행자#

러너 구성이 필요하지 않습니다.

Docker 실행자#

Warning

컨테이너 런타임 엔진으로 Podman을 사용하는 경우 GPU가 감지되지 않습니다. 자세한 내용은 이슈 39095를 참조하세요.

사전 요건:

runners.docker 섹션gpus 또는 service_gpus 구성 옵션을 사용하세요:

[runners.docker]
    gpus = "all"
    service_gpus = "all"

Docker Machine 실행자#

Docker Machine의 GitLab 포크 문서를 참조하세요.

Kubernetes 실행자#

사전 요건:

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

작업 요구 사항에 따라 requestslimits의 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.

그래픽 처리 장치(GPU) 사용

Tier: Free, Premium, Ultimate
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 실행자#

Warning

컨테이너 런타임 엔진으로 Podman을 사용하는 경우 GPU가 감지되지 않습니다. 자세한 내용은 이슈 39095를 참조하세요.

사전 요건:

runners.docker 섹션gpus 또는 service_gpus 구성 옵션을 사용하세요:

[runners.docker]
    gpus = "all"
    service_gpus = "all"

Docker Machine 실행자#

Docker Machine의 GitLab 포크 문서를 참조하세요.

Kubernetes 실행자#

사전 요건:

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

작업 요구 사항에 따라 requestslimits의 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.