แนวคิดหลัก
DNN 추론 파이프라인을 k개의 단계로 분할하고 병목 단계의 실행 시간을 최소화하여 성능을 최대화한다.
บทคัดย่อ
이 논문은 딥 신경망(DNN) 추론을 위한 파이프라인 병렬 처리를 최적화하는 방법을 제안한다. 모델 그래프를 k개의 단계로 분할하고 병목 단계의 실행 시간을 최소화하는 것이 핵심 아이디어이다.
구체적으로:
- 파이프라인 병렬 처리를 위한 최대 처리량 분할 문제(MTPP)를 정의하고 NP-hard임을 증명한다.
- MTPP를 해결하기 위한 혼합 정수 프로그래밍(MIP) 기반 접근법을 제안한다. 이를 통해 강력한 하한 경계를 계산할 수 있다.
- 동적 프로그래밍과 편향된 무작위 키 유전 알고리즘을 결합한 SliceGraph 알고리즘을 제안한다. 이는 실용적이고 효과적인 파이프라인 분할 방법이다.
- 369개의 실제 모델 그래프와 1000개의 합성 모델 그래프에 대한 실험을 통해 제안 기법의 우수성을 입증한다. 예를 들어 k=16일 때 기존 조합론적 하한 대비 9.855배 향상된 하한을 얻을 수 있었다.
สถิติ
모델 그래프 크기: n = |V|, m = |E|
노드 v의 작업 시간: work(v)
노드 v의 모델 파라미터 크기: sizeparam(v)
노드 v의 출력 크기: sizeout(v)
블록 간 대역폭: B
คำพูด
"ML 추론은 모델 파라미터와 활성화 데이터라는 두 가지 주요 데이터 유형을 다룬다. 활성화 데이터를 빠른 메모리에 유지하는 것이 중요하므로 ML 컴파일러는 이를 하드 제약 조건으로 취급한다."
"파이프라인 병렬 처리를 통해 k배의 빠른 메모리를 확보할 수 있어 더 큰 활성화와 모델을 지원할 수 있다. 그러나 이는 CU 간 통신 오버헤드를 최소화하고 모든 단계의 실행 시간을 균형 있게 조정해야 한다는 과제를 동시에 야기한다."