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
공개불가
'Deep Learning Papers > Optimization' 카테고리의 다른 글
Tensorflow 모델 pruning 적용 방법 (0) | 2019.10.31 |
---|---|
Quantization-aware training에 대한 code 정리 (0) | 2019.10.31 |
Pruning 논문 2편 정리 (0) | 2019.10.31 |