다중 GPU 설정

매우 제한적인 경우를 제외하면, 단일 시스템에서 다수의 GPU를 사용해도 Deep Learning 도구의 트레이닝 및 프로세싱 시간이 줄어들지 않습니다. 다수 GPU가 있으면 다음을 할 수 있습니다.

  • 응용 프로그램이 다수 스레드를 이용해 이미지를 동시에 프로세싱할 때의 프로세싱 양이 늘어납니다.
  • 동시에 다수의 도구를 트레이닝할 수 있어 트레이닝 생산성이 높아집니다.

여러 GPU를 사용하려면 사용하려는 모든 GPU의 유형과 사양이 동일해야 합니다. 예를 들어 1 개의 RTX 3080 10GB를 포함하여 3 개의 GPU를 설정하려는 경우이 GPU 세트는 RTX 3080 10GB/RTX 3080 10GB RTX 3080 10GB 여야 합니다. 모든 NVIDIA GeForce® 시리즈에 적용됩니다.

 

호스트 시스템을 다수 GPU용으로 구성할 때는 다음을 유념하십시오.

  • 섀시가 2kW까지 전원을 제공할 수 있어야 하는 경우도 있습니다.
  • NVIDIA RTX / Quadro® 및 Tesla 카드가 다수 카드 설치 시 냉각 구성이 더 우수합니다.
  • PCIe 구성이 각 GPU별로 16개의 PCIe 레인을 이용할 수 있도록 하십시오.
  • 스케일러블 링크 인터페이스(SLI)를 사용하지 마십시오.

 

다중 GPU 활용

VisionPro Deep Learning 3.2은 트레이닝과 프로세싱에서 다중 GPU를 지원합니다. 이 페이지는 기본적인 2개 GPU 운영 모드와 다중 GPU 활용을 안내합니다. 이 페이지에서 앞으로 더 쉽게 설명하기 위해, High Detail 모드와 Focused 모드는 각각 다음 도구들을 포함합니다. High Detail Quick 모드를 High Detail 모드 그룹에 포함한다는 정의는 이 문서에서 오직 이 페이지에서만 유효합니다.

 

High Detail 모드

  • Red 분석 도구 High Detail 모드

  • Green 분류 도구 High Detail 모드

  • Green 분류 도구 High Detail Quick 모드

 

Focused 모드

  • Red 분석 도구 Focused 지도 모드

  • Red 분석 도구 Focused 비지도 모드

  • Blue 읽기

  • Blue 위치

  • Green 분류 Focused

 

GPU 운영 모드

VisionPro Deep Learning 사용시 1개 이상의 GPU를 활용하면 가능한 GPU 운영 모드는 다음과 같습니다:

  • SingleDevicePerTool (기본 설정값) – 1개의 GPU는 1개 이미지의 트레이닝 및 프로세싱에 사용됩니다.
  • NoGPUSupport – GPU를 사용하지 않습니다.
Tip: 1개 이미지를 여러 GPU에서 프로세싱할 수 있도록 고안된 MultipleDevicesPerTool 모드는 VisionPro Deep Learning 1.0.0부터 지원되지 않습니다.

 

이 GPU 모드들은 라이브러리 초기화를 할 때 C 및 .NET API 라이브러리 초기화에서 그리고 VisionPro Deep Learning GUI와 함께 사용할 수 있는 커맨드라인 인자에서 설정할 수 있습니다.

 

다중 GPU를 사용한 트레이닝

다중 GPU를 사용해 트레이닝할 때에는 Focused 모드 및 High Detail 모드 사용 여부와 상관없이, 1개의 도구는 오직 1개의 GPU를 사용해 트레이닝됩니다.

High Detail 모드 프로세싱에서

  • N개 GPU가 있다면, N개의 트레이닝 작업을 동시에 수행할 수 있습니다.

  • N개 GPU가 있다면, N개의 도구를 동시에 트레이닝할 수 있습니다.

이는 N개 GPU와 수행해야 할 N개 트레이닝 작업(트레이닝 할 N개 도구)이 있을 때, 1개 트레이닝 작업은 오직 1개 GPU에서만 실행될 수 있음을 의미합니다. 즉, 1개 GPU는 한 번에 오직 1개 도구(1개 도구에 속한 트레이닝해야할 모든 이미지)를 트레이닝할 수 있습니다.

다른 스트림 또는 다른 워크스페이스에 속한 트레이닝 작업들도 시스템에 등록된 다중 GPU로 실행할 수 있어, 이들도 다중 GPU로 동시에 실행할 수 있습니다.

 

다중 GPU를 활용한 프로세싱

다중 GPU를 프로세싱에 사용할 때는 상황이 조금 다릅니다.

  • Focused 모드들

    • 1개 도구를시스템에 등록된 모든 GPU로 동시에 프로세싱할 수 있습니다.

  • High Detail 모드들

    • 1개의 도구는 오직 1개의 GPU를 사용해 프로세싱됩니다.

 

이는 다음 중요한 사항들을 의미합니다:

  • Focused 모드 프로세싱에서

    • N개 GPU가 있을 때 1개 프로세싱 작업(1개 Focused 모드 도구를 프로세싱)하면, 프로세싱은 N개 GPU에 분산되어 실행됩니다.

    • N개 GPU가 있을 때 N개 프로세싱 작업(N개 Focused 모드 도구를 프로세싱)하면, 프로세싱은 N개 GPU에서 병렬적으로 실행됩니다.

  • High Detail 모드 프로세싱은 트레이닝과 동일하게 동작합니다. High Detail 모드 프로세싱에서

    • N개 GPU가 있다면, N개의 프로세싱 작업을 동시에 수행할 수 있습니다.

    • N개 GPU가 있다면, N개의 도구를 동시에 프로세싱할 수 있습니다.

 

하나의 Focused 모드 도구를 프로세싱할 때, 이 도구의 모든 이미지들을 N개 GPU에 분산(1개 GPU는 한 번에 1개 이미지를 프로세싱)합니다. 만약 N개 Focused 모드 도구가 있고 N개 GPU가 있다면, 이 때에도 여전히 같은 방식으로 동작하며 따라서 N개 GPU는 각 GPU가 한 번에 1개 도구가 아니라 한 번에 1개 이미지를 처리하는 방식으로 동작합니다.

 

하나의 High Detail 모드 도구를 프로세싱할 때, 이 도구의 모든 이미지들은 N개 GPU에 분산될 수 없고 이 도구의 모든 이미지들은 오직 1개 GPU에 의해 프로세싱됩니다(1개 GPU는 한 번에 1개 도구, 즉 1개 도구의 모든 이미지를 프로세싱). 하지만 N개 High Detail 모드 도구가 있고 N개 GPU가 있다면, N개 GPU는 각각 1개 도구를 맡아 프로세싱하기 때문에 N개 GPU를 동시에 프로세싱에 사용할 수 있습니다.

또, Focused 및 High Detail 모드 도구 모두에 대해 다른 스트림 또는 다른 워크스페이스에 속한 프로세싱 작업들도 시스템에 등록된 다중 GPU로 실행할 수 있어, 이들도 다중 GPU로 동시에 실행할 수 있습니다.