GPU에 대한 Dataflow 지원

이 페이지에서는 Dataflow에서 GPU가 작동하는 방식에 대한 배경 정보를 제공합니다. Dataflow 작업에서 GPU를 사용 설정하는 방법에 대한 자세한 내용과 예시는 GPU 사용GPU를 사용하여 Landsat 위성 이미지 처리를 참조하세요.

Dataflow 작업에서 GPU를 사용하면 일부 데이터 처리 작업을 가속화할 수 있습니다. GPU는 CPU보다 특정 계산을 더 빠르게 수행할 수 있습니다. 이러한 계산은 일반적으로 이미지 처리 및 머신러닝 사용 사례와 같은 숫자 또는 선형 대수입니다. 성능 향상의 정도는 사용 사례, 계산 유형, 처리된 데이터 양에 따라 다릅니다.

Dataflow에서 GPU를 사용하기 위한 기본 요건

Dataflow는 Docker 컨테이너 내부의 작업자 VM에서 사용자 코드를 실행합니다. 이러한 작업자 VM은 컨테이너 최적화 OS를 실행합니다. Dataflow 작업에서 GPU를 사용하려면 다음 설치가 필요합니다.

가격 책정

GPU를 사용하는 작업에는 Dataflow 가격 책정 페이지에 명시된 대로 요금이 청구됩니다.

고려사항

머신 유형 사양

GPU는 커스텀 N1 머신 유형을 포함한 N1 머신 유형에서 지원됩니다.

GPU의 유형과 개수는 작업자에서 사용할 수 있는 vCPU 및 메모리의 양에 대한 상한값 제한을 정의합니다. 해당 제한사항을 확인하려면 가용성 섹션을 참조하세요.

더 많은 수의 CPU 또는 메모리를 지정하려면 더 많은 수의 GPU를 지정해야 할 수 있습니다.

자세한 내용은 Compute Engine의 GPU를 참조하세요.

GPU 및 작업자 동시 로드

Dataflow Runner v2 아키텍처를 사용하는 Python 파이프라인의 경우 Dataflow는 VM 코어당 하나의 Apache Beam SDK 프로세스를 시작합니다. 각 SDK 프로세스는 자체 Docker 컨테이너에서 실행되며 여러 스레드를 생성한 다음 각 스레드가 수신 데이터를 처리합니다.

이러한 다중 프로세스 아키텍처와 Dataflow 작업자의 GPU가 모든 프로세스 및 스레드에 표시되므로 GPU 메모리 초과 구독을 방지하려면 GPU 액세스에 대한 신중한 관리가 필요할 수 있습니다. TensorFlow를 사용하는 경우 다음 제안 중 하나를 사용하면 GPU 메모리 초과 구독을 방지할 수 있습니다.

  • 작업자 vCPU 수에 관계없이 컨테이너화된 Python 프로세스를 하나만 시작하도록 Dataflow 작업자를 구성합니다. 이를 구성하려면 작업을 시작할 때 파이프라인 옵션 --experiments=no_use_multiple_sdk_containers를 사용합니다.
  • vCPU가 1개만 있는 머신 유형을 사용합니다.

여러 TensorFlow 프로세스가 동일한 GPU를 사용하는 경우 모든 프로세스가 GPU 메모리를 초과 구독하지 않도록 GPU 메모리의 일부만 사용하도록 각 프로세스를 구성해야 할 수 있습니다. 이러한 구성을 만드는 것은 간단하지 않으므로 위에 설명된 대로 TensorFlow 프로세스 수를 제한하는 것이 좋습니다.

가용성

사용 가능한 GPU 유형 및 작업자 VM 구성은 Dataflow 위치를 참조하세요.

다음 단계