Skip to main content
QUICK REVIEW

[논문 리뷰] Protecting real-time GPU kernels on integrated CPU-GPU SoC platforms

Waqar Ali, Heechul Yun|arXiv (Cornell University)|2017. 12. 23.
Parallel Computing and Optimization Techniques참고 문헌 18인용 수 10
한 줄 요약

이 논문은 NVIDIA Jetson TX2와 같은 통합 CPU-GPU SoC에서 실시간 GPU 커널의 성능을 보호하기 위해 런타임에 동적으로 메모리 대역폭 잠금을 삽입함으로써 CPU 메모리 대역폭을 억제하는 소프트웨어 프레임워크 BWLOCK++을 제안한다. 이로 인해 메모리 집약적인 CPU 워크로드가 존재하더라도 실시간 GPU 커널의 성능이 거의 단독 실행 수준에 도달하며, 새로운 스로틀 페어 스케줄러(TFS) 알고리즘을 통해 최대 75% 감소한 CPU 스루풋 손실을 기록한다. 이는 런타임에서의 성능 간섭을 효과적으로 억제함으로써 실시간 GPU 작업 스케줄링을 안정적으로 가능하게 한다.

ABSTRACT

Integrated CPU-GPU architecture provides excellent acceleration capabilities for data parallel applications on embedded platforms while meeting the size, weight and power (SWaP) requirements. However, sharing of main memory between CPU applications and GPU kernels can severely affect the execution of GPU kernels and diminish the performance gain provided by GPU. For example, in the NVIDIA Tegra K1 platform which has the integrated CPU-GPU architecture, we noticed that in the worst case scenario, the GPU kernels can suffer as much as 4X slowdown in the presence of co-running memory intensive CPU applications compared to their solo execution. In this paper, we propose a software mechanism, which we call BWLOCK++, to protect the performance of GPU kernels from co-scheduled memory intensive CPU applications.

연구 동기 및 목표

  • 통합 CPU-GPU SoC에서 동시 실행되는 CPU 응용 프로그램과의 메모리 대역폭 경쟁으로 인한 실시간 GPU 커널의 성능 저하 문제를 해결하기 위해.
  • 자원이 제한된 로봇 및 임베디드 시스템에서 GPU 가속 워크로드의 예측 가능하고 실시간 실행을 가능하게 하기 위해.
  • 지능적인 메모리 대역폭 스로틀링을 통해 GPU 커널 성능 보호와 함께 CPU 스루풋 저하를 최소화하기 위해.
  • 기존의 CPU 중심 실시간 스케줄러 분석 프레임워크와 통합하여 종단 간 시스템 검증을 가능하게 하기 위해.

제안 방법

  • 런타임에 GPU 커널을 동적으로 인스트루먼트하여 GPU 실행 중 CPU 메모리 액세스를 규제하는 메모리 대역폭 잠금을 삽입한다.
  • 각 GPU 작업에 대한 기준치에 따라 CPU 코어의 메모리 대역폭 스로틀링을 적용하여 간섭을 제한한다.
  • GPU 커널 실행 중 메모리 집약적인 작업보다 CPU 집약적인 작업을 우선시하는 수정된 CFS인 스로틀 페어 스케줄러(TFS)를 제안한다.
  • 대역폭 잠금 획득을 통해 GPU 실행을 시리얼라이즈하고 우선순위 역전을 방지하기 위해 우선순위 천장 프로토콜을 사용한다.
  • 프로파일링 기반의 임계값 선택 메커니즘을 활용하여 각 GPU 작업에 최적의 메모리 대역폭 한도를 설정한다.
  • GPU 실행 세그먼트를 차단되는 섹션으로 모델링하여 기존의 CPU 중심 실시간 스케줄러 분석 프레임워크와 통합한다.

실험 결과

연구 질문

  • RQ1메모리 대역폭 스로틀링이 통합 CPU-GPU 플랫폼에서 메모리 집약적인 CPU 작업으로부터 실시간 GPU 커널을 효과적으로 격리시키는 데에 유용한가?
  • RQ2메모리 대역폭 스로틀링이 Linux CFS 스케줄러에 미치는 영향은 무엇이며, 이를 어떻게 완화할 수 있는가?
  • RQ3런타임 인스트루먼테이션 프레임워크는 GPU 작업 보호를 위해 수동 커널 수정이 필요 없도록 할 수 있는가?
  • RQ4제안된 프레임워크는 GPU 성능 격리 유지와 함께 CPU 스루풋 손실을 어느 정도 감소시키는가?
  • RQ5BWLOCK++는 기존의 실시간 스케줄러 분석 프레임워크에 통합되어 혼합 CPU-GPU 시스템에서 종단 간 검증이 가능한가?

주요 결과

  • NVIDIA Jetson TX2에서 메모리 집약적인 CPU 워크로드가 존재할 경우, BWLOCK++는 GPU 커널의 성능 저하를 최대 3.3배에서 거의 단독 실행 성능(1% 이내) 수준으로 감소시킨다.
  • 스로틀 페어 스케줄러(TFS)는 메모리 대역폭 스로틀링 조건에서 기본 CFS 스케줄러 대비 최대 75% 감소한 CPU 스루풋 손실을 기록한다.
  • 모든 평가된 GPU 벤치마크에 걸쳐 BWLOCK++의 총 런타임 오버헤드는 단독 실행 시간의 1% 미만이다.
  • 간섭으로 인한 GPU 커널 타이밍의 과도한 경계선 추정을 줄임으로써, BWLOCK++는 정확한 최악의 실행 시간(WCET) 추정을 가능하게 한다.
  • BWLOCK++는 기존의 CPU 중심 실시간 스케줄러 분석 프레임워크와 성공적으로 통합되어 종단 간 시스템 수준의 검증이 가능해졌다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.