Deep Learning on Edge Computing
제한된 하드웨어를 가진 모바일 기기에서 딥러닝을 비롯한 복잡한 머신러닝 어플리케이션을 수행하기 위한 방법으로, 클라우드 인프라를 이용한 연산 오프로딩 기술이 이용될 수 있다. 본 연구실에서는 모바일 기기가 분산된 클라우드 서버(엣지 서버)로 머신러닝 연산을 오프로딩 하는 방법에 대해 연구하고 있으며, 이 과정에서 edge server customization, DNN partitioning, portable app migration 등의 주제를 다룬다.
Loading Time Acceleration using WASM
웹앱은 HTML/CSS/JavaScript로 작성된 프로그램으로, 브라우저가 있는 곳에서는 어디서든 동작 가능하기 떄문에 PC, 스마트폰, TV 등의 기기에서 널리 사용되고 있지만 성능이 native language로 작성된 프로그램 보다 좋지 않다는 한계가 있다. 본 연구실에서는 웹앱의 성능을 향상 시키기 위해서 1) 웹앱이 로딩된 이후의 상태를 파일로 저장해 두었다가 재사용하여 로딩 시간을 단축하는 스냅샷 기술과 2) Native language와 비슷하게 설계되어 높은 성능으로 웹 상에서 연산을 수행할 수 있는 web assembly 기술에 대해 연구한다. 연구 결과는 Chrome, WebKit 등 실제 산업용 브라우저에 적용 가능하다.
Runtime Migration of Web Application
테스트에 사용된 web app은 www.themaninblue.com/experiment/BunnyHun에 공개되어 있는 BunnyHunt 게임이다. App의 수행 중 Chrome extension으로 구현된 인터페이스에서 저장 버튼을 누르면 그 시점의 app 상태가 저장된다. 이 때 몇 개의 아웃풋 파일이 생성되고, 이를 다시 실행하면 저장된 app의 상태가 복원된다. 아웃풋 파일은 HTML과 app의 state를 가지는 JSON과 event 등의 복원 코드가 포함된 자바스크립트 파일이다.
이 연구 결과를 이용하면, 한 기기에서 다른 기기로 web app의 상태를 실시간 전송하는 runtime migration이 가능해진다. 아래 영상을 보면, 노트북PC에서 BunnyHunt 게임 수행 중 extension의 버튼을 눌러 그 상태를 저장하였다. 그리고 웹 브라우저를 지원하는 스마트TV에서 이 상태를 이어받아 그대로 다시 재생하였다. 여기서 두 기기의 아키텍쳐가 다름에도 불구하고 migration이 잘 되는 것을 볼 수 있다. 이는 아웃풋 파일이 일반적인 HTML과 자바스크립트 파일로 생성되기 때문으로, 웹 브라우저만 설치되어 있다면 어떠한 기기에서도 문제없이 migration이 진행될 수 있다.
Snapshot-based Loading Time Acceleration on a Smart TV
이 비디오 클립은 스마트 TV 에서 샘플 어플리케이션의 로딩 타임을 비교하고 있다. 화면의 색깔이 녹색에서 하얀색으로 전환되는 시점이 어플리케이션의 로딩이 끝난 시점이다. 오른쪽 화면이 원래의 로딩 타임이고 왼쪽이 스냅샷을 이용했을 때 로딩 타임이다. 스냅샷을 이용했을 때 로딩타임이 눈에 띄게 감소하는 것을 볼 수 있다.
로딩 시간을 단축 시키기 위해서 로딩이 끝난 상태를 스냅샷으로 저장하였다가 다음에 로딩할 때는 스냅샷으로부터 로딩이 끝난 상태를 바로 복원하는 기술이 사용되었다.
Snapshot-based Offloading
Snapshot을 이용하여 연산 오프로딩 기술을 구현할 수 있다. 연산 Offloading이란, 큰 컴퓨팅 파워가 필요한 연산을 성능이 좋은 서버로 전송하여 연산한 뒤에 그 결과값만을 다시 전송받는 기술을 말한다. Snapshot 기술을 여기에 적용하면 클라이언트에서 수행중이던 어플리케이션이 큰 연산을 하기 직전에 어플리케이션의 수행 상태를 저장하여 서버로 전송한 뒤, 서버에서 그 상태를 복구하여 수행하고 다시 클라이언트로 수행 상태를 전송, 복구하여 실행하는 방식으로 연산 Offloading 기술을 응용할 수 있다. 아래 동영상은 복잡한 연산이 필요한 얼굴 인식 어플리케이션의 수행 시간을 Snapshot-based Offloading을 이용하여 단축시킨 것이다. 영상을 보면 Snapshot-based Offloading이 어플리케이션의 연산 뿐만 아니라 GUI를 바꾸는 동작까지 모두 포함한다는 것을 알 수 있다.
모바일 디바이스에서 연산 Offloading을 적용했을 때와 그렇지 않았을 때를 비교해 보면 어플리케이션의 연산 속도 차이를 확연하게 느낄 수 있다.