GPU 사용 컴퓨팅

참고 항목

일부 GPU 사용 인스턴스 형식은 베타 버전이며 컴퓨팅을 만드는 동안 드라이버 및 작업자 유형을 선택할 때 드롭다운 목록에 표시됩니다.

개요

Azure Databricks는 GPU(그래픽 처리 장치)로 가속된 컴퓨팅을 지원합니다. 이 문서에서는 GPU 사용 인스턴스를 사용하여 컴퓨팅을 만드는 방법을 설명하고 해당 인스턴스에 설치된 GPU 드라이버 및 라이브러리에 대해 설명합니다.

GPU 지원 컴퓨팅에 대한 딥 러닝에 대한 자세한 내용은 딥 러닝을 참조하세요.

GPU 컴퓨팅 만들기

GPU 컴퓨팅을 만드는 것은 모든 컴퓨팅을 만드는 것과 비슷합니다. 이때 다음 사항에 유의해야 합니다.

  • Databricks 런타임 버전은 GPU 지원 버전(예: 런타임 13.3 LTS ML(GPU, Scala 2.12.15, Spark 3.4.1)이어야 합니다.
  • 작업자 유형드라이버 형식은 GPU 인스턴스 형식이어야 합니다.

지원되는 인스턴스 유형

Azure Databricks는 다음 인스턴스 유형을 지원합니다.

지원되는 GPU 인스턴스 유형 및 가용성 지역의 최신 목록은 Azure Databricks 가격을 참조하세요. GPU 사용 컴퓨팅을 시작하려면 Azure Databricks 배포가 지원되는 지역에 있어야 합니다.

GPU 예약

Databricks Runtime은 Apache Spark 3.0부터 GPU 인식 예약을 지원합니다. Azure Databricks는 GPU 컴퓨팅에서 미리 구성합니다.

단일 노드 컴퓨팅에서는 GPU 예약을 사용할 수 없습니다.

spark.task.resource.gpu.amount는 GPU 인식 예약과 관련하여 사용자가 변경해야 할 수 있는 유일한 Spark 구성입니다. 기본 구성은 사용자가 모든 GPU 노드를 사용하는 경우 태스크당 하나의 GPU를 사용합니다. 이는 분산 유추 워크로드 및 분산 학습에 적합합니다. 분산 학습 중에 통신 오버헤드를 줄이는 데 도움이 되는 노드 하위 집합에서 분산 학습을 수행하려면 Databricks는 컴퓨팅 Spark 구성에서 작업자 노드당 GPU 수로 설정하는 spark.task.resource.gpu.amount 것이 좋습니다.

PySpark 태스크의 경우, Azure Databricks는 할당된 GPU를 인덱스 0, 1, 등으로 자동으로 다시 매핑합니다. 태스크당 하나의 GPU를 사용하는 기본 구성에서는 코드가 태스크에 어느 GPU가 할당되었는지 확인하지 않고 기본 GPU를 사용하면 됩니다. 태스크당 여러 개의 GPU(예: 4)를 설정한 경우 코드는 할당된 GPU의 인덱스가 항상 0, 1, 2 및 3이라고 가정해도 됩니다. 할당된 GPU의 실제 인덱스가 필요한 경우에는 CUDA_VISIBLE_DEVICES 환경 변수에서 인덱스를 가져올 수 있습니다.

Scala를 사용하는 경우 TaskContext.resources().get("gpu")에서 태스크에 할당된 GPU의 인덱스를 가져올 수 있습니다.

7.0 미만의 Databricks 런타임 릴리스의 경우 동일한 GPU를 사용하려는 여러 Spark 작업 간의 충돌을 방지하기 위해 Azure Databricks는 노드당 최대 하나의 실행 중인 작업이 있도록 GPU 컴퓨팅을 자동으로 구성합니다. 이렇게 하면 태스크가 다른 태스크와 충돌하지 않으면서 노드에 있는 모든 GPU를 사용할 수 있습니다.

NVIDIA GPU 드라이버, CUDA 및 cuDNN

Azure Databricks는 GPU를 사용하는 데 필요한 NVIDIA 드라이버 및 라이브러리를 Spark 드라이버 및 작업자 인스턴스에 설치합니다.

  • CUDA 도구 키트: /usr/local/cuda에 설치됨.
  • cuDNN: NVIDIA CUDA 심층 신경망 라이브러리.
  • NCCL: NVIDIA Collective Communications 라이브러리.

포함된 NVIDIA 드라이버 버전은 CUDA 11.0을 지원하는 535.54.03입니다. NV A10 v5 인스턴스 유형 시리즈의 경우 포함된 525.105.17NVIDIA 드라이버의 버전은 .

포함된 라이브러리의 버전은 사용 중인 Databricks Runtime 버전의 릴리스 정보를 참조하세요.

참고 항목

이 소프트웨어에는 NVIDIA Corporation에서 제공한 소스 코드가 포함되어 있습니다. Azure Databricks에는 GPU를 지원하기 위해 CUDA 샘플의 코드가 포함되어 있습니다.

NVIDIA EULA(최종 사용자 사용권 계약)

Azure Databricks에서 GPU 지원 "Databricks 런타임 버전"을 선택하는 경우 CUDA, cuDNN 및 Tesla 라이브러리 와 관련하여 NVIDIA EULA에 설명된 사용 약관 및 NCCL 라이브러리에 대한 NVIDIA 최종 사용자 라이선스 계약(NCCL 보충 사용) 에 암시적으로 동의합니다.

GPU 컴퓨팅의 Databricks Container Services

Important

이 기능은 공개 미리 보기 상태입니다.

GPU를 사용하여 컴퓨팅에서 Databricks Container Services를 사용하여 사용자 지정된 라이브러리를 사용하여 이식 가능한 딥 러닝 환경을 만들 수 있습니다. 지침은 Databricks Container Service를 사용하여 컨테이너 사용자 지정을 참조하세요.

GPU 컴퓨팅에 대한 사용자 지정 이미지를 만들려면 GPU용 Databricks 런타임 ML 대신 표준 런타임 버전을 선택해야 합니다. 사용자 고유의 Docker 컨테이너 사용을 선택하면 표준 런타임 버전으로 GPU 컴퓨팅을 선택할 수 있습니다. GPU에 대한 사용자 지정 이미지는 GPU용 Databricks 런타임 ML과 다른 공식 CUDA 컨테이너를 기반으로 합니다.

GPU 컴퓨팅에 대한 사용자 지정 이미지를 만들 때 NVIDIA 드라이버 버전은 호스트 컴퓨터의 드라이버 버전과 일치해야 하므로 변경할 수 없습니다.

databricksruntimeDocker Hub에는 GPU 기능을 포함하는 기본 예시 이미지가 포함되어 있습니다. 이러한 이미지를 생성하는 데 사용된 Dockerfile은 예제 컨테이너 GitHub 리포지토리에 있으며, 여기에는 예제 이미지에서 제공하는 사항과 사용자 지정하는 방법도 안내되어 있습니다.