본문 바로가기

Docker

[docker-compose] NVIDIA GPU 사용하기

728x90

docker-compose 로 Docker 서비스를 구성할 때 NVIDIA GPU를 접근하는 방법에 대해 설명합니다.

사전필요사항

아래 내용을 진행하기 위해서는 다음사항이 준비되어야합니다.

  • NVIDIA GPU Driver 설치
  • NVIDIA-CONTAINER-RUNTIME 설치

참고로, Docker 데몬의 기본 런타임을 nvidia로 설정하면 아래 내용이 불필요할 수 있습니다.

runtime 사용 (v1.27.0 이상)

Docker Compose v1.27.0 이상 버전부터는 2.x과 3.x 버전의 Compose 파일 스펙을 병합하여 지원하게 됩니다.

따라서 예전 v2.3에서 지원했던 runtime을 다시 사용할 수 있습니다.

다만, GPU 장치의 상세 설정은 불가능합니다.

services:
  test:
    image: nvidia/cuda:10.2-base
    command: nvidia-smi
    runtime: nvidia

device 사용 (v1.28.0 이상)

Docker Compose v1.28.0 이상부터는 device 구조를 정의해서 GPU를 사용할 수 있게 합니다.

  • capabilities : GPU에서 사용할 기능 문자열 (예: gpu, utility 등)
  • count : 예약할 GPU 장치 번호 또는 all
  • device_ids : 예약할 GPU 장치 ID 문자열
  • driver : 장치 드라이버 (예: nvidia)
  • options : 키-값 쌍의 드라이버 특정옵션

여기서 capabilities는 필히 설정해야하며, count나 device_ids 둘중 하나를 사용해야합니다.

services:
  test:
    image: nvidia/cuda:10.2-base
    command: nvidia-smi
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: 1
            capabilities: [gpu, utility]

 

반응형