Skip to main content
QUICK REVIEW

[논문 리뷰] Toward Transparent Heterogeneous Systems

Baptiste Delporte, Roberto Rigamonti|arXiv (Cornell University)|2015. 11. 18.
Parallel Computing and Optimization Techniques참고 문헌 22인용 수 3
한 줄 요약

이 논문은 런타임 프로파일링과 JIT 컴파일링을 통해 성능에 영향을 미치는 코드 블록을 동적으로 식별하고, 이를 전용 프로세서로 자동으로 오프로딩함으로써 이종 컴퓨팅을 투명하고 자동으로 최적화하는 시스템을 제시한다. 프로토타입은 개발자 간섭 없이 임베디드 시스템에서 최대 32×의 성능 향상을 달성하였으며, 워크로드 변화와 하드웨어 조건 변화에 실시간으로 적응하는 것을 입증한다.

ABSTRACT

Heterogeneous parallel systems are widely spread nowadays. Despite their availability, their usage and adoption are still limited, and even more rarely they are used to full power. Indeed, compelling new technologies are constantly developed and keep changing the technological landscape, but each of them targets a limited sub-set of supported devices, and nearly all of them require new programming paradigms and specific toolsets. Software, however, can hardly keep the pace with the growing number of computational capabilities, and developers are less and less motivated in learning skills that could quickly become obsolete. In this paper we present our effort in the direction of a transparent system optimization based on automatic code profiling and Just-In-Time compilation, that resulted in a fully-working embedded prototype capable of dynamically detect computing-intensive code blocks and automatically dispatch them to different computation units. Experimental results show that our system allows gains up to 32x in performance --- after an initial warm-up phase --- without requiring any human intervention.

연구 동기 및 목표

  • 이종 컴퓨팅 플랫폼의 점점 증가하는 복잡성과 분열 문제를 해결하기 위해, 개발자가 높은 학습 곡선과 툴체인 호환성 문제를 겪지 않도록 하기 위해.
  • 빠르게 변화하는 하드웨어와 느리게 진행되는 소프트웨어 개발 주기 사이의 괴리를 극복하기 위해.
  • 응용 프로그램 코드 수정이나 개발자 전문 지식 없이도 자동으로 투명하게 성능 최적화를 수행할 수 있도록 하기 위해.
  • 런타임에 계산 부담이 큰 함수를 감지하고 전용 프로세서로 오프로딩할 수 있는 프로토타입 시스템을 구축하기 위해.
  • 워크로드 패턴이나 하드웨어 가용성 변화에 실시간으로 적응할 수 있도록 하기 위해.

제안 방법

  • 시스템은 이종 임베디드 플랫폼에서 응용 프로그램 코드를 런타임에 실행하고 프로파일링하기 위해 LLVM JIT 프레임워크를 사용한다.
  • 저수준 성능 모니터링을 통해 계산 집약적인 함수를 식별하기 위해 Linux의 perf_event 도구를 활용한다.
  • 프로파일링 결과를 바탕으로 시스템은 자동으로 DM3730 칩의 C64x+ DSP로 핫한 코드 세그먼트를 디스패치하여 ARM Cortex-A8 CPU에서 오프로딩한다.
  • 이 접근 방식은 응용 프로그램에 대해 완전히 투명하며, 소스 코드 수정이나 수동 최적화가 필요하지 않다.
  • 시스템은 성능을 지속적으로 모니터링하며, 대상 단위에서 실행 성능이 열 劣화될 경우 오프로딩 결정을 취소할 수 있다.
  • 프로토타입은 REPTAR 플랫폼에 구현되었으며, 영상 처리를 위해 OpenCV를 사용하고, 동적 계산 오프로딩을 통합하기 위해 VPE를 통합하였다.

실험 결과

연구 질문

  • RQ1개발자 입력 없이 런타임 중 응용 프로그램의 계산 집약적인 코드 세그먼트를 자동으로 감지할 수 있는가?
  • RQ2이러한 시스템이 이러한 세그먼트를 동적으로 전용 프로세서로 오프로딩하여 성능 향상을 이룰 수 있는가?
  • RQ3자동 오프로딩이 수작업 최적화된 코드 수준의 성능 향상에 얼마나 가까이 다가갈 수 있는가?
  • RQ4워크로드 패턴이나 하드웨어 조건의 변화에 시스템은 어떻게 대응하는가?
  • RQ5다양한 계산 워크로드에서 상당한 성능 향상을 달성하면서도 투명성을 유지할 수 있는가?

주요 결과

  • MatrixMult 벤치마크에서 최대 31.9×의 속도 향상을 기록하였으며, 웜업 단계에서는 32×의 성능 향상을 관찰하였다.
  • 영상 처리 프로토타입의 경우, 2D 컨볼루션을 DSP로 오프로딩한 후 프레임 레이트가 1.5 fps에서 6 fps로 증가하여 4× 향상되었다.
  • 시스템은 자동으로 가장 비용이 큰 함수(컨볼루션)를 감지하고 오프로딩하여 ARM CPU 부하를 약 50% 감소시켰다.
  • Complement에서 7.4×, DotProduct에서 6.3×, PatternMatch에서 22.7×의 성능 향상이 다수 벤치마크에서 일관되게 관찰되었다.
  • FFT 사례에서 DSP에서의 성능이 열 劣화되어 0.7×의 속도 향상이 관찰된 바, 시스템은 오프로딩 결정을 취소함으로써 동적 적응성을 입증하였다.
  • 지속적인 성능 모니터링과 적응형 자원 할당을 통해 실시간 영상 처리를 성공적으로 처리하였다.

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

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

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

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