toplogo
Entrar

동시 심층 학습 워크로드를 위한 비침습적 성능 격리 기술: 탤리


Conceitos Básicos
심층 학습 클러스터에서 GPU 사용 효율성을 높이기 위해 GPU 공유 시스템인 탤리를 소개하며, 탤리는 비침습적인 방식으로 고 우선순위 작업의 성능을 보장하면서 여러 작업을 단일 GPU에서 효율적으로 실행할 수 있도록 한다.
Resumo

탤리: 동시 심층 학습 워크로드를 위한 비침습적 성능 격리 기술

본 논문은 대규모 심층 학습 클러스터에서 GPU 사용 효율성을 높이기 위한 새로운 GPU 공유 시스템인 탤리를 제안합니다.

심층 학습 클러스터에서의 GPU 공유 문제

  • 심층 학습은 이미지 인식, 기계 번역, 추천 시스템, 자율 주행 등 광범위한 분야에서 뛰어난 성능을 보여주면서 컴퓨팅 리소스에 대한 수요가 증가하고 있습니다.
  • 하지만 대규모 심층 학습 클러스터에서는 GPU 활용률이 낮다는 문제점이 제기되고 있습니다.
  • GPU 공유는 여러 작업을 단일 GPU에서 동시에 실행하여 리소스 활용도를 높이는 유망한 해결책으로 제시되고 있습니다.
  • 그러나 기존 GPU 공유 메커니즘은 높은 통합 비용, 부적절한 성능 격리, 제한적인 애플리케이션 호환성과 같은 문제점을 가지고 있습니다.

탤리 시스템 설계 및 주요 특징

  • 탤리는 애플리케이션과 GPU 사이에서 투명하게 작동하는 가상화 계층으로 설계되어 비침습적인 GPU 공유를 가능하게 합니다.
  • 탤리는 작업을 인식하지 않고 스케줄링 알고리즘을 사용하여 고 우선순위 작업의 커널 실행을 우선순위를 정하고 GPU 유휴 기간 동안 저 우선순위 작업의 커널을 기회적으로 스케줄링합니다.
  • 탤리는 커널 슬라이싱 및 선점이라는 두 가지 스케줄링 기법을 사용하여 고 우선순위 작업에 대한 성능 격리를 보장합니다.
    • 슬라이싱은 대규모 커널을 여러 개의 더 작은 세그먼트로 나누어 보다 세밀하게 제어할 수 있도록 합니다.
    • 선점은 활성 커널을 중단할 수 있도록 하여 고 우선순위 작업에 리소스를 즉시 할당할 수 있도록 합니다.
  • 탤리는 GPU 커널 코드를 변환하여 슬라이싱 및 선점 기법을 구현하며, 이는 작업에 대한 사전 지식 없이도 수행될 수 있습니다.
  • 또한 탤리는 투명한 프로파일러를 사용하여 다양한 실행 구성에서 변환된 커널의 성능을 프로파일링하고 예상 처리량을 예측합니다.
  • 이러한 정보를 바탕으로 우선순위 인식 스케줄러는 고 우선순위 작업의 성능 요구 사항을 충족하면서 GPU 처리량을 최적화하기 위해 적절한 스케줄링 기법과 매개변수를 동적으로 선택합니다.

성능 평가 결과

  • 탤리는 다양한 추론 및 학습 워크로드를 사용하여 평가되었으며, 그 결과 기존 GPU 공유 솔루션과 비교하여 뛰어난 성능을 보여주었습니다.
  • 탤리는 평균 7.2%의 오버헤드만으로 고 우선순위 추론 작업의 99번째 백분위수 레이턴시를 유지하면서 최첨단 GPU 공유 솔루션인 TGS가 달성한 시스템 처리량의 80%를 달성했습니다.
  • 이는 탤리가 강력한 성능 격리 보장을 제공하는 동시에 GPU 효율성을 극대화하는 데 효과적임을 입증합니다.

결론

  • 탤리는 대규모 프로덕션 심층 학습 클러스터를 위한 새로운 비침습적 GPU 공유 시스템으로, 레이턴시에 민감한 고 우선순위 작업과 처리량 중심의 저 우선순위 작업을 효율적으로 공동 배치할 수 있도록 합니다.
  • 탤리는 GPU 커널 스케줄링에 대한 새로운 접근 방식을 제시하며, 커널 슬라이싱 및 선점을 통해 세밀한 GPU 커널 스케줄링을 달성합니다.
  • 또한 탤리는 우선순위 인식 스케줄러를 사용하여 GPU 처리량을 최적화하는 동시에 성능 격리 보장을 유지합니다.
  • 탤리는 다양한 추론 및 학습 워크로드에서 평가되었으며, 그 결과 기존 GPU 공유 솔루션과 비교하여 뛰어난 성능을 보여주었습니다.
edit_icon

Customize Summary

edit_icon

Rewrite with AI

edit_icon

Generate Citations

translate_icon

Translate Source

visual_icon

Generate MindMap

visit_icon

Visit Source

Estatísticas
알리바바의 연구에 따르면 프로덕션 심층 학습 클러스터에서 GPU 사용률 중앙값은 4.2%까지 낮아질 수 있습니다. 효과적인 GPU 공유 메커니즘을 통해 클러스터에 필요한 GPU 리소스 양을 평균 50%, 피크 시간대에는 최대 73%까지 줄일 수 있습니다. 탤리는 고 우선순위 작업의 99번째 백분위수 레이턴시에 평균 7.2%의 오버헤드만 발생시킵니다. 탤리는 최첨단 GPU 공유 솔루션인 TGS가 달성한 시스템 처리량의 80%를 달성했습니다.
Citações
"GPU underutilization is a significant concern in many production deep learning clusters, leading to prolonged job queues and increased operational expenses." "Our evaluation, conducted on a diverse set of workload combinations, demonstrates that Tally on average incurs a mere 7.2% overhead on the 99𝑡ℎ-percentile latency of high-priority inference tasks when executed concurrently with best-effort training workloads compared to 188.9% overhead exhibited by the state-of-the-art GPU sharing systems like TGS, while achieving over 80% of TGS’s system throughput."

Perguntas Mais Profundas

탤리 시스템이 다양한 GPU 아키텍처 및 벤더에 걸쳐 어떻게 일반화될 수 있을까요?

Tally 시스템은 기본적으로 GPU 아키텍처 및 벤더에 구애받지 않는 방식으로 설계되었지만, 다양한 환경에 적용하기 위해서는 몇 가지 고려 사항이 존재합니다. 1. 커널 변환의 일반화: 다양한 GPU 아키텍처 지원: Tally는 현재 NVIDIA GPU에서 사용되는 PTX 중심의 커널 변환을 사용합니다. 다양한 GPU 아키텍처를 지원하기 위해서는 AMD GPU의 Radeon Open Compute Platform (ROCm)과 같은 다른 GPU 프로그래밍 모델에 대한 커널 변환 기능을 추가해야 합니다. 이를 위해서는 각 아키텍처에 특화된 명령어 세트 및 메모리 모델에 대한 이해가 필요하며, 이를 활용하여 슬라이싱 및 선점 프리미티브를 구현해야 합니다. 표준화된 중간 표현 활용: LLVM과 같은 중간 표현(IR)을 활용하여 GPU 벤더에 종속적인 부분을 추상화할 수 있습니다. 이를 통해 특정 GPU 아키텍처에 종속적인 코드를 최소화하고, 다양한 플랫폼에서 Tally를 쉽게 포팅할 수 있습니다. 2. 투명한 프로파일러의 확장: 다양한 GPU 성능 특성 반영: Tally의 투명한 프로파일러는 GPU 커널의 실행 시간을 측정하여 최적의 스케줄링 구성을 결정합니다. 하지만 GPU 아키텍처 및 벤더에 따라 성능 특성이 다르기 때문에, 각 환경에 맞는 프로파일링 및 예측 모델을 구축해야 합니다. 예를 들어, AMD GPU는 NVIDIA GPU와 다른 메모리 계층 구조를 가지고 있기 때문에, 메모리 접근 패턴에 따른 성능 변화를 정확하게 모델링해야 합니다. GPU 성능 카운터 활용: GPU 벤더들이 제공하는 성능 카운터를 활용하여 다양한 GPU 아키텍처에서 발생하는 성능 병목 현상을 정확하게 분석하고, 이를 기반으로 스케줄링 결정을 개선할 수 있습니다. 3. 우선순위 인식 스케줄러의 개선: 아키텍처 특성 고려한 스케줄링: GPU 아키텍처에 따라 스레드 블록 크기, 워프 스케줄링 정책, 캐시 크기 등 다양한 하드웨어적 특성이 다릅니다. Tally의 스케줄러는 이러한 아키텍처 특성을 고려하여 최적의 성능을 낼 수 있도록 스케줄링 정책을 조정해야 합니다. 동적 전압 및 주파수 스케일링 활용: 일부 GPU는 동적 전압 및 주파수 스케일링(DVFS)을 지원하여 전력 소비를 줄이고 성능을 최적화합니다. Tally는 DVFS 정보를 활용하여 작업의 우선순위 및 GPU 사용량에 따라 GPU 주파수를 조정하고, 전력 효율성을 높일 수 있습니다. 결론적으로 Tally 시스템은 다양한 GPU 아키텍처 및 벤더에 걸쳐 일반화될 수 있는 잠재력을 가지고 있습니다. 하지만 앞서 언급된 고려 사항들을 반영하여 시스템을 개선하고 최적화해야 실제 환경에서 널리 사용될 수 있을 것입니다.

탤리의 성능 격리 기능이 항상 보장될 수 있는지, 특히 예측할 수 없는 워크로드 패턴이나 리소스 경합이 심한 경우에는 어떠한지 의문이 제기될 수 있습니다.

탤리의 성능 격리 기능은 일반적으로 효과적이지만, 예측 불가능한 워크로드 패턴이나 리소스 경합이 심한 경우 완벽한 성능 격리를 보장하기 어려울 수 있습니다. 몇 가지 문제점과 해결 방안을 살펴보겠습니다. 1. 예측 불가능한 워크로드 패턴: 문제점: 탤리는 주로 작업 실행 전 프로파일링을 통해 얻은 정보를 기반으로 스케줄링을 수행합니다. 하지만 워크로드 패턴이 예측 불가능하고 동적으로 변하는 경우, 프로파일링 정보가 실제 실행 환경을 정확하게 반영하지 못할 수 있습니다. 예를 들어, 실시간 스트리밍 데이터를 처리하는 추론 작업의 경우, 데이터 크기나 계산 복잡도가 계속 변하기 때문에 고정된 프로파일링 정보만으로는 최적의 성능 격리를 보장하기 어렵습니다. 해결 방안: 동적 프로파일링: 탤리의 투명한 프로파일러를 확장하여 작업 실행 중에도 지속적으로 성능을 모니터링하고 프로파일링 정보를 업데이트할 수 있도록 개선해야 합니다. 이를 통해 변화하는 워크로드 패턴에 대한 정보를 실시간으로 반영하여 스케줄링 정확도를 높일 수 있습니다. 머신 러닝 기반 예측: 과거 워크로드 실행 데이터를 활용하여 머신 러닝 모델을 학습시키고, 이를 통해 미래 워크로드의 실행 시간 및 리소스 요구량을 예측할 수 있습니다. 2. 리소스 경합 심화: 문제점: GPU 메모리, CPU, 네트워크 대역폭과 같은 공유 리소스에 대한 경합이 심해지면 탤리의 성능 격리 기능이 제대로 동작하지 않을 수 있습니다. 예를 들어, 여러 개의 고 우선순위 작업이 동시에 실행되면서 GPU 메모리에 과부하가 걸리면, 작업 간의 성능 간섭이 발생하여 지연 시간이 증가할 수 있습니다. 해결 방안: 선제적 리소스 할당: 탤리의 스케줄러가 작업 실행 전에 필요한 리소스를 예측하고, GPU 메모리, CPU 코어, 네트워크 대역폭과 같은 리소스를 선제적으로 할당하여 경합을 줄일 수 있습니다. 다중 GPU 환경 지원: 여러 개의 GPU를 사용하는 경우, 탤리가 작업을 여러 GPU에 분산하여 실행하고 GPU 간의 리소스 경합을 최소화할 수 있도록 지원해야 합니다. 3. 커널 선점 오버헤드: 문제점: 탤리의 커널 선점 기능은 저 우선순위 작업의 실행을 중단하고 고 우선순위 작업에 리소스를 할당하는 데 사용됩니다. 하지만 커널 선점 자체에도 오버헤드가 발생하며, 너무 빈번한 선점은 오히려 전체 시스템 성능을 저하시킬 수 있습니다. 해결 방안: 선점 임계값 조정: 탤리가 커널 선점을 수행할 때 발생하는 오버헤드와 성능 향상 효과를 고려하여 선점 임계값을 동적으로 조정할 수 있도록 개선해야 합니다. 선점 비용이 적은 시점 선택: GPU 커널 실행 중 특정 시점(예: 메모리 복사 작업)에서는 선점 비용이 상대적으로 낮습니다. 탤리는 이러한 정보를 활용하여 선점 비용을 최소화할 수 있는 시점을 선택하여 작업을 선점해야 합니다. 결론적으로 탤리의 성능 격리 기능은 다양한 상황에서 효과적으로 동작하지만, 예측 불가능한 워크로드 패턴이나 리소스 경합이 심한 경우 추가적인 개선을 통해 완벽에 가까운 성능 격리를 달성할 수 있을 것입니다.

탤리 시스템을 활용하여 GPU 리소스를 다른 컴퓨팅 리소스(예: CPU, 메모리, 네트워크 대역폭)와 효율적으로 공유하는 방법은 무엇일까요?

탤리 시스템은 현재 GPU 커널 스케줄링에 집중하여 성능 격리 및 시스템 처리량을 향상시키는 데 중점을 두고 있습니다. 하지만 탤리 시스템을 확장하여 GPU 리소스뿐만 아니라 CPU, 메모리, 네트워크 대역폭과 같은 다른 컴퓨팅 리소스까지 효율적으로 공유하도록 만들 수 있습니다. 1. 통합 리소스 관리: 문제점: 현재 탤리는 GPU 리소스만 관리하며, CPU, 메모리, 네트워크 대역폭과 같은 다른 리소스는 별도의 시스템에서 관리됩니다. 이는 시스템 전체 리소스 활용을 저해하고 병목 현상을 야기할 수 있습니다. 해결 방안: 탤리를 확장하여 CPU, 메모리, 네트워크 대역폭까지 포함한 모든 컴퓨팅 리소스를 통합적으로 관리하도록 만들어야 합니다. 이를 위해서는 탤리의 스케줄러가 각 작업의 CPU 사용량, 메모리 요구량, 네트워크 대역폭 사용량을 파악하고, 이를 기반으로 GPU 리소스뿐만 아니라 다른 리소스까지 효율적으로 할당해야 합니다. 2. CPU-GPU 연동 강화: 문제점: 딥러닝 작업은 GPU 연산뿐만 아니라 데이터 전처리, 모델 로딩, 결과 후처리와 같은 CPU 작업도 수행합니다. 탤리가 CPU 작업과 GPU 작업 간의 연동성을 고려하지 않고 GPU 스케줄링만 수행하면 CPU 작업이 GPU 작업의 병목 현상을 유발할 수 있습니다. 해결 방안: 탤리가 CPU 작업과 GPU 작업 간의 의존성을 분석하고, CPU 작업의 진행 상황에 따라 GPU 스케줄링을 조정해야 합니다. 예를 들어, CPU에서 데이터 전처리가 완료될 때까지 GPU 커널 실행을 지연시키거나, CPU 사용량이 높을 때는 GPU 사용량을 줄여 CPU 작업에 더 많은 리소스를 할당할 수 있습니다. 3. 계층적 메모리 관리: 문제점: 딥러닝 모델의 크기가 증가함에 따라 GPU 메모리 부족 현상이 발생하는 경우가 많습니다. 탤리가 GPU 메모리만 관리하고 시스템 메모리와의 연동을 고려하지 않으면 메모리 부족으로 인해 작업 실행이 실패할 수 있습니다. 해결 방안: 탤리가 GPU 메모리와 시스템 메모리를 함께 관리하고, 필요에 따라 데이터를 시스템 메모리로 이동시키거나 GPU 메모리로 로드하는 기능을 제공해야 합니다. 이를 위해 Unified Memory Architecture (UMA)와 같은 기술을 활용하여 GPU와 CPU가 동일한 메모리 공간을 공유하도록 만들 수 있습니다. 4. 네트워크 인지 스케줄링: 문제점: 분산 딥러닝 학습과 같이 여러 노드에서 GPU를 공유하는 환경에서는 네트워크 대역폭 또한 중요한 리소스입니다. 탤리가 네트워크 사용량을 고려하지 않고 GPU 스케줄링을 수행하면 네트워크 병목 현상으로 인해 학습 속도가 저하될 수 있습니다. 해결 방안: 탤리가 네트워크 토폴로지 및 대역폭 정보를 파악하고, 네트워크 통신량을 최소화할 수 있도록 작업을 스케줄링해야 합니다. 예를 들어, 통신량이 많은 작업은 네트워크 대역폭이 충분한 노드에 할당하고, 통신량이 적은 작업은 동일한 노드 내에서 GPU를 공유하도록 스케줄링할 수 있습니다. 결론적으로 탤리 시스템을 확장하여 GPU 리소스뿐만 아니라 CPU, 메모리, 네트워크 대역폭까지 효율적으로 공유하도록 만들면 딥러닝 시스템의 전체적인 성능 및 효율성을 크게 향상시킬 수 있습니다.
0
star