적극적 생각/전공버퍼

서울대학교 가상머신 및 최적화 연구실, 문수묵 교수

무말랭이 2022. 8. 15. 20:22
  • 연구실소개 및 연구분야
  • VMO(Virtual Machine and Optimization) 연구실은 컴파일러 최적화 및 가상머신 최적화 기술을 바탕으로 다양한 소프트웨어 플랫폼 최적화를 연구합니다. 가상머신 기반 플랫폼의 이식성과 간단함을 최대한 활용하는 연구와 플랫폼의 성능과 기능 향상을 위한 연구를 수행하고 있습니다.

    또한 최근에는 대형 오픈소스 프로그램에 대한 엔지니어링적 지식과 경험을 바탕으로 블록체인 기술에 대한 연구를 진행하고 있습니다. 블록체인의 데이터를 분석하고 클라이언트를 최적화하는 방법들을 연구하고 있으며, 트랜잭션 처리와 블록에 대한 이론적인 연구와 더불어 합의 알고리즘이나 SGX를 이용한 블록체인 보안에 대한 연구도 진행하고 있습니다.

    현재 연구하고 있는 주제는 다음과 같습니다.
    •블록체인 기반의 탈중앙화 딥러닝 플랫폼
    •블록체인 부트스트래핑, 성능 및 공간 최적화
    •엣지 컴퓨팅 환경에서의 DNN 연산 오프로딩 플랫폼
    •DRAM 테스트 패턴 프로그램의 변환 플랫폼
    •웹 플랫폼 성능 최적화


    (1) 블록체인 기반의 탈중앙화 딥러닝 플랫폼

    블록체인을 기반으로 탈중앙화 방식의 딥러닝 플랫폼을 개발하여 기존의 중앙 집중식 딥러닝 플랫폼의 한계를 극복하는 연구를 수행합니다. 특히 비선형 블록체인을 도입하고 유전자 알고리듬을 이용하여 학습을 방해하는 비잔틴 노드들을 극복하여 최적의 DNN 모델을 빠르게 학습할 수 있도록 합니다.

    (2) 블록체인 부트스트래핑, 성능 및 공간 최적화

    블록체인은 데이터가 선형적으로 증가하는 구조이기 때문에 시간이 지날수록 많은 저장 공간을 필요로 하고, 새로운 노드가 네트워크에 진입하기 위한 부트스트래핑(bootstrapping) 과정도 오래 걸리게 됩니다. 이는 블록체인 네트워크에 새로운 노드가 진입하지 못하도록 하여 전체 네트워크의 보안성을 떨어트립니다. 이러한 문제를 해결하기 위해 블록체인 프로토콜 및 클라이언트의 성능 및 공간을 최적화하여 부트스트래핑 성능을 향상시키는 연구를 진행하고 있습니다.

    (3) 엣지 컴퓨팅 환경에서의 DNN 연산 오프로딩 플랫폼

    제한된 하드웨어를 가진 모바일 기기에서 연산량이 많은 DNN 앱을 수행하기 위해 DNN 연산을 가까운 엣지 클라우드에 오프로딩하여 수행하는 기술을 연구하고 있습니다. 이를 위해 모바일 기기에서 엣지 서버로 DNN layer들을 partition 하여 incremental 하게 업로드 하거나, 다음에 이동할 위치를 예측하여 엣지 서버간에 DNN layer들을 proactive하게 migration하는 방식 등을 제안하였습니다. 특히 웹 앱의 경우에는 이식상의 장점을 이용하여 예전에 수행했던 web app migration을 이용하여 좀 더 효율적인 오프로딩을 제안합니다. 이와는 별도로 고성능 GAN DNN 개발 연구도 진행하고 있습니다.

    (4) DRAM 테스트 패턴 프로그램의 변환 플랫폼

    DARM 테스트를 위한 ATE 장비를 구동하는 프로그램을 패턴 프로그램이라 부릅니다. 각 장비마다 프로그래밍 언어가 다르고 하드웨어 구조도 다르므로 같은 메모리chip을 테스트하기 위해 각 장비마다 다른 패턴 프로그램이 필요한데, 따라서 하나의 장비를 위해 개발된 패턴 프로그램을 자동으로 다른 장비를 위한 패턴 프로그램으로 번역해주는 소프트웨어가 있다면 여러 장비를 함께 사용하여 테스트의 생산성을 높일 수 있을 것 입니다. 우리는 이러한 소프트웨어 플랫폼을 제안하고 기존 최적화 컴파일러의 많은 개념들(예: intermediate representation, register allocation, instruction scheduling)을 이 플랫폼 위에서 재 정의하고 해법을 제안하고 있습니다.

    (5) 웹 플랫폼 성능 최적화

    웹앱은 HTML/CSS/JavaScript로 작성된 프로그램으로 브라우저가 있는 곳에서는 어디서든 동작 가능하므로 다양한 기기에서 널리 사용되고 있지만 성능 문제가 있습니다. 우리는 웹 앱의 로딩 성능 최적화를 위해 1) 웹앱이 로딩된 이후의 상태를 파일로 저장해 두었다가 재사용하여 로딩 시간을 단축하는 스냅샷 기술과 2) 리소스 프리로딩을 통해 네트워크 지연을 줄이는 기술을 제안합니다. 또한 네이티브와 유사한 성능으로 웹 상에서 연산을 수행할 수 있는 web assembly 기술로 구현한 쓰레드를 클라우드로 migration 시켜서 성능을 높이는 mobile web worker를 제안하였습니다.
  • 최근 관심분야 및 주요 연구과제
  • 우리 연구실은 IBM, SUN, INTEL, HP, 삼성전자, LG전자 등 이 분야의 국내 기업들과 많은 연구개발 프로젝트를 수행하여 왔다.

    ▶ 주요 연구과제
    - 스마트TV 실행 환경의 최적화 (삼성전자)
    - 디지털 TV 및 블루레이디스크 자바 최적화 (LG전자)
    - EPS를 이용한 데이터 캐쉬 최적화 (UIUC Gelato project - HP)
    - Inorder 수퍼스칼라 프로세서를 위한 명령어 스케쥴링 (Sun Microsystems)
    - LaTTe 공개소스 자바 가상 머신 프로젝트 (IBM Research)
    - EPIC 구조에서 명령어 수준의 병렬 처리를 위한 자바 JIT 컴파일러 (Intel)
  • 최근 주요 논문/특허
  • [1] JinSeok Oh, Soo-Mook Moon, "Snapshot-based Loading-Time Acceleration for Web Applications", 2015 International Symposium on Code Generation and Optimization (CGO), Feb 2015.
    [2] Hyeong-Seok Oh, Ji Hwan Yeo, Soo-Mook Moon, "Bytecode-to-C Ahead-of-Time Compilation for Android Dalvik Virtual Machine", Design, Automation & Test in Europe 2015 (DATE), Mar 2015.
    [3] JinSeok Oh, Jin-woo Kwon, Hyukwoo Park, Soo-Mook Moon, "Migration of Web Applications with Seamless Execution", The 11th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE), Mar 2015.
    [4] DONG-HEON JUNG, SOO-MOOK MOON, and HYEONG-SEOK OH, "Hybrid Compilation and Optimization for Java-Based Digital TV Platforms", ACM Transactions on Embedded Computing Systems, Vol. 13, No. 2, Jan 2014
    [5] Hyeong-Seok Oh, Soo-Mook Moon, Dong-Heon Jung, "Hybrid Java Compilation of Just-in-Time and Ahead-of-Time for Embedded Systems", Journal of Circuits, Systems, and Computers, Volume 21, Issue 2, April 2012
    [6] Seong-Won Lee, Soo-Mook Moon, "Selective Just-in-Time Compilation for Client-side Mobile JavaScript Engine", International Conference on Compilers, Architectures and Synthesis of Embedded Systems (CASES) 2011
    [7] DongHeon Jung and Soo-Mook Moon, "Hybrid Java Compilation and Optimization for Digital TV Software Platform", The International Symposium on Code Generation and Optimization (CGO) 2010