GPU에 대한 Dataflow 지원

이 페이지에서는 Dataflow에서 GPU가 작동하는 방식에 대한 배경 정보를 설명합니다.

GPU를 사용하여 개발 작업을 시작하기 전에 GPU를 사용한 개발에 설명된 GPU를 사용하여 파이프라인을 빌드하는 방법에 대한 개발자 워크플로 및 팁을 검토하세요.

Dataflow 작업에서 GPU를 사용 설정하는 방법에 대한 정보 및 예시는 GPU 사용GPU로 Landsat 위성 이미지 처리를 참조하세요. 추가 예시는 다음을 참조하세요.

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

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

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

가격 책정

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

고려사항

머신 유형 사양

각 GPU 모델의 머신 유형 지원에 대한 자세한 내용은 GPU 플랫폼을 참조하세요. N1 머신 유형에서 지원되는 GPU도 커스텀 N1 머신 유형을 지원합니다.

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

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

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

GPU 및 작업자 동시 로드

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

GPU는 다중 프로세스 아키텍처를 사용하며 Dataflow 작업자의 GPU는 모든 프로세스와 스레드에 표시됩니다. 따라서 GPU 메모리 초과 구독을 방지하려면 GPU 액세스를 관리해야 할 수 있습니다. TensorFlow를 사용하는 경우 다음과 같은 권장 방법에 따라 GPU 메모리 초과 구독을 방지할 수 있습니다.

  • 작업자 vCPU 수에 관계없이 컨테이너화된 Python 프로세스 하나만 시작하도록 Dataflow 작업자를 구성합니다. 이렇게 구성하려면 작업을 시작할 때 다음 파이프라인 옵션을 사용합니다.

    • --experiments=no_use_multiple_sdk_containers
    • --number_of_worker_harness_threads

    사용할 스레드 수에 대한 자세한 내용은 스레드 수 줄이기를 참조하세요.

  • vCPU가 1개만 있는 머신 유형을 사용합니다.

여러 TensorFlow 프로세스가 동일한 GPU를 사용하는 경우 각 프로세스에서 GPU 메모리의 일부만 사용하도록 구성해야 할 수 있습니다. 이 구성은 모든 프로세스를 더했을 때를 기준으로 GPU 메모리 초과 구독을 방지하는 데 도움이 됩니다. 이 구성만으로는 부족하므로 TensorFlow 프로세스 수를 제한해야 합니다.

사용 가능 여부

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

다음 단계