[논문 리뷰] A Collective Knowledge workflow for collaborative research into multi-objective autotuning and machine learning techniques
이 논문은 소프트웨are/하드웨어 공동 설계를 위한 재현 가능하고 다중 목적의 자동 튜닝 및 머신러닝을 가능하게 하는 이식성 있고 협업 가능한 워크플로우를 제안한다. Collective Knowledge(CK) 프레임워크를 기반으로 하며, 라즈베리파이 3 기기들 간의 컴파일러 자동 튜닝을 실현하여 실행 시간과 코드 크기를 최대 40% 감소시켰다. 또한, 커뮤니티 기반 최적화, 모델 공유, 표준화된 JSON API와 공개 지식 저장소를 통한 최적 설정 예측 기반 머신러닝을 가능하게 하였다.
Developing efficient software and hardware has never been harder whether it is for a tiny IoT device or an Exascale supercomputer. Apart from the ever growing design and optimization complexity, there exist even more fundamental problems such as lack of interdisciplinary knowledge required for effective software/hardware co-design, and a growing technology transfer gap between academia and industry. We introduce our new educational initiative to tackle these problems by developing Collective Knowledge (CK), a unified experimental framework for computer systems research and development. We use CK to teach the community how to make their research artifacts and experimental workflows portable, reproducible, customizable and reusable while enabling sustainable R&D and facilitating technology transfer. We also demonstrate how to redesign multi-objective autotuning and machine learning as a portable and extensible CK workflow. Such workflows enable researchers to experiment with different applications, data sets and tools; crowdsource experimentation across diverse platforms; share experimental results, models, visualizations; gradually expose more design and optimization choices using a simple JSON API; and ultimately build upon each other's findings. As the first practical step, we have implemented customizable compiler autotuning, crowdsourced optimization of diverse workloads across Raspberry Pi 3 devices, reduced the execution time and code size by up to 40%, and applied machine learning to predict optimizations. We hope such approach will help teach students how to build upon each others' work to enable efficient and self-optimizing software/hardware/model stack for emerging workloads.
연구 동기 및 목표
- 컴퓨터 시스템 연구 분야에서 학계와 산업 간 기술 이행 격차를 해소하기 위해.
- 다중 목적 자동 튜닝 및 머신러닝을 위한 표준화되고 이식성 있으며 재사용 가능한 연구 워크플로우의 부족을 해결하기 위해.
- 연구자가 실험적 자료와 결과를 지속 가능하고 재현 가능한 방식으로 공유하고, 커스터마이징하며, 기반 자료를 바탕으로 구축할 수 있도록 하기 위해.
- 라즈베리파이 3와 같은 다양한 하드웨어 플랫폼 간 협업 최적화를 가능하게 하기 위해, 커뮤니티 기반 실험을 통한 자동 튜닝을 지원하기 위해.
- 표준화된 평가 및 자료 공유를 통해 최신 기술을 실제 시스템에 신속하게 구현할 수 있도록 하기 위해.
제안 방법
- 논문은 오픈소스 Collective Knowledge(CK) 워크플로우 시스템을 기반으로 한 통합 실험 프레임워크를 도입하여 연구 자료와 워크플로우를 표준화한다.
- 플랫폼 간 이식성과 확장성을 보장하기 위해, 디자인 및 최적화 선택 사항을 기술하고 노출하기 위해 JSON 기반 API를 사용한다.
- 다양한 환경과 하드웨어에 맞게 컴iles 및 실행을 자동으로 조정하기 위해 크로스플랫폼 패키지 매니저를 통합한다.
- 다중 목적 자동 튜닝은 실행 시간, 코드 크기, 전력 소모, 메모리 사용량 최적화를 지원하는 재사용 가능한 CK 워크플로우로 구현된다.
- 커뮤니티 퍼즈(crew-fuzzing)는 자율 기부한 라즈베리파이 3 기기들에 자동 튜닝 작업을 분산 배포하여 성능 데이터를 수집하고 집계한다.
- 수집된 최적화 데이터를 기반으로 의사결정 트리, k-NN, 딥러닝 등의 머신러닝 모델을 훈련시켜 새로운 워크로드에 대한 최적 설정을 예측한다.
실험 결과
연구 질문
- RQ1표준화되고 이식성 있으며 재사용 가능한 워크플로우 프레임워크는 다중 목적 자동 튜닝 및 머신러닝 연구 분야에서 협업과 재현 가능성을 어떻게 향상시킬 수 있는가?
- RQ2라즈베리파이 3와 같은 이질적인 기기들 간의 커뮤니티 기반 자동 튜닝은 최적화 효율성을 얼마나 향상시키며, 실행 시간과 코드 크기를 얼마나 줄일 수 있는가?
- RQ3공유된 최적화 데이터를 기반으로 훈련된 머신러닝 모델은 새로운 워크로드에 대해 최적의 컴파일러 플래그와 설정을 높은 정확도로 예측할 수 있는가?
- RQ4통합된 API와 메타데이터 표준은 학계에서 산업으로의 지속 가능한 기술 이행을 어떻게 가능하게 하는가?
- RQ5공개된 커뮤니티 기반 지식 저장소는 소프트웨어/하드웨어 공동 설계 분야의 혁신 가속화에 어떤 영향을 미치는가?
주요 결과
- CK 기반 워크플로우를 통해 라즈베리파이 3 기기들에서 다양한 워크로드의 협업 자동 튜닝을 통해 실행 시간과 코드 크기를 최대 40% 감소시켰다.
- 자율 기부한 라즈베리파이 3 기기들에 작업을 분산 배포하여 커뮤니티 기반 자동 튜닝을 성공적으로 실현하였으며, 결과를 공개되고 재현 가능한 지식 저장소에 저장하였다.
- 의사결정 트리와 k-Nearest Neighbors를 포함한 머신러닝 모델들은 공유된 최적화 데이터를 기반으로 최적의 컴파일러 설정을 높은 정확도로 예측할 수 있었다.
- 표준화된 JSON API와 메타데이터를 사용함으로써, 응용 프로그램, 커널, 데이터셋, 도구들이 다양한 연구 팀과 플랫폼 간에 원활하게 통합되고 재사용될 수 있었다.
- 지속 가능한 협업과 재현 가능한 연구를 위한 길을 제시하였으며, 소프트웨어/하드웨어 스택의 지속적인 개선과 커뮤니티 기반 최적화를 가능하게 하였다.
- 프레임워크는 딥러닝 프레임워크, 모델, 안드로이드 기기 간의 벤치마크 인퍼런스 성능 평가에 성공적으로 적용되었으며, 결과는 cKnowledge.org/repo에서 실시간으로 액티브한 스코어보드로 공개되었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.