본문 바로가기

Deep Learning Papers/Optimization

Edge TPU Co-compilation 적용 검토

1. 개요

Edge TPU에서 복수의 모델을 연속적으로 실행시킬 때 속도 개선을 위하여 co-compilation 지원함.

co-compilation을 적용하면 두번째 모델을 실행할 때 Edge TPU의 SRAM cache clear를 하지 않아서 속도가 개선됨.

co-compilation 효과를 확인하기 위하여, pre-trained detection 모델(SSD MobileNet V2)과 pre-trained embedding 모델(MobileNet V2)에 적용하여 속도 측정함.

co-compilation 적용 시에 어떤 모델에 cache를 우선 할당할 지 결정 필요함.

  • detection 모델과 embedding 모델의 inference를 pair로 100회 수행하여 평균 속도를 측정함
  • 측정 데이터 공개 불가

2. model parameter data caching

Edge TPU는 모델 parameter 데이터를 caching하는 8MB 크기의 SRAM을 가짐

모델을 개별적으로 compile하면 각 모델에 unique caching token(64 bit)이 할당되고, co-compile하면 같은 caching token이 할당됨

모델을 실행시키면 Edge TPU runtime이 기존에 caching되어 있는 데이터의 caching token과 비교 수행

 

3. 복수의 모델에 대한 co-compilation

co-compilation 적용하면 복수의 모델이 모델 파라미터 caching을 위하여 Edge TPU의 SRAM을 공유하여 사용 가능함

→ 서로 다른 모델을 연속적으로 수행 시에 매번 cache를 clear할 필요가 없음

Edge TPU SRAM cache의 크기는 한정되어 있으며, 각 모델에 할당되는 cache 크기는 compile 시에 결정됨

→ compile command의 argument에서 첫번째 모델에 cache가 우선 할당됨

→ 뒷 모델은 전혀 cache를 할당받지 못하여 모델 파라미터를 외부 메모리에 로딩해야 하는 경우가 있으나 개별 compile case보다는 전체 속도가 빠름

 

4. co-compilation 사례

1) detection 모델과 embedding 모델을 개별 compilation

공개불가

 

2) detection 모델 우선으로 co-compilation

공개불가

 

3) embedding 모델 우선으로 co-compilation

공개불가