본문 바로가기

Paper

NeuOS : A Latency-Predictable Multi-Dimensional Optimization Framework forDNN-driven Autonomous Systems

NeuOS: A Latency-Predictable Multi-Dimensional Optimization Framework for DNN-driven Autonomous Systems

NeuOS : A Latency-Predictable Multi-Dimensional Optimization Framework forDNN-driven Autonomous Systems

 

Abstract

컴퓨터 비전에 사용되는 심층 신경망 (DNN)은 이미지 / 물체 인식 및 추적과 같은 애플리케이션을 위한 자율 임베디드 시스템에서 일반적으로 사용되는 광범위한 기술이되었습니다. 이러한 시스템에서 볼 수있는 엄격한 공간, 무게 및 전력 제약으로 인해 DNN의 실용적이고 안전한 구현에 큰 장애가됩니다. 왜냐하면 최소 에너지 소비와 최대 정확도를 보장하면서 지연 시간을 예측할 수 있어야하기 때문입니다. 안타깝게도 (1) ​​시스템 및 애플리케이션 수준 솔루션간에 스마트 조정(smart coordination)을 수행해야하고, (2) 레이어 특성을 고려해야하며, 더 중요한 것은 (3) 여러 DNN이 존재하는 경우 시스템 구성에 대한 합의(consensus)를 계산해야하는데, 이는 이전에 고려 된 어떤 시나리오보다 훨씬 더 어려운 문제입니다. 이 논문에서는 자율 시스템에서 다중 DNN 워크로드를 실행하기위한 포괄적인 지연시간 예측 가능 시스템 솔루션인 NeuOS를 제시합니다. NeuOS는 지연 예측 가능성(latency predictability)을 보장하는 동시에 smart coordination 시스템 및 여러 DNN 인스턴스 간의 애플리케이션 수준 의사결정을 통해 특정 시스템 제약 조건에 따라 에너지 최적화 및 동적 정확도 조정을 관리 할 수 ​​있습니다. 우리는 인기있는 DNN 모델 세트로 두 개의 최첨단 자율 시스템 플랫폼에서 NeuOS를 구현하고 광범위하게 평가합니다. 실험에 따르면 NeuOS는 deadlines을 거의 놓치지 않으며 최첨단 기술에 비해 에너지와 정확성을 상당히 향상시킬 수 있습니다.

 

1 Introduction

최근 컴퓨터 비전 연구의 붐으로 인해 자율 주행 차량의 물체감지(object detection) 및 로봇 공학의 이미지 인식(image recognition)과 같은 자율 임베디드 시스템 (AES: Autonomous Embedded Systems) 영역에서 학습 기반 기술의 흥미로운 응용이 이루어졌습니다. 특히, 일반적으로 동일한 빌딩 블록을 가진 심층 신경망 (DNN)은 미래에 완전한 자율성을 가능하게하는 이미지 인식, 물체 감지, 추적(tracking) 및 위치 파악(localization)의 효과적이고 정확한 구현으로 주로 적용되었습니다 [60, 50]. 예를 들어, 이러한 DNN 만 사용하여 Tesla는 최근 자율 주행 자동차에서 상당한 자율성을 달성 할 수 있음을 입증했습니다 [33]. 실제로 DNN 기반 자율 시스템의 실현 가능성에 대한 또 다른 촉매제는 빠르고 에너지 효율적인 임베디드 플랫폼, 특히 NVIDIA Drive AGX 및 Tesla AI 플랫폼과 같은 가속기 지원 멀티 코어 시스템의 발전이었습니다 [44, 22].

임베디드 하드웨어 플랫폼을 기반으로하는 자율 시스템은 엄격한 공간, 무게 및 전력 (SWaP:Space, Weight, and Power) 제약에 의해 제한됩니다. SWaP 제약으로 인해 시스템 설계자는 에너지 효율성을 신중하게 고려해야합니다. 그러나 DNN 기반 자율 임베디드 시스템은 미션 크리티컬 실시간 애플리케이션(mission-critical real-time applications)으로 간주되므로 엄격한 인증을 통과하고 최종 사용자에게 안전하기 위해서는 예측 가능한 레이턴시와 충분한 정확도(DNN 출력)가 필요합니다 [46]. 이는 정확한 DNN이 실현 가능하고 시간을 예측할 수 있도록 엄청난 양의 자원을 필요로하며 이러한 시스템에서 자원 소비의 가장 큰 원천이기 때문에 에너지 효율성과의 어려운 충돌을 일으킵니다 [5]. 이로 인해 일반적으로 이러한 시스템에서 설계 및 사용되는 덜 복잡하고 리소스가 덜 필요한 DNN 모델이 생성되어 정확도가 상당히 감소합니다.

그림 1 (a)는 레이턴시, 전력 및 정확도 사이의 가상 3차원 공간을 삼항 플롯 [55] ((에너지 + 타이밍 + 정확도)이 3으로 정규화 됨)에 매핑 된 것을 보여줍니다. 그림 1 (a)의 각 점은 고유한 대기 시간, 전력 및 정확도 특성을 갖는 구성을 나타냅니다. 전력 소비는 일반적으로 동적 전압 / 주파수 스케일링 (DVFS) [5, 21]을 통해 시스템 수준에서 조정됩니다. 정확도 조정은 DNN 접근 구성 전환을 통해 애플리케이션 수준에서 수행됩니다 (자세한 내용은 섹션 4 참조). DVFS 및 DNN 구성 조정은 모두 런타임 대기 시간에 영향을 미칩니다. 이 그림은 다양한 수준의 지연 시간, 전력 소비 및 현재 성능 제약을 감안할 때 허용 될 수도 있고 허용되지 않을 수도있는 정확도 절충이있는 세 가지 구성을 강조합니다. 방대하고 복잡한 DVFS 및 정확도 구성 공간을 고려할 때 최상의 3 차원 트레이드 오프 최적화 지점을 선택하는 것은 중요한 과제입니다.

모든 자율 시스템은 본질적으로 지연 시간을 예측할 수 있어야하지만 전력 및 정확도에 대한 제약은 자율 시스템의 유형에 따라 달라질 수 있습니다 (예 : 드론의 경우 전력 제한이 높고 자율 주행의 경우 최대 정확도 요구). 이러한 변형 중 하나를 설명하기 위해 지연 시간에 대한 제약과 가능한 구성을 상당히 제한하는 구성 공간에 부과된 정확도에 대한 제약을 보여주는 그림 1 (b)를 참고하십시오.

 

Challenges specific to DNN-driven AES.

앞서 언급 한 최적화 문제 외에도 DNN은 각 계층이 DVFS 변경에 다르게 반응하고 고유 근사 특성을 갖는 레이어로 구성됩니다 (섹션 3.1에서 설명 할 것임). 최적화 된 에너지 소비 및 정확도로 레이턴시 목표를 충족하기 위해 각 레이어에는 고유한 DVFS 및 approximation configuration이 필요하지만 Poet [23] 및 JouleGuard [21]와 같은 기존 접근 방식은 DNN을 블랙 박스로 처리합니다. 또한 시스템 레벨 DVFS 조정 및 애플리케이션 레벨 정확도 조정은 두 개의 개별 단계에서 발생합니다. smart coordination이 없다면 시스템은 Sec. 3.2에서 보여줄 것처럼 negative 피드백 루프에 빠질 수 있습니다. 3.2. 이러한 coordination은 레이어 경계에서 이루어져야하므로 문제를 이전 작업보다 훨씬 더 어렵게 만듭니다.

더불어 기존 기술은 대부분 single tasking scenario에 초점을 맞추고 [5, 3, 20] AES는 일반적으로 서로 다른 DNN의 여러 인스턴스를 필요로합니다. 실제 사례를 이용한 Sec. 3.3.에서 모티브를 보이듯이, 이러한 DNN은 greedy하고 비효율적인 의사 결정을 피하기 위해 계층별로 통신하고 집단을 구축해야합니다. 게다가 이 멀티 DNN 시나리오에서 시스템 수준 및 애플리케이션 수준의 조정은 이전 작업에서 고려한 격리된 프로세스보다 훨씬 어렵습니다.
마지막으로, 기존 접근법 [13, 5]은 레이턴시 목표를 초과 할 수있는 최선의 노력 (예 : 제어 이론 사용)으로 레이턴시 성능을 최적화합니다 (섹션 3.2에서 설명). 더 나은 솔루션은 LAG 분석 [51]과 같은 입증 된 실시간 런타임 전략을 포함해야합니다.

 

Contribution.

본 논문에서는 자율 임베디드 시스템의 다중 DNS 워크로드를위한 포괄적 인 타이밍 예측 가능 시스템 솔루션 인 NeuOS를 소개합니다. NeuOS는 smart coordinated 시스템 및 애플리케이션 레벨의 의사 결정을 통해 특정 시스템 제약 조건을 기반으로 DNN에 대한 에너지 최적화 및 동적 정확도 조정을 관리 할 수 ​​있습니다.
NeuOS는 기본적으로 공유 채널을 통해 통신 할 수있는 DNN 인스턴스 집합 인 코호트 개념을 도입하여 멀티 DNN 실행 아이디어를 기반으로 설계되었습니다. 이 코호트를 추적하기 위해 다중 DNS 코호트에서 지연 시간, 에너지 및 정확도를 효율적으로 측정하고 전파하는 방법을 다룹니다.
지연 예측 가능성(즉, 각 DNN 인스턴스 처리에 대한 기한 충족)을 제공하는 근본적인 목표 외에도 NeuOS는 우리가 아는 한 문헌에서 결코 다루지 않은 DNN에 대한 시스템 수준의 에너지와 애플리케이션 수준의 정확도를 균형있게 조정하는 문제를 해결합니다. 멀티 DNN 시나리오의 다양한 실행 수준에서 세 가지 제약 조건의 균형을 맞추려면 1) 시스템 수준과 응용 프로그램 수준 의사 결정 간, 2) 여러 DNN 인스턴스 간 스마트 조정이 필요합니다.

 

이러한 조정을 위해 각 DNN 인스턴스의 레이어 완료 경계에서 실행되는 Sec 4.2의 두 가지 알고리즘을 소개합니다:

코호트의 각 DNN 구성원에 대한 최상의 시스템 수준 DVFS 구성을 예측하여 데드라인을 맞추고 다가오는 계층의 특정 구성원에 대한 전력을 최소화 할 수있는 하나의 알고리즘, 그리고 이러한 시스템 레벨 DVFS 결정 중 하나가 선택된 경우 다른 사용자에게 필요한 애플리케이션 레벨 근사 구성을 결정하는 하나의 알고리즘.

이 두 알고리즘은 데드라인을 맞추기 위해 다음 계층에 대한 모든 작업 과정을 효과적으로 전파합니다. 이 두 가지 알고리즘을 기반으로 Sec. 4.3에서 최적화 문제를 제안합니다. 시스템 제약에 따라 최선의 조치를 결정하고 시스템 오버 헤드를 최소화 할 수 있습니다.
이 방법은 1) 코호트의 모든 DNN 인스턴스간에 동일한 decision-making을 도입하고 시스템 수준과 애플리케이션 수준 의사 결정 간의 조정 문제를 해결하고, 2) 에너지와 정확도에 다른 제약을 부과하는 세 가지 일반적인 시나리오에 대한 적응성을 제공하기 때문에 효과적입니다.

 

Implementation and Evaluation.

 

우리는 NeuOS의 시스템 프로토 타입을 구현하고 AES에서 사용되는 컨볼루션 심층 신경망의 대표로서 인기있는 이미지 감지 DNN을 사용하여 NeuOS를 광범위하게 평가합니다. 평가는 다음 조건에서 수행됩니다. :

• Extensible in terms of architecture.

우리는 두 가지 다른 플랫폼에서 인기있는 DNN 모델 세트를 사용하여 NeuOS를 완전히 구현합니다. :
NVIDIA Jetson TX2 SoC (낮은 오버 헤드 임베디드 시스템 용으로 설계된 아키텍처 포함), 및 NVIDIA AGX Xavier SoC (자율 주행 자동차와 같은 복잡한 자율 시스템 용으로 설계된 아키텍처 포함).

• Multi-DNN scenarios.

우리 시스템은 세 가지 코호트 크기에서 NeuOS를 테스트하여 모든 조건에서 여러 DNN을 절충하고 균형을 맞출 수 있습니다. :

작은 1- 프로세스, 중간 2-4 프로세스 및 대형 6-8 프로세스.

 Latency predictability.

NeuOS를 6가지 최신 솔루션과 광범위하게 비교 한 결과, NeuOS가 평가 된 모든 시나리오에서 데드라인을 거의 놓치지 않고 런타임 지연 시간을 TX2에서 평균 68 % (DNN 복잡성에 따라 8 %에서 96 % 사이) AGX에서 평균 40 % (12 % ~ 89 %), 전체적으로 54 % 개선 할 수 있음을 발견했습니다.

 Versatility.

NeuOS는 다음 세 가지 제약 시나리오에 쉽게 적용 할 수 있습니다.
– 균형 잡힌 에너지와 정확성.
주어진 시스템 제약없이 NeuOS는 합리적인 수준의 정확도를 희생하면서 에너지 효율성이 입증되어 TX2에서 평균 68 %, AGX에서 평균 40 %까지 에너지 소비를 개선하고 평균 21 %의 정확도 손실을 발생시킵니다. (19 %에서 42 % 사이).
– 최소 에너지.
에너지가 최소로 제한되면 NeuOS는 정확도를 약간 (최대 23 %) 희생 할 수 있지만 일반 제한없는 경우에 비해 에너지 소비를 11 %까지 향상시키면서 지연 시간 요구 사항을 충족 할 수 있습니다.
– 최대 정확도.
정확도가 제약으로 주어지면 NeuOS는 균형 잡힌 케이스에 비해 정확도를 평균 10 % 향상시킬 수 있지만 에너지를 약간만 희생하여 평균 23 % 증가시킵니다.

 

 

2 Background

DVFS space in autonomous systems.

Latency와 전력 소비 간의 균형은 일반적으로 하드웨어 구성 요소의 주파수 및 전압 조정을 통해 이루어집니다. 현대 시스템의 일반적인 소프트웨어 및 하드웨어 기술은 DVFS입니다. DVFS를 통해 운영 체제 또는 하드웨어 솔루션과 같은 시스템 소프트웨어는 전압과 주파수를 동적으로 조정할 수 있습니다. 이 기술을 더 잘 이해하려면 2개의 NVIDIA Denver 빅 코어와 4 개의 ARM Cortex A53 LITTLE 코어가있는 big.LITTLE 아키텍처의 Parker SoC가 포함된 Jetson TX2의 구성 요소를 보여주는 그림 2 (a)를 고려하십시오. Parker SoC에는 256 코어 Pascal 아키텍처 GPU도 포함되어 있습니다. TX2 모듈에는 8GB의 공유 메모리도 포함되어 있습니다 (Sec. 5에서도 사용되는 Jetson AGX Xavier에는 8 개의 NVIDIA "Carmel"코어, 512 볼타 아키텍처 GPU 및 16GB의 공유 메모리가 포함된 고급 Xavier SoC가 있습니다). 각 구성 요소에는 소프트웨어를 통해 조정할 수있는 전압 / 주파수 (V / F) 게이트가 포함되어 있습니다. 각 구성 요소의 주파수 및 전압 값은 이 논문 전체에서 DVFS 구성이라고하는 고유한 토플을 형성합니다.

 

DNN and its approximation techniques.

그림 2 (b)는 심층 신경망 (DNN)의 단순화 된 버전을 보여줍니다. 뉴런은 DNN의 기본 구성 요소입니다. 뉴런이 속한 계층에 따라 다양한 작업을 수행합니다. DNN에는 입력 및 출력을 통해 연결된 컨볼루션 및 정규화 레이어와 같은 다양한 유형의 여러 레이어가 포함될 수 있습니다.
본질적으로 DNN은 근사 함수입니다 [36]. DNN은 특정 트레이닝 셋에 대해 훈련됩니다. 훈련 후 정확도는 테스트 데이터 셋을 사용하여 훈련 셋과 별도로 설정하고 정확도를 측정합니다 (예 : 상위 5 개 오류율-ground truth와 상위 5 개 추측 비교). 전체 DNN의 정확도는 레이어 파라미터를 조작하여 조정할 수 있습니다.
많은 DNN 근사 기법이 문헌에서 제안되었으며 산업에 적용되었습니다 [17, 58, 24, 29, 43, 56, 7, 18]. 이러한 기술은 DNN 워크로드 실행을 위한 계산 및 저장 오버 헤드를 줄이는 것을 목표로합니다. 컨볼루션 레이어에 대한 근사치를 제공하는 기술의 예는 컨볼루션 필터의 낮은 순위 분해를 수행하는 Lowrank [45]입니다. 구현에서 동적 정확도 조정 레이어인 "hot swapping"레이어는 실행 전에 다음 레이어에 lowrank 분해를 적용하는 것을 의미합니다. 생성된 레이어 쌍이 정확히 결합 된 입력 및 출력 차원을 갖기 때문에 이러한 근사 조정을 즉시 적용 할 수 있습니다. 또한 이 조정은 각 레이어 경계의 향후 레이어에 대해서만 가능합니다.

 

Measuring Accuracy. 

즉석 근사치는 최종 정확도에 영향을 미칩니다. 이 조정의 동적인 특성으로 인해 기존 방법론을 사용한 정확한 측정 값은 비실용적입니다. 따라서 대부분의 관련 작업은 대체 채점 방법 [3]을 통합합니다. 여기서 특정 근사 기법이 다음 계층에 적용되는 경우, 시스템이 그에 따라 정확도 점수를 추론합니다. 우리의 방법에서는 원래 DNN에 대한 만점을 가정하고 모든 레이어의 lowrank 근사값으로 전환하면 점수가 설정된 양만큼 감소합니다. 예를 들어 AlexNet을 전체적으로 실행하면 100 점을 얻게됩니다. 컨볼루션 레이어를 해당 레이어의 낮은 등급 버전으로 교체하면 전체 정확도가 어느 정도(예 : 방법에서 1) 영향을 받게되므로 낮은 점수 (예 : 채점 방법에서 99 점) 결과가 산출됩니다. 따라서 점수는 항상 원래 DNN 구성에 상대적이며 특정 데이터 세트의 정확도 절대값과 관련이 없습니다. 상대적 정확도를 유지하는 이 방법은 동적 런타임 환경에서 정확도를 최대화하는 데 여전히 매우 중요하지만 정확한 정확도 손실을 계산하는 데 사용할 수는 없습니다.

 

 

3 Motivation

이 섹션에서는 DNN에 존재하는 문제를 이해하고 기존 접근 방식 (또는 나이브하게 확장 된 접근 방식)이 문제 컨텍스트에서 실패 할 수 있는 이유에 대한 통찰력을 얻기 위해 몇 가지 동기 부여 사례 연구가 있습니다.

3.1 Balancing in two-dimensional Space

애플리케이션에 대한 근사 구성을 선택하여 정확도를 최대화하면서 지정된 레이턴시 목표를 충족하기위한 trade-off가 2차원 공간에서 수행됩니다. 마찬가지로 최적의 DVFS 구성을 변경하여 에너지와 레이턴시 간의 2차원 trade-off가 이루어집니다. 전통적인 제어 이론 기반 솔루션은 전체 애플리케이션을 블랙 박스로 취급하고 특정 애플리케이션을 몇 번 반복 할 때마다 어떤 DVFS 또는 approximation configuration을 선택해야 하는지를 결정합니다 [21, 20]. 그러나 DNN을 블랙 박스로 취급하면 가장 효율적인 결과를 얻을 수 없습니다. 그림 3의 왼쪽은 에너지 소비 측면에서 Jetson TX2에 대해 가능한 모든 DVFS 구성 중에서 AlexNet의 각 레이어에 대한 최상의 DVFS 구성을 보여줍니다. y축은 AlexNet의 레이어 번호이고 x 축은 DVFS 구성 인덱스이며 주파수 및 활성화 된 코어 수를 기반으로 부분적으로 정렬됩니다. 점은 절대 최소 에너지 소비를 갖는 구성을 나타냅니다. 분명히 알 수 있듯이 각 레이어는 최적의 DVFS 구성이 다릅니다. 더 흥미롭게도 우리는 때때로 더 빠른 DVFS 구성이 더 낮은 에너지 소비를 갖는 비선형성을 관찰합니다. 이는 GPU의 대규모 병렬화 때문입니다. 예를 들어 주파수를 2 배로 늘리면 성능이 10배 향상되어 일시적인 에너지 소비 증가를 능가 할 수 있습니다. 그림 3의 오른쪽은 12ms 데드라인을 맞추기 위해 AlexNet의 각 계층에 필요한 최고의 이론적 approximation configurations을 보여줍니다. 그림에서 알 수 있듯이 각 레이어에는 최적의 결과를 위해 서로 다른 근사 구성이 필요합니다.

따라서 DNN은 올바른 결정을 내리기 위해 레이어별 정보를 전달하면서 시스템에 명료해져야 합니다. 이렇게하면 DNN 애플리케이션을 실행할 때마다 모든 계층을 고려해야하므로 2차원 공간의 의사 결정 공간을 적어도 10 배 더 어렵게 만들 수 있습니다 (예 : AlexNet에는 23 개의 계층이 있음).

 

Observation 1 : Layer-level trade-off는 문제를 기존 블랙 박스 기술보다 훨씬 어렵게 만듭니다.

 

3.2 Balancing in three-dimensional Space

에너지/레이턴시와 정확도/레이턴시을 분리하여 균형을 맞추는 것은 나이브 할 수 있으며 불필요한 에너지 소비 또는 정확도 감소로 이어질 수 있습니다. 그림 4a는 Sec. 3.1과 유사한 실험을 보여줍니다. 그러나 시스템과 애플리케이션 (Alexnet)은 조정없이 동시에 사용됩니다. 두 솔루션의 목표는 20ms의 데드라인에 도달하는 것입니다 (latency deficit, LAG를 지침으로 사용하여 (섹션 4.2)). AlexNet의 경우 시스템 수준 DVFS 조정으로 원하는 기한을 충족 할 수 있습니다. 이상적인 시나리오에서는 AlexNet이 일정보다 늦지 않을 때까지 에너지만 약간 조정됩니다. 그러나 그림에서 알 수 있듯이 정규화 된 에너지 소비와 각 레이어의 정확도는 지속적으로 그리고 극적으로 감소합니다. 이는 원치 않는 네거티브 루프 때문입니다. 여기서 negative deficit(시스템이 schedule보다 늦음을 나타냄)으로 인해 애플리케이션 수준 솔루션이 더 낮은 approximation configuration으로 전환됩니다. 이러한 구성은 개별적이므로 Sec. 4.2에서 deficit는 오버 슈트 (레이어 10 부근에서)되고 양수 (시스템이 일정보다 앞서 있음)가 됩니다. 시스템 수준 솔루션은 이 deficit을 에너지 소비를 줄이기위한 헤드룸으로 간주하고 그림 4a의 경우 레이어 18 주변에서 positive deficit를 small negative로 전환했습니다. 이 주기 (그림 4b 참조) 최소 approximation configuration에 도달 할 때까지 반복됩니다. 이 결과는 자율 주행과 같은 정확도에 민감한 애플리케이션에서 매우 바람직하지 않습니다 (그러나 원격 감지와 같은 에너지에 민감한 애플리케이션에는 적합 할 수 있음). 따라서 실행 가능한 솔루션은 시스템과 응용 프로그램이 통신하고 주어진 제약 조건을 기반으로 응용 프로그램에 대해 주어진 제약 조건에 따라 결정을 내리는 것입니다. 이 통신은 레이어의 세분화로 이루어져야하므로 문제가 더욱 어려워집니다.

 

Observation 2 : Latency, energy and accuracy의 3차원 최적화 공간에서 trade-off는 두 시스템의 제약뿐 아니라 애플리케이션 수준 솔루션과 시스템 수준 솔루션 간의 조화 부족때문에 중요한 과제입니다.

 

 

3.3 Balancing for Multi-DNN Scenarios

우리가 아는 한, 기존의 접근 방식은 조정하는 방식으로 여러 DNN 인스턴스를 처리하지 않습니다. PredJoule [5]과 같은 단일 작업 대기 시간 / 에너지 절충 방식을 멀티 태스킹 시나리오로 간단하게 확장하면 일부 측정 변수를 기반으로 한 로컬 및 greedy decision-making 만 가능합니다. 이 추가 차원에서 조정이 중요한 문제인 이유를 보여주기 위해 그림 5를 살펴보면, Jetson TX2의 PredJoule에서 평균 20 회 이상 반복 된 8 개의 DNN 인스턴스를 함께 실행하기위한 대기 시간 및 에너지 소비를 보여줍니다. PredJoule을 선택한 이유는 실험에서 DNN에 대한 대기 시간과 에너지 간의 2D 절충점을 탐색하는 데있어 다른 모든 기존 솔루션을 능가했기 때문입니다. 그림 5의 왼쪽 y축은 각 인스턴스의 latency를 초 단위로 나타냅니다. (오른쪽 y축은 각 인스턴스의 energy consumption을 miliJoules로 나타냄.) 그림에서 알 수 있듯이 DVFS 관리는 탐욕스럽기 때문에 인스턴스 1과 2는 상대적으로 좋은 대기 시간과 에너지 소비를 갖습니다. 이러한 탐욕은 나머지 DNN 인스턴스를 허용 할 수 없는 지연 시간 범위 (ResNet-50의 경우 150ms 이상)로 만들었습니다. 각 레이어 경계에서 선택한 DVFS 구성이 DNN 인스턴스 1과 2의 현재 계층에만 대부분 유익했기 때문입니다. 타이밍 및 에너지 소비의 분포는 동일한 이유로 모든 인스턴스에 걸쳐 균일하지 않습니다. 이러한 불일치는 로컬 변수를 기반으로 DVFS 구성을 탐욕스럽게 선택하는 조정되지 않은 시스템 솔루션의 결과입니다.

Observation 3 : 레이턴시 / 정확도 / 에너지 trade-off를 해결하는 2D 및 3D 복잡성 외에도 완전한 시스템 솔루션은 기본적으로 단일 DNN 시나리오보다 모델링 및 예측이 더 복잡한 다중 DNN 시나리오를 수용해야합니다. 사례 연구는 또한 기존 단일 DNN 2D 솔루션에 대한 naive 확장이 다중 DNS 사례에서 실패 할 수 있음을 암시합니다. 전반적으로 최적이 되도록 하는 조정없이 지역 변수를 기반으로 greedy 결정을 내리기 때문에 다중 DNN 사례에서 실패 할 수 있음을 암시합니다.

 

4 System Design


4.1 NeuOS Overview

레이어 단위에서 3 차원 트레이드 오프 공간을 최적화하려면 먼저 두 가지 기본 연구 질문에 답해야합니다.
1) 시스템에서 세 가지 성능 제약의 값을 정의하고 추적하는 방법, 

2) 각 제약을 최적화하기 위해 어떤 목표를 부과해야하는지.


첫 번째 연구 질문의 경우, 레이어 경계에서 DNN 실행 진행 상황을 추적하는 LAG의 값(Sec. 4.2에서 정의한 상대적인 데드라인 D를 만족하는 이상적인 스케쥴에 비해 DNN이 얼마나 뒤쳐져 있는지 측정), 각 레이어의 에너지 소비량 (mJ)에 대한 P, 정확도를 반영하는 변수 X를 정의합니다. 두 가지 이유로 더 실용적이기 때문에 종단 간 최적화를 사용하는 대신 런타임에 LAG를 추적하기로 선택합니다.

1) 다중 DNS 시나리오에서, 서로 다른 DNN 인스턴스 간의 겹침을 예측하는 것(따라서 최적 솔루션을 조정)은 동기화 된 릴리스 시간과 같은 비현실적인 가정없이 오프라인에서 수행 할 수 없습니다. 

2) to-end 최적화 프레임 워크는 지연 목표를 놓칠 수 있는 반면에 LAG는 시스템의 다른 프로세스에 의한 간섭과 같은 외부 간섭을 설명 할 수 있기 때문에 실제 시스템에서 특히 유용합니다. 또한 Sec. 4.2에서 말하듯이, P의 값은 LAG에서 추론 할 수 있고 이 두 변수는 기본적으로 런타임 DVFS 구성에 의존합니다. 따라서 DNN 실행 상태를 추적하기위한 필수 변수를 {LAG, X}로 단순화 할 수 있습니다. 다중 DNN 시나리오를 다루기 때문에 각 DNN 인스턴스에는 이러한 변수의 자체 세트가 있습니다. 시스템의 집합적 상태를 알기 위해 각 DNN 인스턴스는 해당 변수를 공유 대기열(queue)에 넣습니다.

 시스템에 어떤 최적화 목표를 적용해야 하는지에 대한 두번째 질문에 답하기 위해, 다른 성능 제약을 수반하는 다음 세 가지 일반적인 시나리오 (4.3 절에서 계속됨)에 초점을 맞춥니다.
Min Energy (M_P)는 매우 작은 에너지 envelope가 있는 임베디드 시스템에 NeuOS가 배치 된 경우입니다. 따라서 시스템은 너무 많은 정확도를 희생하지 않고 에너지를 최소화해야합니다. 이 시나리오는 드론, 로봇 공학 및 대규모 사물 인터넷 장치와 같은 극도로 전력이 제한된 시스템에서 볼 수있는 애플리케이션을 모티브합니다. 
Max Accuracy (M_A)는 에너지가 제한되어 있지만 정확도가 가장 중요한 시스템에 NeuOS가 배포 된 경우입니다. 따라서 시스템은 너무 많은 에너지를 잃지 않고 정확도를 최대화하려고 노력해야합니다. 이 시나리오는 자율 주행과 같은 CPS 관련 애플리케이션에 의해 동기가 부여되었습니다.
Balanced Energy and Accuracy (S)는 시스템이 에너지 소비와 정확도 요구 사항 모두에 의해 제한되지만 어느 쪽에도 우선 순위가 부여되지 않는 일반적이고 유연한 시나리오를 설명합니다. 따라서 시스템은 에너지 소비와 정확성의 균형을 유지해야합니다. 

 주어진 시나리오와 {LAG, X}의 값을 가지고 motivation에 제시된 두 가지 주요 연구 질문에 답할 수 있습니다.

1) 전체 시스템이 균형을 이루고 성능 제약을 충족 할 수 있도록 다중 DNN 시나리오에서 조정하는 방법 ,

2) 문제 공간의 복잡성을 감안할 때 지연, 에너지 및 정확도 사이의 효율적인 절충안과 균형 조정 방법과 Sec. 3.2에서 논의 된 부정적인 피드백 루프를 방지하는 방법?

 

Design overview. 

그림 6은 {LAG, X}를 중심으로 한 NeuOS의 전체적인 디자인을 보여줍니다. 왼쪽은 여러 DNN 인스턴스 간의 공유 대기열을 나타냅니다. 중간에는 각각 3 개의 레이어가있는 n 개의 동시 실행 DNN 인스턴스의 간단한 예가 표시됩니다. NeuOS는 DNN 인스턴스의 레이어가 완료 될 때마다 레이어 경계에서 DVFS 및 DNN 근사 구성 조정에 대한 런타임 결정을 내립니다. 즉석으로 근사치를 적용하는 것이 레이어 경계에서만 가능할뿐만 아니라 오버 헤드 측면에서도 유용합니다 (우리의 평가에서 입증 됨). 

그림에서 볼 수 있듯이 첫번째 DNN 인스턴스의 레이어 L2와 L3 사이의 경계에서 NeuOS는 여러 단계를 포함하는 의사 결정 과정을 거치고 있습니다. 첫 번째 단계는 Alg.1로, 각 DNN 인스턴스에 대해 마지막으로 알려진 LAG 값을 감지합니다. Alg. 1은 데드라인 D를 맞추기 위해 각 인스턴스에 가장 적합한 DVFS 구성 (시스템 수준에서)을 결정하고, 목록의 각 구성원이 DNN 인스턴스에 해당하는 잠재적 DVFS 구성 (Delta) 목록을 출력합니다. 다음 단계에서는 잠재적인 DVFS 구성 목록이 Alg.2에 입력되어 DNN 인스턴스 중 하나에 대한 DVFS 구성이 적용되는 경우 다른 DNN 인스턴스가 데드라인을 맞추기 위해 필요한 근사값 {Xi} (애플리케이션 수준)를 예측합니다. 따라서 Alg. 1 및 Alg. 2는 시스템이 기한을 맞추기 위해 취할 수 있는 모든 가능한 조치를 발견합니다. 그러나 이 시점에서 시스템에 어떤 DVFS 구성이나 정확도 구성을 선택해야 하는지에 대한 결정이 내려지지 않았습니다. 이는 주어진 시스템 제약에 따라 달라지기 때문입니다. 이 문제는 본질적으로 전달된 구성 공간에서 가능한 최선의 선택을 찾는 최적화 문제입니다. Sec. 4.3에서 우리는 광범위한 시나리오에 따라 다음 실행 주기를 위한 특정 세팅이 선택되는 최적화 문제를 설명합니다. NeuOS의 마지막 단계에서 시스템은 관련된 시나리오를 기반으로 이러한 가능한 것들 중 하나를 선택합니다.

 

 

4.2 Coordinated System- and Application-level Adjustments

이 섹션에서는 런타임 LAG 측정 방법, 관련된 에너지 소비 방법, 정확도 X 계산 방법, 개발된 두 알고리즘이 이 두 측정을 활용하여 LAG를 0으로 줄이고 기한을 맞추기 위해 시스템이 효율적으로 만들 수 있는 모든 가능한 선택을 발견하는 방법을 나타냅니다.

 

LAG. 

우리는 DNN 인스턴스 i의 시간 t에서 부분적인 실행시간(e_i)과 LAG_i로 표기되는 LAG의 한 형태인 데드라인 D_i 사이의 관계를 정량화 합니다. LAG_i는 시간 t에서 데드라인과 비교하여 얼마나 앞서있는지 뒤처져 있는지 추적하는 지역변수입니다. LAG_i는 다음과 같이 계산됩니다.

L_i(t)는 시간 t까지 완료된 인스턴스 i의 레이어들의 리스트입니다. 레이어 l ∈ Li(t)의 경우 d_l과 e_l은 각각 레이어 l의 sub-deadline과 기록된 실행시간을 나타냅니다. NeuOS는 각 레이어사이의 경과시간을 측정하므로써 e_l을 계속 추적합니다. 또한 DNN 인스턴스 i의 상대적인 (end-to-end) 데드라인 D_i에 기반하여 각 레이어에 대한 sub-deadlines를 고안하는 비례 데드라인 방식을 사용합니다. 여기서 레이어 l에 대한 sub-deadline d_l은 다음과 같이 계산됩니다.

여기서 [Sigma] _x∈L_i (e_x)는 DNN i의 실행시간을 나타냅니다. sub-deadline의 비례 특성은 플랫폼에서 지정된 DNN 인스턴스의 수명 동안 한 번만 계산하면 된다는 것을 의미합니다.

각 DNN 인스턴스는 공유 대기열을 통해 모든 인스턴스에 LAG_i를 뿌립니다. 따라서 LAG_i는 마지막으로 실행 된 레이어까지 마지막으로 알려진 DNN 인스턴스 i의 상태를 반영합니다. 모든 인스턴스의 LAG 컬렉션을 LAG 코호트라고 부르고 [파이]F로 표시합니다. DNN 인스턴스가 완료되면 시스템의 모든 DNN 인스턴스 종료를 알리도록 특수 메시지가 코호트에 전송됩니다. 

LAG 코호트를 기반으로 DNN 인스턴스는 정확성과 DVFS에 대한 결정을 내릴 수 있습니다. 코호트는 그 안의 모든 LAG가 0이거나 ∀LAGi ∈F, LAGi = 0이면 완벽합니다. 이것은 모든 레이어가 지금까지 하위 마감일까지 정확하게 완료되었음을 의미합니다. 따라서 시스템은 DNN 인스턴스가 마감일까지 정확히 완료되고 프로세스의 에너지와 정확도를 절약 할 더 빠른 DVFS 또는 근사 구성이 필요하지 않다고 믿을 이유가 있습니다.

LAG는 각 DNN이 얼마나 뒤 (LAG <0) 또는 앞서 (LAG> 0)인지 나타내므로 DVFS 및 approximation configuration을 조정하여 그에 따라 더 빠르거나 느리게 실행해야합니다. 그러나 에너지 소비 및 정확도 제약도 고려해야합니다. 우리는 다음에 각각 논의합니다.

System-level DVFS adjustment. 

 시스템 수준에서 문제는 LAG를 0으로 줄이면서 에너지 소비를 최소화하기 위한 [파이]F의 상태를 고려할 때 어떤 DVFS 구성이 가장 좋은지입니다. 답은 서로 다른 LAG를 나타내기 때문에 코호트의 서로 다른 DNN 인스턴스마다 다릅니다. 또한 서로 다른 레이어는 DVFS 조정에 다르게 반응합니다.
Alg. 1은 코호트의 각 DNN 인스턴스에 대해 최상의 DVFS 구성을 찾는 역할을 합니다. Alg. 1은 LAG 코호트 [파이]F와 각 DNN 인스턴스 i의 현재 레이어에 대한 SpeedUp / PowerUp 테이블을 입력(input)으로받습니다. SpeedUp / PowerUp 테이블의 구조는 표 1a에 나와 있습니다. 표 1a의 첫 번째 열은 시스템에서 가능한 모든 DVFS 구성에 대한 인덱스입니다. 두 번째 열은 기준 DVFS 구성과 비교하여 최악의 시나리오에서 각 DVFS 구성의 속도를 나타냅니다 (일반적으로 기준은 가장 느린 구성으로 선택됨). 세 번째 열은 DVFS 구성이 기준에 비해 소비하는 전력량을 나타냅니다.

 상대적인 속도 향상 및 파워 업 값 (절대값 측정 대신)을 저장하면 테이블을 찾는 데 유용합니다. Alg. 1에서, DNN 인스턴스 i에 대한 LAG_i (2 행) 및 상대적 기한 D_i가 주어지면 필요한 speedup (S_i로 표시)은 다음과 같이 직접 계산할 수 있습니다 (3 행).

여기서 S_P는 현재 예상 실행 시간 (D_i + LAG_i)과 이상적인 실행 시간 (D_i) 간의 관계로 계산 된 속도 증가 (또는 감속) 값입니다. LAG는 음수 또는 양수일 수 있으므로 S_P 값은 감속 또는 속도 향상을 나타낼 수 있으며 감속은 에너지를 절약하는 방법이며 NeuOS의 목표입니다. LookUp 절차 (4 행)는 현재 구성과 관련하여 속도 향상 (또는 감속)과 일치하는 가장 가까운 DVFS 구성을 찾습니다.

 Alg.1이 작동을 위해, 해시 형식의 모든 DNN 인스턴스에 대해 표 1a와 같은 구조를 준비합니다. 그런 다음 LookUp 절차는 SpeedUp을 인덱스로 사용하여 버킷을 직접 찾습니다. Alg.1의 출력은 {d1, d2, ..., dn} = [Delta]집합이며, 여기서 delta_i는 기한을 맞추기 위해 DNN 인스턴스 i에 대한 이상적인 DVFS 구성입니다. 궁극적으로 delta_c ∈ Delta가 다음 스케줄링 기간에 가장 적합한 DVFS 구성이다 라고 결정한다고 생각해보십시오. 매우 흥미로운 질문은 다른 DNN 인스턴스 i가 c가 아니라면 delta_c를 적용하는 것에대한 효과는 무엇입니까? 다른 DNN 인스턴스에 대한 delta_c의 speedup은 해당 SpeedUp / PowerUp 테이블에서 lookup key로 delta_c를 사용하여 계산할 수 있습니다. 그러나 이 speedup이 LAGi를 0으로 줄이지 않으면 어떻게 될까요? 다음으로 이 문제를 해결하기 위해 DVFS 구성 delta_c ∈ Delta에서 LAG_i를 0으로 줄이는 데 필요한 애플리케이션 수준 근사를 계산하는 알고리즘을 제시합니다.

 

Application-level accuracy adjustment. 

Alg. 2는 DVFS 구성을 기반으로 모든 DNN 인스턴스의 향후 레이어에 필요한 근사치를 계산하는 절차를 보여줍니다. 인스턴스 i가 상대적 데드라인이 D_i 인 LAG_i의 이상적인 스케쥴보다 뒤처지고, 선택한 DVFS 구성이 delta_c인 경우 필요한 나머지 speedup을 다음과 같이 계산할 수 있습니다 (4 행).

여기서 S_Ai (delta_c)는 DVFS 구성 delta_c가 선택되었을 때 DNN 인스턴스 i에 대한 근사를 통해 필요한 speedup (또는 slowdown)이고 S_Pi (delta_c) · (D_i + LAG_i)는 DNN 인스턴스 i의 새로운 예상 실행 시간입니다. 선택된 DVFS 구성에 대한 정확도로 인한 speedup인 S_Ac 값은 정의에 따라 항상 0이거나 0보다 작아야 하고 delta_c는 c에 대한 이상적인 DVFS 구성이며 근사로부터 추가적인 speedup이 필요하지 않습니다.

 S_Ai의 값은 표 1b에 설명 된 SpeedUp / Accuracy 테이블이라는 새 테이블에 대한 lookup key로 사용됩니다. 표 1b는 각 계층의 근사 구성에 대한 상대적 WCET(Worst Case Execution Time)을 저장합니다. 해당 구성의 총 정확도 값인 X로 각 행을 인덱싱합니다. X의 정확한 값은 알고리즘에 영향을 미치지 않으며 중요한 것은 표 1b의 상대적 순서입니다 (즉, 테이블 아래로 내려 갈수록 상대적 정확도가 낮아짐). Alg.2의 output은 c를 제외한 모든 DNN 인스턴스의 기한을 충족하기에 충분한 SpeedUp / Accuracy 테이블의 행 인덱스입니다. DVFS 구성 i의 레이어 k에 대한 이 인덱스를 X_k_i로 표시합니다. 그런 다음 이 값(X_k_i)은 정확도 코호트에서 브로드 캐스팅되고 해당 DNN 인스턴스의 다음 직계 레이어에 대해 선택된 애플리케이션 레벨 구성을 나타냅니다.

남은 질문은 어떤 delta_c를 선택해야 하는가 입니다. 다음에 이 질문에 답합니다.

 

4.3 Constraints and Coordination

Alg.1 및 Alg.2의 조합은 잠재적인 DVFS 구성 Delta의 목록을 생성하고 Delta의 각 DVFS 구성에 대해 해당 DVFS 구성이 적용될 경우, 코호트의 모든 DNN 인스턴스에 필요한 approximation list을 생성합니다. 이러한 시나리오는 의사 결정 트리로 시각화 할 수 있습니다. 우리 디자인의 나머지 질문은 완벽한 LAG 코호트를 갖기 위해 어떤 경로로 가야 하는가입니다. 3.2 절에서 논의 된 바와 같이 에너지 및 정확도에 대한 요구 사항은 특정 시나리오에 따라 달라질 수 있습니다. Sec. 4.1에서 정의한 세 가지 시나리오를 기반으로 다음 세 가지 접근 방식을 제시합니다. 즉, 최소 에너지 (M_P), 최대 정확도 (M_A), 균형 에너지 및 정확도 (S).

 

Min Energy.

이 접근 방식은 정확도를 희생하면서 전력 사용량을 최소화하는 것을 목표로합니다. DVFS 후보 세트 Delta에서 최선의 DVFS 구성을 선택하려면 SpeedUp / PowerUp 테이블에서 해당하는 S_Pi (delta_c), delta_c ∈ D 값을 확인하고 해당 DNN 인스턴스에 대해 가장 작은 PowerUp 값을 가진 delta_c를 선택해야합니다. 즉:

 

여기서 PowerU_pi(delta_i)는 DNN 인스턴스 i의 SpeedUp / PowerUp 테이블에서 추출됩니다. 경험상 PowerUp의 값은 SpeedUp과 관련하여 비선형 일 수 있으므로 위에서 언급하듯이 포괄적인 검색이 필요합니다. 그런 다음 Alg.2를 사용하여 예상되는 새로운 실행 시간을 기반으로 정확도 코호트를 계산하고 브로드캐스트 할 수 있습니다. 이 접근 방식은 전력 소비가 가장 좋지만, 많은 프로세스가 정확도를 크게 떨어 뜨리지 않고 마감일을 맞추지 못할 가능성이 높으므로 DVFS의 속도 향상만으로는 코호트에서 진행 값의 대부분을 보충하지 못할 가능성이 큽니다.

 

Max Accuracy. 

이 방법에서 우리 시스템은 다음과 같은 방식으로 DVFS 구성 delta_c를 선택합니다.

여기서 [sigma] S_Aj (delta_i)는 구성 delta_i에 대한 근사치 (S_Ai)에서 필요한 모든 속도 향상의 합계입니다. 그리고 ≤ ∀ [sigma] (S_Aj (delta_x ∈ Delta))는 선택된 delta_c에 대한 근사 유도 속도 향상의 합이 다른 delta_x ∈ Delta에 대한 근사값의 다른 합보다 작거나 같아야 함을 나타냅니다 (간접적으로 최소화 된 정확도 손실을 보장합니다).

 

Statistical Approach for Balanced Energy and Accuracy.

균형 잡힌 에너지와 정확성을 달성하기 위해, 통계적 관점에서 결정을 내리기 위해 Delta의 상태와 예상 정확도 코호트를 확인하는 통계적 접근 방식을 제안합니다. S_Pi 및 S_Ai (S_Pi에 따라 달라짐)의 계산은 BRA (Bivariate Regression Analysis) [57]의 형식과 유사합니다.

여기서 (Di + LAGi) / Di는 필요한 근사치에 대한 SPi의 영향이라고 합니다. 이 영향을 측정하기 위해 먼저 다음을 계산합니다.

여기서 I는 근사에 대한 LAG의 집단적 영향(collective influence of LAG)입니다.

I의 값이 높으면, speedup으로 유도(S_Pi)된 DVFS의 낮은 값에 의해 정확도에 부정적인 영향을 줄수 있음을 의미합니다. 마찬가지로 I 값이 낮으면 DVFS로 인한 speedup 값이 낮더라도 정확도가 최소화 될 수 있음을 의미합니다. LAG값이 얼마나 크거나 작은 지에 따라 LAG 코호트 [Phi]를 세 그룹으로 나눔으로써 의사 결정을 단순화합니다. 간격의 경계는 다음을 사용하여 계산됩니다.

그런 다음 세 그룹 G1 [0 ... Boundary], G2 [Boundary ... 2 · Boundary] 및 G3 [2 · Boundary ... 3 · Boundary]가 형성되고 최종 DVFS 구성이 다음과 같이 선택됩니다.

여기서 t는 I에 대한 임계(threshold)값이며 집합 I의 표준 편차 [sigma]로 설정됩니다. 그러나 t는 전력 소비 및 정확도에 대한 요구 사항을 나타 내기 위해 시스템 설계자가 선택할 수 있습니다. t에 대한 작은 값은 시스템을 더 빠른 DVFS 구성으로 만들고 그 반대의 경우도 마찬가지입니다.

 

Discussion on choosing modes and safety. 

우리는 어떤 모드를 선택할지와 그것이 수반 할 수 있는 안전 문제에 대한 논의를 통해 설계를 마무리하고 싶습니다. 시스템 관점에서 우리의 입장은 다양한 외부 요구에 적응할 수있는 유연한 시스템 아키텍처를 설계하는 것입니다. 절대적인 미션 크리티컬 애플리케이션이 관련된 경우 우리는 최대 정확도(Max Accuracy)를 제공합니다. 그럼에도 불구하고 안전 요구 사항에 따라 균형 잡힌 접근 방식은 자율 주행 차량과 같은 응용 분야에서도 적절한 threshold로 충분할 수 있습니다. 그러나 런타임에 동적으로 모드를 선택하거나 오프라인에서 특정 시스템에 대해 정적으로 모드를 선택하는 것은 인증 표준 (자율 주행 차량의 예비 단계에 있음) 및 최대 반응 시간 및 정확도 요구 사항과 더 관련이 있습니다. 따라서 우리는 결정이 외부 정책 관리자에게 위임되어야한다고 생각합니다 [54, 31, 6, 34, 52]

 

5 Evaluation

이 섹션에서는 광범위한 평가를 통해 Caffe [25]를 기반으로 전체 구현을 테스트합니다.

5.1 Experimental Setup

이 섹션에서는 2 개의 임베디드 플랫폼과 4 개의 인기있는 DNN 모델을 포함하는 실험 설정을 설명합니다. NeuOS를 기존의 6 가지 접근 방식과 비교합니다.


Testbeds. 

우리는 하드웨어와 관련하여 디자인의 크로스 플랫폼 특성을 보여주기 위해 서로 다른 아키텍처 기능을 적용하는 두 가지 다른 NVIDIA 플랫폼을 선택했습니다 (특히 자율 주행 및 로봇 공학을 위해 자율 시스템 솔루션이 배포되어있기 때문에 이 논문[26, 30]을 작성하는 현재 NVIDIA 하드웨어에 잘맞아 보임). 우리는 6 개의 big.LITTLE ARM 기반 코어와 11759 고유의 DVFS 구성을 갖춘 256 코어 Pascal 기반 GPU가있는 NVIDIA Jetson TX2와 8 코어을 갖춘 NVIDIA Carmel CPU 및 51967 고유의 DVFS 구성을 갖춘 512 코어 Volta 기반 GPU가 장착 된 로봇 공학 및 자율 주행 차량을위한 최신 강력한 플랫폼인 NVIDIA Jetson AGX Xavier를 사용합니다.

 

DNN models.

DNN 모델의 다양한 포트폴리오를 보면 NeuOS가 빠르게 변화하는 신경망 분야에서 미래의 증거임을 보여줄 수 있습니다. 이를 위해 실험에서 AlexNet [32], ResNet [19], GoogleNet [2] 및 VGGNet [49]를 사용합니다. 우리의 방법은 빠른 전환을 위해 두 버전의 레이어를 메모리에 유지함으로써 근사가 필요할 때마다 컨볼 루션 레이어의 lowrank 버전을 동적으로 적용합니다. 각 DNN 인스턴스의 데드라인은 각 플랫폼의 최악의 실행 시간 (WCET)을 기반으로하며, Jetson TX2의 경우 각각 10ms, 30ms, 150ms 및 40ms로 설정되고 AGX Xavier의 경우 각각 5ms, 10ms, 25ms, 30ms로 설정됩니다. ResNet은 구형 JetPack 소프트웨어로 인해 Jetson TX2에서 훨씬 느립니다.

 

Small Cohort, Medium Cohort, Large Cohort sizes. 

우리는 adaptability and balance를 테스트하기 위해 세 가지 코호트 크기 클래스에서 NeuOS를 테스트합니다. :

1 process for small, 2 to 4 processes for medium, and 6 to 8 processes for large.각 코호트 사이즈는 고유한 문제가 있습니다. 이러한 시나리오에 대한 평균 타이밍, 에너지 소비 및 정확성을 측정하고 해당되는 경우 밸런스를 측정을 제공합니다. medium and large 코호트의 경우 서로 다른 DNN 모델이 실행되는 혼합 시나리오를 포함합니다. 이 시나리오는 서로 다른 DNN을 사용하는 시스템 (예 : 음성 및 이미지 인식)을 나타냅니다. medium 코호트의 경우 각 DNN 모델의 한 인스턴스가, large 코호트의 경우 각 모델의 두 인스턴스가 초기화됩니다.

 

Adaptability to different system scenarios.

Sec 4.1에서 논의 된 바와 같이, 우리는 latency, energy and accuracy에 대한 서로 다른 제한을 갖는 세가지 시나리오를 고려합니다.: 최소 에너지, 최대 정확도 그리고 균형잡힌 에너지와 정확도.

 

Compared Solutions. 

우리는 DNN 특정 및 DNN에 구애받지 않는 솔루션, 소프트웨어 기반 DVFS 및 하드웨어 기반 DVFS, 애플리케이션 수준 및 시스템 수준 솔루션을 포함하여 문헌에서 6 개의 최신 솔루션을 구현하고 비교합니다. 다음과 같이 각각에 대한 간략한 세부 정보를 제공합니다.
PredJoule [5]은 최적화 레이턴시와 에너지를 위한 레이어 기반 DVFS 조정 솔루션을 사용하여 DNN에 맞춘 시스템 수준 솔루션입니다. Poet [23]은 DVFS 조정을 통해 최선의 방식으로 에너지와 타이밍의 균형을 맞추는 시스템 수준의 제어 이론 기반 소프트웨어 솔루션입니다. 우리는 JouleGuard [21]와 CoAdapt [20]를 포함한 확장된 접근 방식 대신 Poet과 비교하기로 결정했습니다. Poet과 본질적으로 동일한 제어 이론 기반 기법을 사용하기 때문입니다. ApNet [3]은 DNN을 기반으로하는 응용 프로그램 수준 솔루션으로, 이론적으로는 데드라인을 맞추기 위해 레이어 별 근사 요구 사항을 오프라인으로 제공 할 수 있습니다. Race2Idle [28]은 항상 비교하는데 관심이 있는 고전적인 "가능한 한 빨리 실행"철학입니다. Max-N [10, 11]은 NVIDIA 임베디드 하드웨어에서 속도라는 이름으로 주파수를 최대화하고 에너지를 희생하는 반응 형 하드웨어 DVFS입니다. Max-Q [10]은 에너지를 절약하기 위해 즉시 DVFS를 동적으로 조정하는 Jetson TX2의 하드웨어 DVFS입니다. 그러나 이 기능은 Xavier 플랫폼 [11]에서 제거되었으며 10W, 15W 및 30W와 같은 저수준 전력 제한으로 대체되었습니다. Xavier에서는 Max-Q 대신 15w 캡을 사용합니다.

 

 

5.2 Overall Effectiveness


In this section, we measure the efficacy of NeuOS on the two evaluated platforms under the balanced scenario. Since our design is concerned with timing predictability, energy consumption, and DNN accuracy, we measure all three constraints and compare against state-of-the-art literature under each platform and each scenario.

 

 

 

 

5.2.1 Small Cohort

Energy.

그림 7의 왼쪽 열은 AlexNet, GoogleNet, ResNet-50 및 VGGNet을 기본 DNN 모델로 사용하는 GPU 지원 Poet, Max-Q, Max-N, PredJoule 및 Race2Idle과 비교하여 평균 에너지 소비 측면에서 측정 한 결과를 보여줍니다. 근사 방법으로 lowrank를 사용합니다. 그림에서 알 수 있듯이 NeuOS는 모든 DNN 모델에서 Jetson TX2의 다른 모든 방법에 비해 에너지를 상당히 절약 할 수 있으며, Jetson TX2의 경우 평균 68 %, AGX Xavier의 경우 평균 46 % 향상되었습니다. 이 절약은 경우에 따라 에너지와 타이밍의 이점을 위해 정확도가 최소한으로 상쇄된다는 사실 때문입니다.

Jetson AGX Xavier에서 NeuOS는 VGGNet의 PredJoule과 비교할 때를 제외하고 모든 DNN 모델의 다른 모든 접근 방식에 비해 에너지 소비가 더 좋습니다. 타이밍에 대해 살펴 볼테지만 PredJoule은 VGGNet의 데드라인인 30을 놓쳤으며 NeuOS는 타이밍을 맞추기 위해 에너지를 희생하기로 결정했습니다.

Latency. 

그림 8은 5 가지 방법과 4 개의 DNN 모델을 사용한 NeuOS의 평균 실행 시간을 보여줍니다. NeuOS는 다른 모든 접근 방식을 능가하여 평균 실행 시간이 Jetson TX2에서 68 %, AGX Xavier에서 40 % 향상되었습니다. AGX Xavier가 Jetson TX2보다 평균 70 % 더 빠르다는 점도 흥미롭습니다.

 

Tail Latency. 

응답 시간 측정을 통해 NeuOS가 데드라인을 거의 놓치는 경우가 거의 없음 (3.25% of the time)을 발견했습니다. 또한, AlexNet, GoogleNet, ResNet-50 및 VGGNet의 99th percentile 실행 시간이 각각 TX2의 경우 9.2ms, 48ms, 130.3ms 및 39.1ms와 AGX의 경우 5.0ms, 12.0ms, 26.1ms 및 36.2ms로 분산이 낮습니다.

 

Accuracy.

또한 Ground Truth 및 ApNet과 비교하여 NeuOS의 정확도 손실을 측정합니다 (Fig.9는 명확성을 위해 소규모 코호트를 생략함). ApNet은 우리가 알고있는 유일한 DNN 특정 응용 프로그램 레벨 솔루션입니다. NeuOS는 평균 0.94 % (1 점 만점)로 ApNet보다 21 % 높은 근사 점수를 가지고 있습니다.

 

5.2.2 Medium and Large Cohorts

공간을 절약하기 위해 4-process medium and 8-process large cohort size에 대해서만 PredJoule을 비교합니다. 우리의 테스트에서 PredJoule은 이미 다른 방법론을 크게 능가하므로 NeuOS와 좋은 비교가됩니다.

 

Energy. 

그림 7의 두 번째 및 세 번째 열에서 알 수 있듯이 NeuOS는 Jetson TX2의 에너지 소비 측면에서 거의 항상 PredJoule을 능가하여 평균 70 % 향상되었습니다. 그러나 흥미롭게도 NeuOS는 AGX Xavier의 GoogleNet, ResNet 및 VGGNet 용 PredJoule에 비해 에너지 측면에서 더 나쁩니다. 이는 PredJoule이 AGX Xavier의 데드라인을 다시 놓치고, NeuOS가 데드라인을 맞추기 위해 무시할 수있는 양의 에너지 (평균 1.5 %)를 희생했기 때문입니다.

 

Latency. 

NeuOS는 항상 최신 기술을 능가하며 Jetson TX2의 경우 평균 53 %, AGX의 경우 평균 32 % 향상되었습니다. 이는 NeuOS가 더 나은 타이밍 및 에너지 특성을 위해 소량의 정확도와 에너지 손실 (AGX Xavier의 경우)을 이점으로 활용할 수 있기 때문입니다.

 

Tail Latency.

데드라인을 놓치는 비율은 small cohort와 거의 동일합니다. 또한 AlexNet, GoogleNet, ResNet-50 및 VGGNet의 99th percentile 백분위 수 실행 시간을 갖는 분산도 비슷하게 낮습니다. medium cohort에서 각각 TX2의 경우 10.4ms, 39.2ms, 101.7ms 및 69ms이고, AGX의 경우 11ms,12.5ms, 26.3ms 및 35.9ms입니다. large cohort TX2의 경우 13.6ms, 40.8ms, 190ms 및 72ms이고, AGX의 경우 각각 10.7ms, 54ms, 62ms 및 36.1ms입니다.

 

Accuracy. 

Fig. 9는 AGX Xavier에서 6회 반복한 코호트의 평균 정확도를 보여줍니다. 그림에서 알 수 있듯이 NeuOS는 일반적으로 Sec. 4.3의 최적화로 인해 더 나은 DVFS 구성을 찾을수 있기 때문에 시스템이 진행됨에 따라 정확도가 향상됩니다. 효율적인 근사 인식 솔루션 APnet과 비교할 때, NeuOS는 모든 시나리오에서 눈에 띄게 더 나은 정확도를 달성 할 수 있습니다.

 

Balance. 

Sec. 3.3에서 논의 된 매우 중요한 방법은 여러 프로세스에 직면했을 때 어떻게 시스템 솔루션의 균형을 맞추는가 입니다. 4-process and 8-process 시나리오에서 NeuOS를 PredJoule과 비교했을때 어떻게 밸런스을 잡는지 측정하기 위해 Fig. 7과 Fig. 8min-max bar를 포함하여 최소 및 최대 타이밍 / 에너지 간의 불일치를 보여줍니다. 그림에서 알 수 있듯이 총 에너지 소비 및 실행 시간 (최대 79mJ 및 4ms)에 비해 차이는 무시할 수 있습니다. 따라서 NeuOS는 코호트에서 균형을 유지합니다. 이는 조정 된 코호트와 우리의 디자인에 도입 된 균일한 non-greedy decision making 때문입니다.

 

5.3 Detailed Examination on Tradeoff

이 섹션에서는 시스템 설계자가 특정 차원에서 NeuOS의 기능을 제한하는 특정 제약 조건을 요구할 수 있다는 사실에 중점을 둡니다. 이를 위해 최대 정확도 (M_A), 최소 전력 (M_P) 및 균형 조정 (T.S)의 세 가지 시나리오에서 플랫폼을 테스트합니다.

 

5.3.1 Energy and Latency.

우리는 PredJoule과 비교하여 Jetson TX2에서 AlexNet 9회 반복에 걸친 1-process (small), 2-process (medium), and 3-process (large) 시나리오에 대해 Fig. 10에서 코호트의 평균 타이밍(ms) 및 평균 에너지(mJ)를 측정합니다. PredJoule은 검은 색 선으로 표시됩니다. 이 시나리오의 데드라인은 각 방법의 흥미로운 특성을 보여주기 위해 25로 설정됩니다.

Balanced. 

그림에서 알 수 있듯이 통계적으로 균형 잡힌 접근 방식은 모든 반복에서 PredJoule을 능가합니다. 특히 medium and large cohorts의 경우 PredJoule은 타이밍 측면에서 특히 나쁜 시작점을 가지고 DVFS 선택의 탐욕스러운 특성으로 인해 변동이 더 큽니다.

 

Min Energy. 

흥미롭게도 M_P는 타이밍과 에너지 소비 측면에서 small 코호트에 대해 매우 나쁘게 수행합니다 (여전히 기한을 충족 함). 이것은 Sec. 4.3.에서 논의 된 알고리즘 때문입니다. 시스템은 에너지를 절약하기 위해 매우 느린 DVFS 구성으로 전환되었습니다. 그러나 GPU를 위한 매우 느린 DVFS 구성 [5]에 내재된 비선형성 때문에 에너지 소비도 매우 나빠졌습니다. 그러나 조정은 medium and large cohorts에 대한 보상을 시작합니다. 이는 조정된 다중 프로세스 코호트가 더 빠른 DVFS 구성을 필요로하기 때문에 상황에 따라 M_P가 느리고 전력이 비효율적인 DVFS 구성 하위 집합에서 벗어나게 됩니다. PredJoule의 탐욕은 반복을 통해 매우 큰 변동의 형태로 medium and large cohorts에 내재되어 있습니다.

 

Max Accuracy. 

M_A는 에너지와 타이밍을 희생하면서 정확도를 향상시켜야합니다. 곧 정확성 결정에 대해 논의하겠습니다. 그러나 M_A의 타이밍은 균형 잡힌 에너지보다 아주 조금 나쁩니다. 에너지 소비도 마찬가지입니다 (평균 23%). 이것은 균형 잡힌 시나리오 전반의 큰 디자인 결정을 강조합니다. 균형 잡힌 일반적인 접근 방식의 경우에도 앞에서 설명한 것처럼 정확성을 매우 보수적으로 희생합니다. 따라서 완벽한 정확도를 향한 약간의 추진은 매우 큰 오버 헤드를 유발하지 않습니다. 그러나 앞서 논의한 바와 같이 촉박한 기한 (예 : AlexNet의 경우 10ms)을 보장하려면 에너지 소비가 고려되는 경우 약간의 근사치가 필요합니다.

 

5.3.2 Energy-Accuracy Tradeoff.

정확성과 시스템 및 애플리케이션 구성 측면에서 NeuOS의 변형이 어디로 점프하는지 보여주기 위해 그림 1의 삼각형을 다시 가져 오지만 Fig.11에서 강조된 M_P, M_A 및 T.S의 선택된 구성을 사용하여 실제 DVFS 및 정확도 구성을 사용합니다. 삼각형에서 알 수 있듯이 데드라인은 가능한 구성을 왼쪽 하단 모서리로 제한합니다. 그러나 그 제한 내에서 M_P (빨간색)는 에너지 소비가 낮은 오른쪽 상단으로 향하는 구성을 선택했습니다. 반면에 M_A (녹색)는 에너지 소비 측면에서 좋지는 않지만 정확도 측면에서 더 나은 왼쪽 하단의 구성을 선택했습니다. 마지막으로 T.S (검은 색)는 디자인의 정확성을 강조하기 때문에 M_A와 비슷합니다.

 

Fig. 11
Close up - Fig. 11(b)

 

5.4 Overhead


Execution time:

Table 2는 AlexNet을 Jetson TX2의 기준 모델로 사용하는 Poet, PredJoule 및 ApNet과 비교 한 NeuOS의 오버 헤드를 보여줍니다 (시간은 밀리 초 단위). Table 2에서 알 수 있듯이 NeuOS의 오버 헤드는 특히 Poet에 비해 무시할 수 있으며 오버 헤드도 AlexNet 자체의 전체 실행 시간에 비해 무시할 수 있습니다. Poet이 너무 느린 이유는 모든 DVFS 구성을 2 차 방식으로 진행해야하기 때문입니다 (O(n^2), n은 DVFS 구성 수). 고유 DVFS 구성이 10000개 이상인 임베디드 시스템에서는 O (n)도 허용되지 않습니다. 이것은 우리의 복잡성 감소 기술 (해싱을 통해)을 적용하는 것이 실용적인 시스템 솔루션에 필수적임을 증명합니다. 또한 NeuOS는 특히 4 Process and 8 Process 시나리오에서 PredJoule 및 ApNet보다 효율적입니다.

Memory:

Sec. 5.1에서처럼, 우리의 구현은 레이어 경계에서 빠른 스위칭을 위해 GPU 메모리에서 모델의 original 및 lowrank approximation을 모두 유지합니다. 또한, NeuOS는 Sec.4에 설명 된 근사치 및 DVFS 구성 정보를 포함하는 계층 별 해시 테이블도 보유하고 있습니다. Table 3은 총 NeuOS 메모리 사용량의 raw 및 백분율 측면에서 추가된 오버 헤드를 보여줍니다. 예상대로 각 모델의 lowrank 근사 버전은 원래 모델에 비해 전체 크기가 약간 작습니다. 그럼에도 불구하고 이 기술은 대기 시간과 에너지 소비를 개선하기 위해 메모리 오버 헤드를 희생합니다. 향후 작업으로 남겨진 실행 가능한 대안은 즉석에서 동적 근사화이며, 이는 대기 시간을 줄여 메모리 소비를 줄입니다. 또한 해시 테이블의 오버 헤드는 총 메모리 사용량에 비해 무시할 수 있습니다. 마지막으로, 마지막 두 열은 각 플랫폼에 대해 NeuOS의 한 인스턴스가 차지하는 총 가상 메모리의 누적 최대 백분율을 나타냅니다 (이 메모리 사용량에는 임시 중간 계층 데이터도 포함됨 [39]).

 

8 Conclusion

본 논문에서는 자율 임베디드 시스템에서 다중 DNN 워크로드를 실행하기위한 포괄적인 지연 예측 가능 시스템 솔루션 인 NeuOS를 제시합니다. NeuOS는 지연 예측 가능성을 보장하는 동시에 여러 DNN 인스턴스 간의 smart coordinated system- and application level 의사 결정을 통해 특정 시스템 제약 조건에 따라 에너지 최적화 및 동적 정확도 조정을 관리 할 수 있습니다. 광범위한 평가 결과는 NeuOS의 효능과 실용성을 입증합니다.